Apacheサーバーと同じADドメインのWindowsユーザー向けにApacheにSSOを正常に実装しました:ADドメイン= example.comLinuxサーバー= linux.example.com KDC = ad.example.com
ユーザーがログインしているアプリケーションではユーザー名の@ example.com部分を削除する必要があるため、httpd.confでKrbLocalUserMappingをONに設定しました。
ここで、ブランチオフィスのユーザーもアプリケーションにログインできるようにしたいのですが、ユーザーは別のドメイン= branchs.example.comから来ています。両方のドメインは信頼できる関係にあります。
Branchs.example.comのユーザーがログインしようとすると、「内部サーバーエラー」が表示され、Apacheエラーログに「Krb5_aname_to_localname()がプリンシパル[email protected]のマッピングが見つかりませんでした」と表示されます。
私の推測では、サブドメインbranchs.example.comからのユーザーは、ユーザー名のドメイン部分が削除されていません。
何をどこで変更する必要がありますか(おそらくkrb5.conf?)。ブランチサブドメイン用に個別のキータブを生成する必要がありますか?
また、任意に再起動できない本番サーバーなので、krb5.confの内容を変更した後、どのサービスを再起動する必要がありますか?
私はあなたと同じ問題にぶつかりました、そして このスレッド のおかげで、私は答えを見つけました!
_mod_auth_kerb
_設定で2番目の(信頼できる)レルムをオンにし、適切なものをキータブに配置した後、2番目のドメインのユーザーでサインオンしようとすると、httpdログに次のようなエラーが表示されていました。
_[auth_kerb:notice] [pid 1234] [client X.X.X.X:12345] krb5_aname_to_localname() found no mapping for principal [email protected]
_
良いニュースは、私はそれを解決したということです!以下の詳細...
まず、Apache HTTPD構成で、次のようなものが必要です。
_# Use this one for both Examples and Branches together
KrbAuthRealms EXAMPLE.COM BRANCHES.EXAMPLE.COM
# Strip the realm from the username
KrbLocalUserMapping On
_
これにより、_mod_auth_kerb
_は、メインドメインレルムまたはブランチレルムのいずれかからユーザーを受け入れ、ユーザー名からレルムを削除するように指示されます。つまり、_[email protected]
_はadminに移動し、_[email protected]
_はguest
に移動します
次に、MIT kerberosと仮定して、_/etc/krb5.conf
_ファイルを編集し、プリンシパルをユーザー名にマップする方法を指示する必要があります。さまざまな歴史的な理由から、これはlibdefaults
セクションは、ご想像のとおりです。レルムごとのセクションでも実行されないため、私は気になりました。代わりに、_auth_to_local
_セクションの_[realm]
_エントリで実行されます。デフォルトのレルム。
デフォルトでは、krb5_aname_to_localname()
libkrb5関数は、デフォルトのレルムからレルムを削除し、それ以外の場合はそのままにします。したがって、ブランチレルムからレルムを削除するように指示するエントリを追加する必要があります。 (より複雑なルールも可能です。詳細については、_krb5.conf
_のマニュアルページを参照してください)
したがって、構成は次のようになります。
_[libdefaults]
default_realm = EXAMPLE.COM
[realms]
EXAMPLE.COM = {
kdc = dc.example.com
admin_server = dc.example.com
auth_to_local = RULE:[1:$1@$0](^.*@BRANCHES\.EXAMPLE\.COM)s/@.*//
auth_to_local = DEFAULT
}
BRANCHES.EXAMPLE.COM = {
kdc = dc.branches.example.com
admin_server = dc.branches.example.com
}
_
_BRANCHES.EXAMPLE.COM
_マッピングルールがそのレルムではなく、デフォルトのレルムであるメインの_EXAMPLE.COM
_レルムに存在することに注意してください。
また、任意に再起動できない本番サーバーなので、krb5.confの内容を変更した後、どのサービスを再起動する必要がありますか?
変更後にApacheHTTPDサービスのみを再起動する必要があります