強制再認証の有効化

アプリケーションへのアクセス中にユーザーに強制的に再認証させるには、有効な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を使用して2番目のSAMLリクエストをIdPに送信します。

リクエストで受信したmax_age属性値は、アプリケーション・レベルで構成されたforceReauthenticateAfterInMinutes値より優先されますが、動作するにはmax_ageプロトコルを正しく実装する必要があります。たとえば、IdPがid_tokenを返さなかったり、id_tokenにauth_timeが含まれていなかったりすると、max_ageプロトコルは機能せず、アプリケーションがサインイン時にエラーを返します。GoogleとFacebookは、現在max_ageプロトコルを正しく実装していないアイデンティティ・プロバイダの例です。

ノート

OCI IAMが外部アイデンティティ・プロバイダにフェデレートされている場合、OCI IAMは、ユーザーが外部アイデンティティ・プロバイダによる再認証を強制されるかどうかを保証できません。この動作は、外部アイデンティティ・プロバイダでのOIDC/SAMLプロトコルの実装方法によって異なります。
Curlを使用して、アプリケーションのforceReauthenticateAfterInMinutes属性を更新します。

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}}
        }
    ]
}'