我一直在考虑mod_auth_kerb
在我们的内部 Web 服务器上部署以启用 SSO。我可以看到的一个明显问题是,这是一种全有或全无的方法,您的所有域用户都可以访问一个站点,也可以不访问。
是否可以结合检查mod_auth_kerb
LDAPmod_authnz_ldap
中特定组的组成员资格?我猜这个KrbAuthoritative
选项会与此有关吗?
另外,据我了解,该模块将用户名设置为username@REALM
身份验证后,但当然在目录中用户仅存储为用户名。此外,我们运行的一些内部站点(例如 trac)已经有一个与每个用户名相关联的用户配置文件。有没有办法解决这个问题,也许是在身份验证后以某种方式剥离领域位?
现在可以在 mod_auth_kerb 5.4 中使用以下配置指令从 REMOTE_USER 中剥离领域:
KrbLocalUserMapping 开启
这是 2.2 中 authn/authz 分离的重点,您可以使用一种机制进行身份验证,并使用另一种机制进行授权。身份验证为您提供了 REMOTE_USER 设置,然后您可以使用 authz_ldap 对其进行设置。此外,authn_ldap 会搜索用户(如果找到,则将 REMOTE_USER 转换为 DN,使用您必须指定的搜索条件 - 例如搜索 CN)。然后,在找到 DN 后,您可以指定对 LDAP 对象的要求。例如,如果访问资源的所有用户都必须在同一个 OU 中,则指定
要求 ldap-dn ou=经理,o=公司
Debian stable 现在附带 5.4 版mod_auth_kerb。
如果您坚持使用旧版本,此页面说明如何将 mod_map_user 与 mod_auth_kerb 和 mod_authnz_ldap 结合使用。