8.4.5. レルム間の信頼
Kerberos プロトコルでは、レルム
は Kerberos プリンシパルのセットです。これらのプリンシパルの定義は Kerberos データベース (通常は LDAP サーバー) に存在します。
Kerberos プロトコルは、レルム間の信頼を許可します。たとえば、2 つの Kerberos レルム A および B が存在する場合は、レルム間の信頼により、レルム A のユーザーがレルム B のリソースにアクセスできるようになります。レルム B がレルム A を信頼します。
Kerberos レルム間の信頼
Red Hat Single Sign-On サーバーは、レルム間の信頼をサポートします。これを実装するには、以下を実行します。
-
レルム間の信頼用に Kerberos サーバーを設定します。この手順の実装は、Kerberos サーバーの実装によって異なります。この手順は、Kerberos プリンシパル
krbtgt/B@A
をレルム A および B の Kerberos データベースに追加するために必要です。このプリンシパルは両方の Kerberos レルムで同じキーを持つ必要があります。プリンシパルは、両方のレルムで同じパスワード、キーバージョン番号、および暗号を持つ必要があります。詳細は、Kerberos サーバーのドキュメントを参照してください。
レルム間の信頼は、デフォルトで一方向です。レルム A とレルム B 間の双方向の信頼のために、プリンシパル krbtgt/A@B
を両方の Kerberos データベースに追加する必要があります。ただし、信頼はデフォルトで推移的です。レルム B がレルム A を信頼し、レルム C がレルム B を信頼する場合、レルム C は、プリンシパル krbtgt/C@A
なしでレルム A を信頼します。クライアントが信頼パスを見つけることができるように、Kerberos クライアント側で追加の設定 (例:capaths
) が必要になる場合があります。詳細は、Kerberos のドキュメントを参照してください。
Red Hat Single Sign-On サーバーの設定
-
Kerberos がサポートされる LDAP ストレージプロバイダーを使用する場合は、レルム B のサーバープリンシパルを設定する必要があります (この例では
HTTP/mydomain.com@B
)。Red Hat Single Sign-On は SPNEGO フローを実行し、ユーザーを見つける必要があるため、レルム A からのユーザーが Red Hat Single Sign-On に対して正常に認証されるためには、LDAP サーバーはレルム A からユーザーを見つける必要があります。
-
Kerberos がサポートされる LDAP ストレージプロバイダーを使用する場合は、レルム B のサーバープリンシパルを設定する必要があります (この例では
たとえば、Kerberos プリンシパルユーザー john@A
は、uid=john,ou=People,dc=example,dc=com
などの LDAP DN の下にある LDAP で利用できるようにする必要があります。レルム A および B からのユーザーを認証する場合は、LDAP がレルム A と B 両方からのユーザーを見つけられるようにします。
-
Kerberos ユーザーストレージプロバイダー (通常は LDAP 統合のない Kerberos) を使用する場合は、サーバープリンシパルを
HTTP/mydomain.com@B
に設定し、Kerberos レルム A および B からのユーザーを認証できる必要があります。
Kerberos ユーザーストレージプロバイダーを使用する場合は、Kerberos レルム間でのユーザーの競合は許されません。競合するユーザーが存在する場合は、Red Hat Single Sign-On はそれらを同じユーザーにマッピングします。