PowerScale:OneFS:如何创建 SPN 帐户以允许使用 SmartConnect DNS 条目进行 Kerberos 身份验证
Summary: 有关如何创建 SPN 帐户以允许使用 SmartConnect DNS 条目进行 Kerberos 身份验证的文章。
Instructions
简介
为了在基于 Active Directory 的环境中按名称连接到群集而不提供用户名和密码,必须使用 Kerberos 身份验证。
使用 Kerberos 身份验证访问群集时,客户端会与群集建立 Kerberos 票证。这基于客户端用于连接的 DNS 名称。默认情况下,群集仅注册有效 Kerberos 票证的群集名称。这可能导致在使用基于 SmartConnect 的 DNS 条目进行连接时,Kerberos 票证被拒绝。它还可能强制用户重新输入其用户名和密码以访问群集。
流程
若要支持多个 Kerberos 票证,必须在 Active Directory 域上为群集计算机注册其他 SPN(服务主体名称)帐户。您可以使用 isi auth 命令执行此作。此作不会自动执行,因为它需要 Active Directory 域上的管理员帐户。
对于每个 DNS 名称,必须创建两个 SPN 条目。
要注册 SPN 帐户,请执行以下作:
- 从命令行运行以下命令,以列出群集上配置的 SmartConnect 分区:
isi networks list pools - 运行以下命令以列出已注册的 SPN 名称,将 DNS 域>替换为< DNS 域的完全限定域名:
isi auth ads spn list --domain=<DNS domain> - 将 SmartConnect 区域列表与 SPN 名称列表进行比较,以确定必须注册哪些 SPN 帐户。
例如,如果您有一个名为 dnsnl.domain.local 的 SmartConnect 区域,请检查 SPN 列表以查看是否有该 DNS 名称的条目。对于在 Active Directory 域中注册的每个 SPN 帐户,都应有两个条目
- 如果所需的 SPN 帐户条目不存在,请运行以下命令以添加它们,其中 <Administrator> 是具有域管理权限的用户帐户, <cluster.domain.local> 是用于连接到群集的 DNS 名称, <domain name> 是完全限定的域名服务器:
isi auth ads spn create --user=<Administrator> --spn=cifs/<cluster.domain.local> --domain=<domain name> isi auth ads spn create --user=<Administrator> --spn=host/<cluster.domain.local> --domain=<domain name>重要!
您必须在添加 SPN 时指定 AD 管理员用户名。如果不这样做,您将收到以下错误:LdapError:无法修改属性[19]
运行该命令后,系统将提示您输入管理员密码。
- 运行以下命令以确认现在列出了您创建的 SPN 帐户:
isi auth ads spn list --domain=<DNS domain>
Additional Information
其它信息
还可以使用 isi auth 命令删除现有 SPN 帐户。
要删除 SPN 帐户,请运行以下命令,将 Administrator> 替换为<对域具有管理权限的用户帐户,并将 <cluster.domain.local> 替换为 DNS 名称和要删除的名称:
isi auth ads spn delete --user=<Administrator> --spn=cifs/<cluster.domain.local>
isi auth ads spn delete --user=<Administrator> --spn=host/<cluster.domain.local>