现代身份指南
Search…
⌃K

第十四章 账号管理

涉及到身份信息时,发生改变非常的常见! 在本章中,我们将介绍支持身份及其属性随时间变化的需求。

身份的属性

用户改变身份信息的原因有很多,用户的身份信息可能会随着时间而改变。 一些更新将来自用户自己。 我们需要假设用户可能需要更改其个人资料中的几乎所有属性,例如他们的电子邮件地址、街道地址、电话号码,甚至他们的姓名。 许多隐私法规,包括 GDPR(欧盟通用数据保护条例)第 15 条,要求用户必须能够访问和更正数据控制者持有的有关于他们自己的数据。如果您是数据处理者,您可能需要向使用您服务的数据控制者提供此功能。
身份配置文件更改的需要取决于身份管理信息的所在位置。 如果您的应用程序将身份验证委托给社交提供商,则用户可能需要在社交提供商处更新某些配置文件属性。 同样,如果您的应用程序将身份验证委托给企业提供者,用户可能需要在那里更新身份信息。 除了用户自己进行的更新外,管理员或自动管理流程可能会更新用户身份。 这些更新通常会影响由身份提供者的所有者而不是用户控制的属性,并且可能涉及应用程序中用于访问控制决策的属性,例如工作级别、部门和角色或组成员资格。
如果应用程序中的用户配置文件数据来自多个来源,则必须明确更新每个属性的方式和位置。 应用程序可能会从身份提供者那里提取一些用户属性,并使用由应用程序收集和管理的附加数据来扩充该数据。 在这种情况下,用户需要知道在哪里更新不同的属性。 应用程序的任何管理或支持流程也需要知道如何以及在何处更新每个属性。
当应用程序缓存来自身份提供者的用户配置文件数据时,必须考虑更新缓存数据的必要频率。 当用户进行身份验证时,应用程序可以从身份验证提供者接收用户配置文件属性。应用程序将在用户登录会话期间获取信息,并且可以将信息缓存在其自己的存储库中以在用户离线时使用。但是,如果身份提供者的信息发生变化并且用户不经常登录,缓存将变得陈旧。如果在用户登录之间需要最新信息,应用程序可能会查询 API 以获取更新的信息。否则,可能需要定期同步,从历史上看,。尽管这种同步大多数是通过定制的解决方案(API接口/文件共享)完成的,但是,跨域身份管理系统 (SCIM) 协议i 的为身份同步和更新提供了一个跨域的身份更新同步标准,通常可以在企业身份提供者和依赖方之间应用该协议。
更新用户属性的一种特殊情况是用户需要更新作为其在远程身份提供者处的帐户标识符的属性的情况。 如果更改了远程提供程序标识符,则用户下次登录时,应用程序将收到新标识符。 如果应用程序帐户或数据与旧标识符相关联,并且用户使用新标识符登录,则用户可能无法访问与旧标识符关联的帐户或数据。 如果身份提供者除了用户配置文件属性之外,还向应用程序提供一个永不更改的内部标识符,则可以避免该问题。 或者,如果使用显式帐户链接,用户可能能够在更改前取消旧身份的链接,并在更改后重新链接到新身份,但这需要用户预先考虑,实践起来并不现实!

凭证重置

用户可能还需要不时更新他们的凭据。 将身份验证委托给身份提供者的应用程序不必存储凭据或实现凭据重置功能,因为凭据位于身份提供者处。 应用程序可以简单地提供指向适当提供者处的凭证重置功能的链接或指令。 如果您使用身份提供者服务,您应该确保其选择支持自助服务凭证更新和帐户恢复的服务。

账户恢复

用户可能会忘记或丢失帐户凭据。 用户可能忘记密码,会丢失电话或硬件安全令牌等身份验证器,或者损坏。 如果发生这种情况,用户必须通过原始凭证以外的某种机制证明他们是帐户的所有者,然后才被允许设置新的凭证。
在许多情况下,依赖身份提供者的应用程序可能能够利用身份提供者提供的帐户恢复机制。 然后,选择具有合理安全的自助帐户恢复机制的提供商就变得很重要。 提示用户回答先前建立的安全问题的解决方案存在的问题是,有可能该问题的答案容易被猜测、或者用户根本没有记住用户预设的答案。
将密码重置链接发送到先前使用该帐户注册的电子邮件地址或者电话的解决方案避免了先前方案的缺点。 但是,这取决于帐户所有者能否访问与帐户关联的电子邮件。 通过 SMS 向用户个人资料中预先前注册的手机号码发送一次性代码依赖于当前号码和 SMS 消息的安全性和当然手机号码的可用性。最好的能够让用户设置主要的以及一个或者多个备份的验证机制,防止其中一个被破坏或者受到损害。

