第12章 ID ブローカー
Identity Broker は、複数のサービスプロバイダーを異なるアイデンティティープロバイダーに接続する中間サービスです。中間サービスとして、アイデンティティーブローカーは外部アイデンティティープロバイダーとの信頼関係を作成し、そのアイデンティティーを使用してサービスプロバイダーによって公開される内部サービスにアクセスします。
ユーザーの観点からは、ID ブローカーは、異なるセキュリティードメインまたはレルム全体でアイデンティティーを管理するユーザー中心および集中的な方法を提供します。既存のアカウントは、異なるアイデンティティープロバイダーからの 1 つ以上のアイデンティティーとリンクしたり、そこから取得されたアイデンティティー情報に基づいて作成することもできます。
ID プロバイダーは、通常、ユーザーの認証および承認情報の認証および通信に使用される特定のプロトコルに基づいています。Facebook、Google、または Twitter などのソーシャルプロバイダーになります。これは、ユーザーがサービスにアクセスする必要があるビジネスパートナーにすることができます。または、統合するクラウドベースのアイデンティティーサービスになります。
通常、アイデンティティープロバイダーは以下のプロトコルに基づきます。
-
SAML v2.0
-
OpenID Connect v1.0
-
OAuth v2.0
次のセクションでは、Red Hat Single Sign-On を ID ブローカーとして設定および使用する方法を、以下のような重要な側面を説明します。
-
Social Authentication
-
OpenID Connect v1.0 Brokering
-
SAML v2.0 Brokering
-
Identity Federation
12.1. ブローカーの概要
Red Hat Single Sign-On をアイデンティティーブローカーとして使用する場合、ユーザーは特定のレルムで認証するためにクレデンシャルの提供は強制的にされません。代わりに、これは認証が可能なアイデンティティープロバイダーの一覧と共に表示されます。
デフォルトのアイデンティティープロバイダーを設定することもできます。この場合、ユーザーには選択が指定されませんが、代わりにデフォルトプロバイダーにリダイレクトされます。
以下の図は、Red Hat Single Sign-On を使用して外部アイデンティティープロバイダーを仲介する場合に役立ちます。
Identity Broker Flow
- ユーザーは認証されず、クライアントアプリケーションで保護されたリソースを要求します。
- クライアントアプリケーションは、ユーザーを 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 がすでに存在する場合は、アイデンティティープロバイダーから返されたアイデンティティーを既存のアカウントにリンクするよう要求します。このプロセスは、アカウントのリンク設定 と呼ばれています。次の作業は設定可能で、最初のログインフローで設定することで指定できます。この手順の最後で、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 は常に独自のトークンをクライアントアプリケーションに対して発行します。つまり、クライアントアプリケーションは、外部アイデンティティープロバイダーから完全に切り離されます。どのプロトコル (SAML、OpenID Connect、OAuth など) が使用されているか、またはユーザーのアイデンティティーが検証された方法を把握する必要はありません。Red Hat Single Sign-On を把握する必要があるのは、Red Hat Single Sign-On のみです。