我已经成功地为apache服务器所在的同一个AD域中的windows用户实现了SSO : AD domain = example.com Linux server = linux.example.com KDC = ad.example.com。
我将KrbLocalUserMapping设置为httpd.conf中的ON,因为用户登录的应用程序需要删除用户名的@example.com部分。
现在,我希望使来自分支机构的用户也能够登录到应用程序,但是他们来自不同的域= branches.example.com。这两个域都处于可信的关系中。
当来自branches.example.com的用户尝试登录时,他们得到了“内部服务器错误”,而apache日志上写着"Krb5_aname_to_localname()没有找到主体user@branches.example.com的映射“
我的猜测是,来自子域branches.example.com的用户并没有将用户名的域部分去掉。
我需要更改什么以及在哪里(可能是krb5.conf?)。是否需要为分支子域生成单独的keytab?
而且,由于它是生产服务器,我不能任意重新启动,所以在更改krb5.conf中的内容后,需要重新启动哪些服务?
发布于 2021-09-23 16:53:01
添加@Gragravarr的答案(非常好,非常感谢!),如果您在apache配置中有一个KrbServiceName PROTOCOL/domain.of.your.service指令,您将需要用KrbServiceName Any替换它(否则您将得到一个错误,因为Kerb/Apache将检查您的ServiceName与每个领域.)
https://serverfault.com/questions/583687
复制相似问题