密码指导

如果使用密码,您可能希望向您的用户提供有关什么构成良好密码的指导,并在您可以选择的情况下选择执行更强密码策略的身份提供者。 NIST 一项有趣的新研究检验了先前密码指南的有效性ii。过去的安全建议建议混合使用小写和大写字符、数字和特殊字符,越长越好。 还建议用户定期更改密码。 此建议旨在使密码难以被人们猜测或暴力密码破解,并降低密码泄露的风险。 NIST 的这项研究表明,过去指南中的某些要素可能不如预期有效。
NIST新指南表明密码的大小比密码复杂性更重要,因为用户选择的密码复杂性在某种程度上是可预测的,并且对失败的密码尝试频次进行速率限制可能是一种更有效的方法。 建议用户选择由多个单词组成但不是常见或可猜测的短语的长密码。 如果有证据表明密码已被泄露,建议用户更改密码,但对失败密码的速率限制和检查密码是否泄露可能比强制定期重置密码更有效。 身份验证服务应该对失败的登录尝试实施速率限制,并根据已知泄露密码的数据库检查用户名/密码组合,以防止暴力破解和密码泄露。 您将需要使用提供此类功能的身份提供者。

HelpDesk 重置

HelpDesk通过人工的辅助的凭据重置过程提供成本高昂,并且可能会暴露敏感信息。 人工协助的具有一定的优势,但也可能会将敏感信息暴露在泄露风险中。在人工协助的设计上,尽量的限制后台人员的权限,避免暴露用户的凭证给后台人员,并且当人工重置后,需要强制用户登录后修改临时重置的凭证。理论上,为了节省成本和安全性,大多数情况下应该首选自助服务凭证重置功能。

总结和重点回顾

  • 用户身份属性可能需要随着时间而改变。
  • 隐私法规可能会要求提供用户更新身份信息的过程。
  • 当要更改的属性驻留在身份提供者处时,可以将帐户管理委托给身份提供者。
  • 如果用户在身份提供商处更改其标识符,则可能会影响他们访问与旧标识符相关联的应用程序帐户的能力,除非针对这种情况提供了解决方案。
  • 在许多常见情况下,凭据重置和帐户恢复可能会委托给身份提供者,但帐户接管等特殊情况也可能需要涉及应用程序所有者。

参考

涉及到身份信息时,发生改变非常的常见! 在本章中,我们将介绍支持身份及其属性随时间变化的需求。

身份的属性

用户改变身份信息的原因有很多,用户的身份信息可能会随着时间而改变。 一些更新将来自用户自己。 我们需要假设用户可能需要更改其个人资料中的几乎所有属性,例如他们的电子邮件地址、街道地址、电话号码,甚至他们的姓名。 许多隐私法规,包括 GDPR(欧盟通用数据保护条例)第 15 条,要求用户必须能够访问和更正数据控制者持有的有关于他们自己的数据。如果您是数据处理者,您可能需要向使用您服务的数据控制者提供此功能。
身份配置文件更改的需要取决于身份管理信息的所在位置。 如果您的应用程序将身份验证委托给社交提供商,则用户可能需要在社交提供商处更新某些配置文件属性。 同样,如果您的应用程序将身份验证委托给企业提供者,用户可能需要在那里更新身份信息。 除了用户自己进行的更新外,管理员或自动管理流程可能会更新用户身份。 这些更新通常会影响由身份提供者的所有者而不是用户控制的属性,并且可能涉及应用程序中用于访问控制决策的属性,例如工作级别、部门和角色或组成员资格。
如果应用程序中的用户配置文件数据来自多个来源,则必须明确更新每个属性的方式和位置。 应用程序可能会从身份提供者那里提取一些用户属性,并使用由应用程序收集和管理的附加数据来扩充该数据。 在这种情况下,用户需要知道在哪里更新不同的属性。 应用程序的任何管理或支持流程也需要知道如何以及在何处更新每个属性。
当应用程序缓存来自身份提供者的用户配置文件数据时,必须考虑更新缓存数据的必要频率。 当用户进行身份验证时,应用程序可以从身份验证提供者接收用户配置文件属性。应用程序将在用户登录会话期间获取信息,并且可以将信息缓存在其自己的存储库中以在用户离线时使用。但是,如果身份提供者的信息发生变化并且用户不经常登录,缓存将变得陈旧。如果在用户登录之间需要最新信息,应用程序可能会查询 API 以获取更新的信息。否则,可能需要定期同步,从历史上看,。尽管这种同步大多数是通过定制的解决方案(API接口/文件共享)完成的,但是,跨域身份管理系统 (SCIM) 协议i 的为身份同步和更新提供了一个跨域的身份更新同步标准,通常可以在企业身份提供者和依赖方之间应用该协议。
更新用户属性的一种特殊情况是用户需要更新作为其在远程身份提供者处的帐户标识符的属性的情况。 如果更改了远程提供程序标识符,则用户下次登录时,应用程序将收到新标识符。 如果应用程序帐户或数据与旧标识符相关联,并且用户使用新标识符登录,则用户可能无法访问与旧标识符关联的帐户或数据。 如果身份提供者除了用户配置文件属性之外,还向应用程序提供一个永不更改的内部标识符,则可以避免该问题。 或者,如果使用显式帐户链接,用户可能能够在更改前取消旧身份的链接,并在更改后重新链接到新身份,但这需要用户预先考虑,实践起来并不现实!

