第3章 Red Hat JBoss Enterprise Application Platform における SSO のその他のユースケース
JBoss EAP は、初期状態の機能の他に、その他の SSO のユースケースもサポートします。これらのユースケースには、ブラウザーベースの SSO、デスクトップベースの SSO、およびセキュアトークンサービスを介した SSO に対する SAML が含まれます。
3.1. SAML を使用したブラウザーベースの SSO
ブラウザーベースの SSO の場合、サービスプロバイダーと呼ばれる 1 つ以上の web アプリケーションがハブアンドスポーク型アーキテクチャーの集中管理されたアイデンティティープロバイダーに接続されます。アイデンティティープロバイダー (IDP) は、サービスプロバイダー (スポーク) へのアイデンティティーおよびロール情報の中央のソース (ハブ) として動作します。認証されていないユーザーがサービスプロバイダーの 1 つにアクセスしようとすると、そのユーザーは IDP へリダイレクトされ、認証を行います。IDP がユーザーを認証すると、プリンシパルのロールを指定する SAML トークンを発行し、要求されたサービスプロバイダーにリダイレクトします。SAML トークンは関連するすべてのサービスプロバイダーで使用され、ユーザーのアイデンティティーとアクセス権が判断されます。SSO を使用してサービスプロバイダーで開始されるこのような方法は、サービスプロバイダー開始フロー (Service provider-initiated flow) と呼ばれます。
JBoss EAP は多くの SSO システムと同様に IDP と SP を使用します。これらのコンポーネントは JBoss EAP インスタンス内で実行でき、JBoss EAP の security
サブシステムとともに動作します。FORM ベースのウェブアプリケーションセキュリティーである SAML v2、HTTP/POST および HTTP/リダイレクトバインディングも SSO の実行に使用されます。
アイデンティティープロバイダーを作成するには、LDAP やデータベースなどの認証および承認メカニズムを定義する JBoss EAP インスタンスでセキュリティードメイン (例: idp-domain
) を作成し、アイデンティティーストアとします。idp-domain
とともに IDP の実行に必要な追加のモジュール (org.picketlink
) を使用するよう、web アプリケーション (例: IDP.war
) が設定され、同じ JBoss EAP インスタンスにデプロイされます。IDP.war はアイデンティティープロバイダーとなります。サービスプロバイダーを作成するため、SAML2LoginModule
を認証方法として使用するセキュリティードメイン (例: sp-domain
) が作成されます。web アプリケーション (例: SP.war
) は追加のモジュール ( org.picketlink
) を使用するよう設定され、sp-domain
を使用するサービスプロバイダーバルブが含まれます。SP.war
は sp-domain
が設定された JBoss EAP インスタンスにデプロイされ、サービスプロバイダーとなります。このプロセスは、SP2.war
や SP3.war
などのように 1 つ以上の SP に対してレプリケートでき、1 つ以上の JBoss EAP インスタンス全体でレプリケートできます。
3.1.1. アイデンティティープロバイダー開始フロー (Identity Provider Initiated Flow)
ほとんどの SSO のシナリオでは、SP は有効なアサーションで SAML 応答を SP に送信する IDP に認証リクエストを送信して、フローを開始します。これは SP 開始フロー (SP-initiated flow) と呼ばれます。SAML 2.0 仕様は、IDP 開始フロー (IDP-initiated flow) または未承諾応答フロー (Unsolicited Response flow) と呼ばれる別のフローを定義します。このフローの場合、サービスプロバイダーは認証フローを開始せずに IDP から SAML 応答を受信します。このフローは IDP 側で開始されます。ユーザーは認証されると、リストから特定の SP を選択でき、SP の URL へリダイレクトされます。このフローを有効にするのに特別な設定は必要ありません。
手順
- ユーザーが IDP にアクセスします。
- IDP は SAML 要求や応答がないことを確認し、SAML を使用した IDP 開始フローを想定します。
- IDP はユーザーの認証を行います。
- 認証後、IDP は、すべての SP アプリケーションにリンクするページをユーザーが取得する、ホストされたセクションを表示します。
- ユーザーは SP アプリケーションを選択します。
- IDP は、クエリーパラメーターの SAML 応答に SAML アサーションを持つ SP へユーザーをリダイレクトします。
- SP は SAML アサーションをチェックし、アクセスを提供します。
3.1.2. グローバルログアウト
1 つの SP で開始されるグローバルログアウトは、IDP およびすべての SP からユーザーをログアウトします。グローバルログアウトの実行後に、SP または IDP のセキュアな部分にアクセスするユーザーは再認証が必要になります。