第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.warsp-domain が設定された JBoss EAP インスタンスにデプロイされ、サービスプロバイダーとなります。このプロセスは、SP2.warSP3.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 へリダイレクトされます。このフローを有効にするのに特別な設定は必要ありません。

手順

  1. ユーザーが IDP にアクセスします。
  2. IDP は SAML 要求や応答がないことを確認し、SAML を使用した IDP 開始フローを想定します。
  3. IDP はユーザーの認証を行います。
  4. 認証後、IDP は、すべての SP アプリケーションにリンクするページをユーザーが取得する、ホストされたセクションを表示します。
  5. ユーザーは SP アプリケーションを選択します。
  6. IDP は、クエリーパラメーターの SAML 応答に SAML アサーションを持つ SP へユーザーをリダイレクトします。
  7. SP は SAML アサーションをチェックし、アクセスを提供します。

3.1.2. グローバルログアウト

1 つの SP で開始されるグローバルログアウトは、IDP およびすべての SP からユーザーをログアウトします。グローバルログアウトの実行後に、SP または IDP のセキュアな部分にアクセスするユーザーは再認証が必要になります。