开发人员面临的一个常见挑战是管理用于保护服务之间通信的机密、凭据、证书和密钥。 托管标识使开发人员无需管理这些凭据。
虽然开发人员可以安全地将机密存储在 Azure 密钥保管库 中,但服务需要一种方法来访问 Azure 密钥保管库。 托管标识在 Microsoft Entra ID 中提供了一个自动托管标识,供应用程序在连接到支持 Microsoft Entra 身份验证的资源时使用。 应用程序可以使用托管标识来获取 Microsoft Entra 令牌,无需管理任何凭据。
下面是使用托管标识的一些好处:
- 你无需管理凭据。 无法访问凭据。
- 可使用托管标识对支持 Microsoft Entra 身份验证的任何资源(包括你自己的应用程序)进行身份验证。
- 无需额外费用即可使用托管标识。
Azure 中可用的托管标识类型
存在两种类型的托管标识:
系统分配:某些 Azure 资源类型(例如 Azure Database for PostgreSQL)允许直接在资源上启用托管标识。 它们称为系统分配的托管标识。 启用系统分配的托管标识时:
Microsoft Entra ID为该标识创建一种特殊类型的服务主体。 该服务主体与该 Azure 资源的生命周期相关联。 删除 Azure 资源时,Azure 会自动为你删除服务主体。
按照设计,只有该 Azure 资源可以使用此标识从 Microsoft Entra ID 请求令牌。
可以授权与托管标识关联的服务主体有权访问一个或多个服务。
分配给与托管标识关联的服务主体的名称,始终与为其创建的 Azure 资源名称相同。
用户分配:某些Azure资源类型还支持分配作为独立资源创建的托管标识。 这些标识的生命周期独立于它们被分配给的资源的生命周期。 可以将其分配给多个资源。 启用用户分配的托管标识时:
Microsoft Entra ID为该标识创建一种特殊类型的服务主体。 你可以将服务主体与使用它的资源分开管理。
多个资源可以利用用户分配的标识。
授权托管标识对一个或多个服务的访问权限。