FIDO-UAF 登録フロー
このドキュメントの目的
FIDO-UAFを使用した認証デバイス(モバイル端末)の登録フローを実装することが目標です。
学べること
✅ FIDO-UAF登録の基礎
- FIDO-UAF認証の仕組み
- デバイス登録フローの全体像
- 認証ポリシーの設定方法
✅ 実践的な知識
- 登録リクエストとチャレンジ応答の実装
- UserInfoでの登録状況確認
- トラブルシューティング
所要時間
⏱️ 約15分
前提条 件
FIDO-UAF登録を行う前に、以下の設定が必要です:
1. テナントのデバイス登録ルール設定
テナントの identity_policy_config に authentication_device_rule を設定してください。
PUT /v1/management/tenants/{tenant-id}
Content-Type: application/json
{
"tenant": {
"identity_policy_config": {
"identity_unique_key_type": "EMAIL",
"authentication_device_rule": {
"max_devices": 100,
"required_identity_verification": false,
"authentication_type": "device_secret_jwt",
"issue_device_secret": true,
"device_secret_algorithm": "HS256",
"device_secret_expires_in_seconds": 31536000
}
}
}
}
主要パラメータ
| パラメータ | 説明 | デフォルト |
|---|---|---|
max_devices | ユーザーあたりの最大デバイス登録数 | 5 |
required_identity_verification | デバイス登録時に身元確認必須フラグ | false |
authentication_type | デバイスエンドポイントへのアクセス認証方式none: 認証不要device_secret_jwt: JWT認証を要求 | none |
issue_device_secret | FIDO-UAF登録時にデバイスシークレットを自動発行 | false |
device_secret_algorithm | 署名アルゴリズム(HS256/HS384/HS512) | HS256 |
device_secret_expires_in_seconds | シークレットの有効期限(秒)、null=無期限 | null |
Note: CIBAフローでデバイス認証を行う場合は、
authentication_type: "device_secret_jwt"とissue_device_secret: trueを設定してください。詳細はデバイスクレデンシャル管理を参照してください。
2. 認証ポリシーの登録
fido-uaf-registration フローの認証ポリシーを事前に登録してください。
POST /v1/management/tenants/{tenant-id}/authentication-policies
Content-Type: application/json
{
"flow": "fido-uaf-registration",
"enabled": true,
"policies": [
{
"description": "FIDO-UAF device registration policy",
"priority": 1,
"available_methods": ["fido-uaf"]
}
]
}
🧭 全体の流れ
- ログイン
- デバイス登録リクエスト送信
- 登録チャレンジ応答
- FIDO-UAF Facet取得
- デバイス登録完了
- UserInfoで認証デバイスの登録状況を確認する
🔁 シーケンス図(Mermaid)
1. ログイン
認可コードフローを参照。