身份验证方法

内部实现的身份验证方法

Identity 服务可以将用户凭据存储在 SQL 数据库中,或者可以使用符合 LDAP 标准的目录服务器。Identity 数据库可以与 OpenStack 其他服务使用的数据库分开,以降低存储凭据被泄露的风险。

当您使用用户名和密码进行身份验证时,Identity 不会强制执行 NIST 特殊出版物 800-118(草案)建议的密码强度、过期或失败的身份验证尝试策略。希望强制执行更强的密码策略的组织应考虑使用 Identity 扩展或外部身份验证服务。

LDAP 简化了 Identity 身份验证与组织现有目录服务和用户帐户管理流程的集成。

OpenStack 中的身份验证和授权策略可以委托给另一个服务。一个典型的用例是希望部署私有云并且已经在 LDAP 系统中拥有员工和用户数据库的组织。使用此作为身份验证机构,对 Identity 服务的请求将被委托给 LDAP 系统,然后 LDAP 系统将根据其策略授权或拒绝。成功身份验证后,Identity 服务将生成一个用于访问授权服务的令牌。

请注意,如果 LDAP 系统为用户定义了属性,例如 admin、finance、HR 等,则必须将这些属性映射到 Identity 中的角色和组,以便 OpenStack 的各种服务使用。 /etc/keystone/keystone.conf 文件将 LDAP 属性映射到 Identity 属性。

Identity 服务 绝不允许 写入用于 OpenStack 部署之外身份验证的 LDAP 服务,因为这将允许具有足够权限的 keystone 用户对 LDAP 目录进行更改。这将允许在更广泛的组织中进行权限提升,或促进对其他信息和资源的未经授权访问。在这种部署中,用户配置将超出 OpenStack 部署的范围。

外部身份验证方法

组织可能希望实施外部身份验证,以与现有的身份验证服务兼容或强制执行更强的身份验证策略要求。虽然密码是最常见的身份验证形式,但它们可能会通过多种方法被破坏,包括击键记录和密码泄露。外部身份验证服务可以提供替代的身份验证形式,以最大限度地降低弱密码的风险。

这些包括

密码策略强制执行

要求用户密码符合最小长度、字符多样性、过期或失败的登录尝试标准。在外部身份验证场景中,这将是原始身份存储上的密码策略。

多因素身份验证

身份验证服务要求用户提供基于他们所拥有的信息,例如一次性密码令牌或 X.509 证书,以及他们所知道的信息,例如密码。

Kerberos

使用“票证”保护客户端和服务器之间通信的互认证网络协议。Kerberos 票证授予票证可用于安全地为给定的服务提供票证。