凭证重置

用户可能还需要不时更新他们的凭据。 将身份验证委托给身份提供者的应用程序不必存储凭据或实现凭据重置功能,因为凭据位于身份提供者处。 应用程序可以简单地提供指向适当提供者处的凭证重置功能的链接或指令。 如果您使用身份提供者服务,您应该确保其选择支持自助服务凭证更新和帐户恢复的服务。

账户恢复

用户可能会忘记或丢失帐户凭据。 用户可能忘记密码,会丢失电话或硬件安全令牌等身份验证器,或者损坏。 如果发生这种情况,用户必须通过原始凭证以外的某种机制证明他们是帐户的所有者,然后才被允许设置新的凭证。
在许多情况下,依赖身份提供者的应用程序可能能够利用身份提供者提供的帐户恢复机制。 然后,选择具有合理安全的自助帐户恢复机制的提供商就变得很重要。 提示用户回答先前建立的安全问题的解决方案存在的问题是,有可能该问题的答案容易被猜测、或者用户根本没有记住用户预设的答案。
将密码重置链接发送到先前使用该帐户注册的电子邮件地址或者电话的解决方案避免了先前方案的缺点。 但是,这取决于帐户所有者能否访问与帐户关联的电子邮件。 通过 SMS 向用户个人资料中预先前注册的手机号码发送一次性代码依赖于当前号码和 SMS 消息的安全性和当然手机号码的可用性。最好的能够让用户设置主要的以及一个或者多个备份的验证机制,防止其中一个被破坏或者受到损害。

密码指导

如果使用密码,您可能希望向您的用户提供有关什么构成良好密码的指导,并在您可以选择的情况下选择执行更强密码策略的身份提供者。 NIST 一项有趣的新研究检验了先前密码指南的有效性ii。过去的安全建议建议混合使用小写和大写字符、数字和特殊字符,越长越好。 还建议用户定期更改密码。 此建议旨在使密码难以被人们猜测或暴力密码破解,并降低密码泄露的风险。 NIST 的这项研究表明,过去指南中的某些要素可能不如预期有效。
NIST新指南表明密码的大小比密码复杂性更重要,因为用户选择的密码复杂性在某种程度上是可预测的,并且对失败的密码尝试频次进行速率限制可能是一种更有效的方法。 建议用户选择由多个单词组成但不是常见或可猜测的短语的长密码。 如果有证据表明密码已被泄露,建议用户更改密码,但对失败密码的速率限制和检查密码是否泄露可能比强制定期重置密码更有效。 身份验证服务应该对失败的登录尝试实施速率限制,并根据已知泄露密码的数据库检查用户名/密码组合,以防止暴力破解和密码泄露。 您将需要使用提供此类功能的身份提供者。

HelpDesk 重置

HelpDesk通过人工的辅助的凭据重置过程提供成本高昂,并且可能会暴露敏感信息。 人工协助的具有一定的优势,但也可能会将敏感信息暴露在泄露风险中。在人工协助的设计上,尽量的限制后台人员的权限,避免暴露用户的凭证给后台人员,并且当人工重置后,需要强制用户登录后修改临时重置的凭证。理论上,为了节省成本和安全性,大多数情况下应该首选自助服务凭证重置功能。

总结和重点回顾

  • 用户身份属性可能需要随着时间而改变。
  • 隐私法规可能会要求提供用户更新身份信息的过程。
  • 当要更改的属性驻留在身份提供者处时,可以将帐户管理委托给身份提供者。
  • 如果用户在身份提供商处更改其标识符,则可能会影响他们访问与旧标识符相关联的应用程序帐户的能力,除非针对这种情况提供了解决方案。
  • 在许多常见情况下,凭据重置和帐户恢复可能会委托给身份提供者,但帐户接管等特殊情况也可能需要涉及应用程序所有者。

参考