使用首选用户名但根据 Kerberos 主体进行身份验证

使用首选用户名但根据 Kerberos 主体进行身份验证

我想要做的事情应该非常简单。

我有一台 Ubuntu 10.04 机器。它目前配置为根据 kerberos 域 (EXAMPLE.ORG) 对用户进行身份验证。krb5.conf 文件中只有一个域,它是默认域。

[libdefaults]
    default_realm = EXAMPLE.ORG

PAM 配置为使用 pam_krb5 模块,因此如果在本地计算机上创建了用户帐户,并且该用户名与[电子邮件保护]凭证,该用户可以通过提供其 Kerberos 密码登录。

我想做的是创建一个本地用户帐户不同的用户名,但始终根据 kerberos 服务器中的规范名称进行身份验证。

例如,kerberos 主体是[email protected]。我想创建本地帐户preferred.name并以某种方式配置 kerberos,以便当有人尝试以 身份登录时preferred.name,它使用主体[email protected]

我曾尝试auth_to_local_names在 krb5.conf 中使用,但这似乎不起作用。

[realms]
    EXAMPLE.ORG = {
            auth_to_local_names = {
                    full.name = preferred.name
            }

我已尝试添加[email protected]到~preferred.name/.k5login。

在所有情况下,当我尝试以 preferred.name@host 身份登录并输入 full.name 的密码时,都会出现访问被拒绝的情况。

我甚至尝试auth_to_local在 krb5.conf 中使用,但无法获得正确的语法。

是否有可能拥有一个(独特的)本地用户名,其所有用途的行为都与匹配的用户名完全相同?如果可以,如何实现?

答案1

我搞明白了。我根本不需要使用 auth_to_local。我可以在用户的​​主目录中使用 .k5login。首先,

cat > ~preferred.name/.k5login
[email protected]

然后,我必须配置 PAM 以遵守 .k5login。在 /etc/pam.d/common-auth 中,我找到auth sufficient pam_krb5.so,并附加选项search_k5login

此后,任何以 preferred.name 身份登录的尝试都将接受以下密码:[电子邮件保护]

相关内容