第5章 ID ブローカー API
Red Hat Single Sign-On は、親 IDP にログイン認証を委譲できます。典型的な例としては、Facebook や Google などのソーシャルプロバイダーを使用してユーザーがログインできるようにするケースがあります。既存のアカウントをブローカー化された IDP にリンクすることもできます。このセクションでは、アイデンティティーブローカーに関連するので、アプリケーションが使用する API についても一部説明します。
5.1. 外部 IDP トークンの取得
Red Hat Single Sign-On を使用すると、外部 IDP を使用して認証プロセスからのトークンと応答を保存できます。これには、IDP の設定ページで Store Token
設定オプションを使用できます。
アプリケーションコードは、これらのトークンを取得し、追加のユーザー情報でプルしたり、外部 IDP でリクエストを安全に呼び出すことを行うことができます。たとえば、アプリケーションは Google トークンを使用して他の Google サービスおよび REST API で呼び出す場合があります。特定のアイデンティティープロバイダーのトークンを取得するには、以下のようにリクエストを送信する必要があります。
GET /auth/realms/{realm}/broker/{provider_alias}/token HTTP/1.1 Host: localhost:8080 Authorization: Bearer <KEYCLOAK ACCESS TOKEN>
アプリケーションが Red Hat Single Sign-On で認証され、アクセストークンを受信している必要があります。このアクセストークンには、ブローカー
のクライアントレベルのロール read-token
を設定する必要があります。そのため、ユーザーにはこのロールのロールマッピングが必要で、クライアントアプリケーションにそのスコープ内にそのロールがなければなりません。この場合、Red Hat Single Sign-On で保護されたサービスにアクセスする場合には、ユーザー認証時に Red Hat Single Sign-On が発行するアクセストークンを送信する必要があります。ブローカー設定ページでは、Stored Tokens Readable
スイッチを有効にして、新たにインポートしたユーザーにこのロールを自動的に割り当てることができます。
これらの外部トークンについては、プロバイダー経由で再度ログインするか、クライアントが開始したアカウントリンク API を使用して再度確立できます。