6.4.5. レルム間の信頼
Kerberos V5 プロトコルでは、レルム
は Kerberos データベース (通常は LDAP サーバー) で定義される Kerberos プリンシパルのセットです。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 を割り当てる場合は、両方の Kerberos データベースにプリンシパル krbtgt/A@B
も追加する必要があります。ただし、デフォルトでは trust は推移的です。レルム B がレルム A を信頼し、レルム C がレルム B を信頼する場合、レルム C はプリンシパル krbtgt/C@A
が利用可能でなくてもレルム A を自動的に信頼します。クライアントが信頼パスを検索できるように、Kerberos クライアント側で追加の設定 (capaths
など) が必要になる場合があります。詳細は、Kerberos のドキュメントを参照してください。
Red Hat Single Sign-On サーバーの設定
-
Kerberos サポートのある LDAP ストレージプロバイダーを使用する場合は、
HTTP/mydomain.com@B
の例のようにレルム B のサーバープリンシパルを設定する必要があります。Red Hat Single Sign-On サーバーは SPNEGO フローを実行してからユーザーを見つける必要があるため、レルム A からのユーザーが Red Hat Single Sign-On に正常に認証される必要があるため、LDAP サーバーはレルム A からユーザーを見つけなければなりません。たとえば、kerberos プリンシパルユーザーjohn@A
は、uid=john,ou=People,dc=example,dc=com
などの LDAP DN の下にあるユーザーとして利用できるようにする必要があります。レルム A および B からのユーザーの両方を認証する場合は、LDAP がレルム A と B の両方からユーザーを検索できるようにする必要があります。今後のバージョンでこの制限を改善するため、別のレルム用にさらに別の LDAP プロバイダーを作成し、SPN が両方で動作することを確認する必要があります。 -
Kerberos ユーザーストレージプロバイダー (通常は LDAP 統合なしで Kerberos) を使用する場合は、サーバープリンシパルを
HTTP/mydomain.com@B
として設定する必要があります。また、Kerberos レルム A と B の両方が認証できるようにする必要があります。
-
Kerberos サポートのある LDAP ストレージプロバイダーを使用する場合は、
Kerberos ユーザーストレージプロバイダーでは、Kerberos レルム間でユーザーが競合しないようにすることが推奨されます。競合するユーザーが存在する場合は、同じ Red Hat Single Sign-On ユーザーにマッピングされます。これは、今後のバージョンで改善し、Kerberos プリンシパルから Red Hat Single Sign-On ユーザー名へのより柔軟なマッピングを提供します。