強制再認証の有効化
有効なOCI IAMセッションが使用可能な場合でも、アプリケーションへのアクセス中にユーザーを強制的に再認証するには、REST APIエンドポイントを使用してforceReauthenticateAfterInMinutes
を設定します。
この機能を有効にするには、access.sso.session.max.age
機能を有効にする必要があります。
OCI IAMは、属性forceReauthenticateAfterInMinutes
をアプリケーション・レベルで保持します。アプリケーションがOCI IAMに対して認証リクエストを行うと、最後の認証以降の期間がそのアプリケーションのforceReauthenticateAfterInMinutes
属性に設定された値を超えているかどうかが評価されます。存在する場合、OCI IAMはユーザーに再認証を強制します。デフォルト値はNULLで、再認証は強制されません。
この属性に使用可能な値:
-
NULL (デフォルト) - 再認証なし
-
-1 - 再認証なし
-
0 - 32767 - ユーザーが強制的に再認証されるまでの時間(分)
外部アイデンティティ・プロバイダで認証する場合、OCI IAMは外部のIdPsで再認証を強制しようとします。
- OIDCの場合、OCI IAMは/authorizeリクエストのmax_age属性を渡します。
- SAMLの場合、外部アイデンティティ・プロバイダによってSAMLレスポンスで返されたAuthNInstantに基づいて、OCI IAMは
ForceAuthn=true
を使用してIdPに2番目のSAMLリクエストを送信します。
リクエストで受信したmax_age属性値は、アプリケーション・レベルで構成されたforceReauthenticateAfterInMinutes
値より優先されますが、max_ageプロトコルを正しく実装して動作させる必要があります。たとえば、IdPがid_tokenを返さない場合や、id_tokenにauth_timeを含まない場合、max_ageプロトコルは機能せず、サインインしようとするとアプリケーションがエラーを返します。GoogleとFacebookは、現在max_ageプロトコルを正しく実装していないアイデンティティ・プロバイダの例です。
OCI IAMが外部アイデンティティ・プロバイダにフェデレートされている場合、OCI IAMは、ユーザーが外部アイデンティティ・プロバイダによって再認証される必要があるかどうかを保証できません。この動作は、外部アイデンティティ・プロバイダでのOIDC/SAMLプロトコルの実装方法によって異なります。
forceReauthenticateAfterInMinutes
属性を更新するCurl。
curl --location --request PATCH 'https://{{IDCS_HOST}}/admin/v1/Apps/{{APP_ID}}' --header 'X-RESOURCE-IDENTITY-DOMAIN-NAME: tenantsp' --header 'Authorization: Bearer {{IDENTITY_DOMAIN_ADMINSTRATOR_TOKEN}}' --header 'Content-Type: application/json' --data-raw '{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "add",
"path": "forceReauthenticateAfterInMinutes",
"value": {{value}}
}
]
}'