強制再認証の有効化

有効な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}}
        }
    ]
}'