1.5. JBoss EAP での Kerberos による SSO の提供

Kerberos は、クライアントおよびサーバーによって使用されるチケットを KDC から発行してデスクトップベースの SSO を提供します。JBoss EAP はこれと同じチケットを独自の認証および承認プロセスで使用して、既存のプロセスと統合することができます。JBoss EAP がどのようにこのチケットを再使用するかを理解する前に、チケットがどのように発行され、JBoss EAP がないデスクトップベースの SSO で認証および承認がどのように Kerberos と動作するかを理解することが重要です。

1.5.1. デスクトップベース SSO での Kerberos による認証および承認

Kerberos は、認証および承認を提供するため、サードパーティーの KDC に依存してクライアントにアクセスするサーバーの認証および承認決定を提供します。決定は 3 つの手順で行われます。

  1. 認証の交換

    プリンシパルが最初にネットワークにアクセスする場合またはチケット保証チケット (TGT) なしでセキュアなサービスにアクセスする場合、プリンシパルのクレデンシャルを使用して認証サービス (AS) に対して認証することが要求されます。AS はユーザー提供のクレデンシャルを設定済みのアイデンティティーストアと照合します。認証に成功したら、クライアントによってキャッシュされる TGT がプリンシパルに発行されます。TGT には一部のセッション情報も含まれているため、クライアントと KDC の今後の通信も保証されます。

  2. チケットの付与または承認、交換

    プリンシパルに TGT が発行されたら、プリンシパルはセキュアなサービスまたはリソースにアクセスします。プリンシパルはチケット保証サービス (TGS) にリクエストを送信し、KDC によって発行された TGT を渡し、特定の接続先に対するサービスチケット (ST) を要求します。TGS はプリンシパルが提供した TGT をチェックし、要求したリソースにアクセスできる適切な権限があることを検証します。検証に成功したら、TGS はプリンシパルがその特定の接続先にアクセスするための ST を発行します。また、TGS はクライアントと接続先サーバーの両方に対してセッション情報を作成し、クライアントと接続先サーバー間のセキュアな接続を可能にします。このセッション情報は、クライアントとサーバーが、以前のトランザクションで KDC によって個別に提供された長期キーを使用して、独自のセッション情報のみを復号化できるよう個別に暗号化されます。その後、TGS はクライアントとサーバー両方のセッション情報が含まれる ST でクライアントに応答します。

  3. サーバーへのアクセス

    これで、プリンシパルはセキュアなサービスの ST と、サーバーとセキュアに通信できるメカニズムを取得したため、クライアントは接続を確立し、セキュアなリソースへアクセスできます。クライアントは最初に ST を接続先サーバーに渡します。この ST には、その接続先用に TGS から受け取ったセッション情報のサーバーコンポーネントが含まれています。サーバーは、KDC からの長期鍵を使用して、クライアントが渡したセッション情報を復号化します。復号化できたら、クライアントはサーバーに対して認証され、サーバーもクライアントに対して認証されたことになります。この時点で信頼が確立され、クライアントとサーバー間でセキュアな通信が行えます。

注記

承認されていないプリンシパルは TGT を使用できませんが、最初に AS で認証に成功した後でのみプリンシパルに TGT が発行されます。これにより、適切に承認されたプリンシパルのみに TGT が発行されるだけでなく、承認されていない第三者がオフラインの辞書攻撃や総当り攻撃などの不正使用が目的で、TGT を取得する可能性が低減されます。

1.5.2. Kerberos および JBoss EAP

JBoss EAP を既存の Kerberos デスクトップベースの SSO 環境と統合すると、同じチケットで JBoss EAP インスタンス上でホストされる web アプリケーションへのアクセスを提供することが可能です。典型的なセットアップでは、レガシー security サブシステムまたは elytron サブシステムのいずれかを使用して、SPNEGO での Kerberos 認証を使用するよう JBoss EAP インスタンスが設定されます。SPNEGO 認証を使用するよう設定されたアプリケーションは、その JBoss EAP インスタンスにデプロイされます。ユーザーは、Kerberos によって保護されたデスクトップにログインし、KDC と認証の交換を完了します。その後ユーザーは、JBoss EAP インスタンスが直接 web ブラウザーを使用するデプロイされたアプリケーションのセキュアなリソースにアクセスしようとします。JBoss EAP は、セキュアなリソースへのアクセスには承認が必要であることを伝えます。web ブラウザーはユーザーの TGT チケットを取得し、チケットの許可 (承認) を行い、KDC と交換してユーザーを検証し、サービスチケットを取得します。ST がブラウザーに返されたら、SPNEGO 用にフォーマットされたリクエストに ST をラップし、JBoss EAP 上で実行している web アプリケーションに返信します。その後、JBoss EAP は SPNEGO リクエストをアンパックし、レガシー security サブシステムまたは elytron サブシステムのいずれかを使用して認証を実行します。認証に成功すると、ユーザーはセキュアなリソースへのアクセスが許可されます。