5.6. アプリケーションが開始したアクション
アプリケーション開始アクション (AIA) を使用すると、クライアントアプリケーションは、ユーザーに Red Hat build of Keycloak でアクションを実行するように要求できます。通常、OIDC クライアントアプリケーションは、ユーザーにログインを要求する場合、OIDC セクション で説明されているように、そのユーザーをログイン URL にリダイレクトします。ログイン後、ユーザーはクライアントアプリケーションにリダイレクトされます。ユーザーは、前のセクション で説明したように管理者によって要求されたアクションを実行し、すぐにアプリケーションにリダイレクトされます。ただし、AIA を使用すると、クライアントアプリケーションはログイン時にユーザーにいくつかの必要なアクションを要求できます。これは、ユーザーがクライアント上ですでに認証されており、アクティブな SSO セッションがある場合でも実行できます。これは、要求されたアクションを含む値を持つ kc_action パラメーターを OIDC ログイン URL に追加することによってトリガーされます。たとえば、kc_action=UPDATE_PASSWORD パラメーターです。
kc_action パラメーターは、OIDC 仕様でサポートされていない Red Hat build of Keycloak のプロプライエタリーメカニズムです。
アプリケーションによって開始されるアクションは、OIDC クライアントに対してのみサポートされます。
したがって、AIA を使用する場合、フローの例は次のようになります。
-
クライアントアプリケーションは、
kc_action=UPDATE_PASSWORDなどの追加パラメーターを使用して、ユーザーを OIDC ログイン URL にリダイレクトします。 -
認証フローのセクション で説明されているように、常にトリガーされる
browserフローがあります。ユーザーが認証されなかった場合、そのユーザーは通常のログイン時と同様に認証する必要があります。ユーザーがすでに認証されている場合、そのユーザーは、アクティブに再認証して認証情報を再度入力する必要なく、SSO Cookie によって自動的に再認証される可能性があります。この場合、そのユーザーは特定のアクション (この場合はパスワードの更新) を実行する画面に直接リダイレクトされます。ただし、場合によっては、ユーザーが SSO Cookie を持っている場合でも、アクティブな再認証が必要になります (詳細は こちら を参照してください)。 -
特定のアクション (この場合は
パスワードの更新) の画面がユーザーに表示されるため、ユーザーは特定のアクションを実行する必要があります。 - その後、ユーザーはクライアントアプリケーションにリダイレクトされます。
AIA は、Red Hat build of Keycloak アカウントコンソール によってパスワードの更新を要求したり、OTP や WebAuthn などの他の認証情報をリセットしたりするために使用されることに注意してください。
パラメーター kc_action が使用されたとしても、ユーザーが常にアクションを実行すると想定するだけでは不十分です。たとえば、ユーザーがブラウザーの URL から kc_action パラメーターを手動で削除した可能性があります。したがって、クライアントが kc_action=CONFIGURE_TOTP を要求した後、ユーザーがアカウントの OTP を持っているという保証はありません。ユーザーが 2 要素認証を設定したことを確認する場合は、クライアントアプリケーションでそれが設定されていることを確認する必要があります。たとえば、トークン内の acr のようなクレームを確認します。
5.6.1. AIA 中の再認証 リンクのコピーリンクがクリップボードにコピーされました!
アクティブな SSO セッションによりユーザーがすでに認証されている場合、通常、そのユーザーはアクティブに再認証する必要はありません。ただし、そのユーザーが 5 分以上前にアクティブに認証されている場合、クライアントは AIA が要求されたときに再認証を要求できます。このガイドラインには次のような例外があります。
-
delete_accountアクションでは、常にユーザーが能動的に再認証する必要があります。 -
より短い再認証を使用する場合は、指定されたより短い値を持つ
max_ageなどのパラメータークエリーパラメーターを使用するか、最終的にはprompt=loginを使用できます。これにより、OIDC 仕様で説明されているように、ユーザーによる能動的な再認証が常に要求されます。デフォルトの 5 分よりも長い値にmax_ageを使用することはサポートされていないことに注意してください。現在、max_ageは、値をデフォルトの 5 分より短くするためにのみ使用できます。
5.6.2. 利用可能なアクション リンクのコピーリンクがクリップボードにコピーされました!
利用可能なすべてのアクションを表示するには、管理コンソールにログインし、右上隅にある Realm info Provider info タブ→プロバイダーの required-action 検索をクリックします。ただし、Required actions タブでレルムに対して有効になっているアクションに基づいて、これがさらに制限される可能性があることに注意してください。