第9章 アイデンティティープロバイダーの統合
Identity Broker は、サービスプロバイダーをアイデンティティープロバイダーに接続する中間サービスです。アイデンティティープロバイダーは外部アイデンティティープロバイダーとの関係を作成し、プロバイダーのアイデンティティーを使用してサービスプロバイダーが公開する内部サービスにアクセスします。
ユーザーの観点からすると、アイデンティティーブローカーは、セキュリティードメインおよびレルムのアイデンティティーを管理するユーザー中心の一元的な方法を提供します。アカウントをアイデンティティープロバイダーからの 1 つまたは複数のアイデンティティーとリンクすることや、プロバイダーからの ID 情報に基づいてアカウントを作成することができます。
アイデンティティープロバイダーは特定のプロトコルに基づき、これを使用して認証を行い認証および認可情報をユーザーに送付します。以下をアイデンティティープロバイダーとすることができます。
- Facebook、Google、Twitter などのソーシャルプロバイダー。
- そのユーザーがお客様のサービスにアクセスする必要があるビジネスパートナー。
- 統合するクラウドベースのアイデンティティーサービス。
通常、Red Hat Single Sign-On は、以下のプロトコルで ID プロバイダーをサポートとします。
-
SAML v2.0
-
OpenID Connect v1.0
-
OAuth v2.0
9.1. ブローカーの概要
Red Hat Single Sign-On をアイデンティティーブローカーとして使用する場合、Red Hat Single Sign-On は特定のレルムで認証するのにユーザーに対してクレデンシャルの提供を強制しません。Red Hat Single Sign-On は、認証が可能なアイデンティティープロバイダーのリストを表示します。
デフォルトのアイデンティティープロバイダーを設定した場合、Red Hat Single Sign-On はユーザーをデフォルトのプロバイダーにリダイレクトします。
プロトコルによって異なる認証フローが必要になる場合があります。Red Hat Single Sign-On でサポートされるすべてのアイデンティティープロバイダーは、以下のフローを使用します。
アイデンティティーブローカーフロー
- 認証されていないユーザーは、クライアントアプリケーションの保護されているリソースを要求します。
- クライアントアプリケーションは、認証のためにユーザーを Red Hat Single Sign-On にリダイレクトします。
- Red Hat Single Sign-On は、レルムに設定されたアイデンティティープロバイダーのリストと共にログインページを表示します。
- ユーザーは、ボタンまたはリンクをクリックしてアイデンティティープロバイダーの 1 つを選択します。
- Red Hat Single Sign-On は、ターゲットのアイデンティティープロバイダーに認証要求を発行して認証を要求し、ユーザーをアイデンティティープロバイダーのログインページにリダイレクトします。管理者は、すでに管理コンソールのアイデンティティープロバイダーの接続プロパティーおよびその他の設定オプションを設定しています。
- ユーザーは、アイデンティティープロバイダーと認証を行うための認証情報または同意を提供します。
- アイデンティティープロバイダーによる認証に成功すると、ユーザーは認証応答と共に Red Hat Single Sign-On にリダイレクトされます。通常、応答には、アイデンティティープロバイダーの認証を信頼し、ユーザー情報を取得するために Red Hat Single Sign-On が使用するセキュリティートークンが含まれます。
- Red Hat Single Sign-On は、アイデンティティープロバイダーからの応答が有効かどうかを確認します。有効な場合、Red Hat Single Sign-On は、ユーザーが存在しない場合に、ユーザーをインポートして作成します。トークンに必要な情報が含まれていない場合、Red Hat Single Sign-On はアイデンティティープロバイダーに追加のユーザー情報を求める場合があります。この動作は ID フェデレーション です。ユーザーがすでに存在する場合、Red Hat Single Sign-On は、アイデンティティープロバイダーから返されたアイデンティティーを既存のアカウントにリンクするようユーザーに要求します。この動作は、アカウントのリンク です。Red Hat Single Sign-On では、アカウントのリンク を設定し、初回ログインフロー で指定できます。このステップで、Red Hat Single Sign-On はユーザーを認証し、サービスプロバイダー内の要求されたリソースにアクセスためのそのトークンを発行します。
- ユーザーが認証されたら、Red Hat Single Sign-On は、前のステップのローカル認証時に発行されたトークンを送信することで、ユーザーをサービスプロバイダーにリダイレクトします。
- サービスプロバイダーは Red Hat Single Sign-On からトークンを受け取り、保護されたリソースへのアクセスを許可します。
このフローのバリエーションが可能です。たとえば、クライアントアプリケーションは、アイデンティティープロバイダーのリストを表示するのではなく特定のプロバイダーを要求することや、Red Hat Single Sign-On を設定して、アイデンティティーのフェデレーションを行う前にユーザーに追加情報の提供を強制することができます。
認証プロセスの最後に、Red Hat Single Sign-On はそのトークンをクライアントアプリケーションに対して発行します。クライアントアプリケーションは外部のアイデンティティープロバイダーから分離されるため、クライアントアプリケーションのプロトコルやユーザーのアイデンティティーの検証方法を確認できません。プロバイダーが把握する必要があるのは、Red Hat Single Sign-On のみです。