認証ポリシー設定ガイド(詳細編)
このドキュメントの目的
複雑な認証ポリシー(条件式、JSONPath、failure_conditions)を設定できるようになることが目標です。
所要時間
⏱️ 約30分
前提条件
- 認証ポリシー基礎完了
- JSONPath基礎知識(このドキュメントで学べます)
- 組織ID(organization-id)を取得済み
Management API URL
組織レベルAPI(このドキュメントでの表記):
POST /v1/management/organizations/{organization-id}/tenants/{tenant-id}/authentication-policies
注意: システムレベルAPIとの違い
- 組織レベル:
POST /v1/management/organizations/{organization-id}/tenants/{tenant-id}/...← このドキュメント - システムレベル:
POST /v1/management/tenants/{tenant-id}/...← 管理者のみ
通常の運用では組織レベルAPIを使用してください。
認証ポリシー詳細設定の全体像
認証ポリシー(policies配列内の各ポリシー)
├─ priority: 優先度(高い値ほど優先)
├─ conditions: ポリシー適用条件(スコープ、クライアントID、ACR値)
├─ available_methods: どの認証方式を許可するか
├─ success_conditions: 成功条件(どの認証が成功すれば完了か)
├─ failure_conditions: 失敗条件(何回失敗したら認証失敗か)
├─ lock_conditions: ロック条件(何回失敗したらアカウントロックか)
├─ step_definitions: マルチステップ認証フロー制御(1st/2nd factor)
└─ acr_mapping_rules: 認証方式 → ACRレベルのマッピング
このドキュメントで学べること:
- Level 1: JSONPath条件式の基礎
- Level 2: success_conditions(成功条件)の詳細
- Level 3: failure_conditions と lock_conditions(失敗・ロック条件)
- Level 4: step_definitions(マルチステップ認証フロー制御)
- Level 5: ACRマッピングルール(詳細)
- Level 6: 条件によるポリシー分岐(クライアント別・スコープ別)
Level 1: JSONPath条件式の基礎
JSONPath とは
認証状態をJSON形式で表現し、その値をチェックする記法です。
認証状態の例
{
"password-authentication": {
"success_count": 0,
"failure_count": 2,
"last_attempt_at": "2025-10-13T10:00:00Z"
},
"sms-authentication": {
"success_count": 1,
"failure_count": 0
}
}
JSONPath構文
| JSONPath | 意味 | 例の値 |
|---|---|---|
$.password-authentication.success_count | password認証の成功回数 | 0 |
$.password-authentication.failure_count | password認証の失敗回数 | 2 |
$.sms-authentication.success_count | SMS認証の成功回数 | 1 |
条件式の構造
{
"path": "$.password-authentication.success_count", // 何をチェックするか
"type": "integer", // 値の型
"operation": "gte", // 比較演算子(>=)
"value": 1 // 期待値
}
意味: password-authentication.success_count >= 1
演算子一覧
| operation | 意味 | 例 |
|---|---|---|
eq | = 等しい | "value": 1 → 1と等しい |
ne | != 等しくない | "value": 0 → 0でない |
gt | > より大きい | "value": 0 → 0より大きい |
gte | >= 以上 | "value": 1 → 1以上 |
lt | < 未満 | "value": 5 → 5未満 |
lte | <= 以下 | "value": 3 → 3以下 |