第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 でサポートされるすべてのアイデンティティープロバイダーは、以下のフローを使用します。

アイデンティティーブローカーフロー

Identity broker flow

  1. 認証されていないユーザーは、クライアントアプリケーションの保護されているリソースを要求します。
  2. クライアントアプリケーションは、認証のためにユーザーを Red Hat Single Sign-On にリダイレクトします。
  3. Red Hat Single Sign-On は、レルムに設定されたアイデンティティープロバイダーの一覧と共にログインページを表示します。
  4. ユーザーは、ボタンまたはリンクをクリックしてアイデンティティープロバイダーの 1 つを選択します。
  5. Red Hat Single Sign-On は、ターゲットのアイデンティティープロバイダーに認証要求を発行して認証を要求し、ユーザーをアイデンティティープロバイダーのログインページにリダイレクトします。管理者は、すでに管理コンソールのアイデンティティープロバイダーの接続プロパティーおよびその他の設定オプションを設定しています。
  6. ユーザーは、アイデンティティープロバイダーと認証を行うための認証情報または同意を提供します。
  7. アイデンティティープロバイダーによる認証に成功すると、ユーザーは認証応答と共に Red Hat Single Sign-On にリダイレクトされます。通常、応答には、アイデンティティープロバイダーの認証を信頼し、ユーザー情報を取得するために Red Hat Single Sign-On が使用するセキュリティートークンが含まれます。
  8. 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 では、アカウントのリンク を設定し、それを First Login Flow で指定できます。このステップで、Red Hat Single Sign-On はユーザーを認証し、サービスプロバイダー内の要求されたリソースにアクセスためのそのトークンを発行します。
  9. ユーザーが認証されたら、Red Hat Single Sign-On は、前のステップのローカル認証時に発行されたトークンを送信することで、ユーザーをサービスプロバイダーにリダイレクトします。
  10. サービスプロバイダーは Red Hat Single Sign-On からトークンを受け取り、保護されたリソースへのアクセスを許可します。

このフローのバリエーションが可能です。たとえば、クライアントアプリケーションは、アイデンティティープロバイダーのリストを表示するのではなく特定のプロバイダーを要求することや、Red Hat Single Sign-On を設定して、アイデンティティーのフェデレーションを行う前にユーザーに追加情報の提供を強制することができます。

認証プロセスの最後に、Red Hat Single Sign-On はそのトークンをクライアントアプリケーションに対して発行します。クライアントアプリケーションは外部のアイデンティティープロバイダーから分離されるため、クライアントアプリケーションのプロトコルやユーザーのアイデンティティーの検証方法を確認できません。プロバイダーが把握する必要があるのは、Red Hat Single Sign-On のみです。