6.4.5. レルム間の信頼

Kerberos V5 プロトコルでは、レルム は Kerberos データベース (通常は LDAP サーバー) で定義される Kerberos プリンシパルのセットです。Kerberos プロトコルには、レルム間の信頼の概念があります。たとえば、2 つの Kerberos レルム A および B がある場合、クロスレルム信頼は、レルム A からのユーザーがレルム B のリソース (サービス) にアクセスできるようにします。これは、レルム B がレルム A を信頼することを意味します。

Kerberos レルム間の信頼

kerberos trust basic

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 ユーザーストレージプロバイダーでは、Kerberos レルム間でユーザーが競合しないようにすることが推奨されます。競合するユーザーが存在する場合は、同じ Red Hat Single Sign-On ユーザーにマッピングされます。これは、今後のバージョンで改善し、Kerberos プリンシパルから Red Hat Single Sign-On ユーザー名へのより柔軟なマッピングを提供します。