我在域环境中工作,由 Windows 2008 主机上的 Active Directory 提供服务。我是普通的“域用户”,没有特殊权限,也无法获得任何权限。
当我尝试设置我自己的 Linux 系统以使用 kerberos 通过 ssh 登录时,我遇到了一个障碍:我无法添加以下形式的主体:host/@DOMAIN
这就让我想到了一个问题:有没有办法解决这个问题并获得单点登录(SSO)功能?
如果没有,是否有其他机制可以实现 SSO?(我猜这需要设置我自己的内部 KDC)。
答案1
您需要将 Linux 计算机加入 AD,这样就可以创建计算机帐户和相关密钥。net ads join
从 Samba 包中可以很容易地实现这一点。我认为这是您需要 AD 管理员权限的(唯一)部分。然后,您可以用 SPN 填充密钥表;将 SPN 记录添加到计算机帐户只需要“验证写入 SPN”权限。
有一种方法可以使用ktpass.exe
实用程序将 SPN(和 keytab 条目)映射到任意域帐户,但这肯定需要具有管理权限的域控制器访问。
如果没有这个,您将无法使用 AD 作为您的 Kerberos 领域。还有其他选项,例如 - 如您所建议的 - 设置具有自己的 KDC 的并行 Kerberos 环境,这还需要配置您想要支持此领域的每项服务。
Kerberos 并不是唯一想到的 SSO 选项。集成密钥/密码加密存储,如KWallet或者苹果钥匙扣可能会提供更好的 SSO 体验,同时不需要零配置。
希望这可以帮助。