云原生标识

提示

此内容摘自电子书《为 Azure 构建云原生 .NET 应用程序》,可在 .NET 文档上获取,也可作为免费可下载的 PDF 脱机阅读。

Cloud Native .NET apps for Azure eBook cover thumbnail.

大多数软件应用程序都需要对调用它们的用户或进程有一些了解。 与应用程序交互的用户或进程称为“安全主体”,对这些主体进行身份验证和授权的过程称为“标识管理”(简称“标识”)。 简单的应用程序可能包括其在应用程序中的所有标识管理,但这种方法对于许多应用程序和许多种类的安全主体来说不能很好地扩展。 Windows 支持使用 Active Directory 来提供集中式身份验证和授权。

虽然这种解决方案在企业网络中有效,但它并不是为 AD 域外的用户或应用程序而设计的。 随着基于 Internet 的应用程序的增长和云原生应用的兴起,安全模式也在不断发展。

在现有的云原生标识模型中,体系结构被假定为是分布式的。 应用可在任何位置进行部署,并且可以在任何位置与其他应用通信。 客户端可以从任何位置与这些应用通信,实际上,客户端可能包含平台和设备的任意组合。 云原生标识解决方案使用开放标准来实现客户端的安全应用程序访问。 这些客户端包括从电脑或手机上的人类用户,到在线任何地方托管的其他应用,再到在世界各地运行任何软件平台的机顶盒和 IOT 设备。

新式云原生标识解决方案通常使用访问令牌,在确定安全主体的标识后,由安全令牌服务/服务器 (STS) 向安全主体颁发。 访问令牌通常是一个 JSON Web 令牌 (JWT),包括有关安全主体的声明。 这些声明将至少包括用户的标识,但也可能包括其他声明,应用程序可以使用这些声明来确定授予主体的访问权限级别。

通常,STS 只负责对主体进行身份验证。 确定其对资源的访问级别的任务留给了应用程序的其他部分。

参考