Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
注意
不支持为最初使用 Azure cmdlet 部署的现有应用启用标识。
若要访问 Azure Service Fabric 应用程序的托管标识功能,必须先在群集上启用托管标识令牌服务。 此服务负责使用 Service Fabric 应用程序的托管标识对这些应用程序进行身份验证,以及代表它们获取访问令牌。 启用此服务以后,即可在 Service Fabric Explorer 中左侧窗格的“系统”部分看到它,它在其他系统服务旁边以 fabric:/System/ManagedIdentityTokenService 名称运行。
注意
从 API 版本 "2019-06-01-preview" 开始,我们就支持使用托管标识部署 Service Fabric 应用程序。 另外,不管应用程序类型、应用程序类型版本和服务资源如何,你都可以使用同一 API 版本。 支持的最低 Service Fabric 运行时为 6.5 CU2。 此外,生成/包环境还应具有 Service Fabric、.NET SDK CU2 或更高版本
系统分配的托管标识
应用程序模板
若要为应用程序启用系统分配的托管标识,请将类型为 systemAssigned 的 identity 属性添加到应用程序资源,如以下示例所示:
{
"apiVersion": "2019-06-01-preview",
"type": "Microsoft.ServiceFabric/clusters/applications",
"name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.ServiceFabric/clusters/', parameters('clusterName'), '/applicationTypes/', parameters('applicationTypeName'), '/versions/', parameters('applicationTypeVersion'))]"
],
"identity": {
"type" : "systemAssigned"
},
"properties": {
"typeName": "[parameters('applicationTypeName')]",
"typeVersion": "[parameters('applicationTypeVersion')]",
"parameters": {
}
}
}
此属性向 Azure 资源管理器、托管标识和 Service Fabric 资源提供程序分别声明:此资源应该有一个隐式 (system assigned) 托管标识。
应用程序和服务包
更新应用程序清单,在 Principals 节添加包含单个条目的 ManagedIdentity 元素,如下所示:
ApplicationManifest.xml
<Principals> <ManagedIdentities> <ManagedIdentity Name="SystemAssigned" /> </ManagedIdentities> </Principals>这会将分配给应用程序作为资源的标识映射到某个易记名称,以便进一步分配给包含该应用程序的服务。
在 ServiceManifestImport 节(对应于已向其分配了托管标识的服务)中添加 IdentityBindingPolicy 元素,如下所示:
ApplicationManifest.xml
<ServiceManifestImport> <Policies> <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="SystemAssigned" /> </Policies> </ServiceManifestImport>此元素将应用程序的标识分配给服务;没有此分配,服务将无法访问应用程序的标识。 在上面的代码片段中,
SystemAssigned标识(保留关键字)映射到服务的定义,采用的易记名称为WebAdmin。更新服务清单,将 ManagedIdentity 元素添加到 Resources 节中,其名称与
ServiceIdentityRef设置的值匹配,该设置来自应用程序清单中的IdentityBindingPolicy定义:ServiceManifest.xml
<Resources> ... <ManagedIdentities DefaultIdentity="WebAdmin"> <ManagedIdentity Name="WebAdmin" /> </ManagedIdentities> </Resources>这是一个等效映射,等效于将标识映射到服务(如上所述),但却是从服务定义的角度来看。 在这里,标识按其易记名称 (
WebAdmin) 引用,如应用程序清单所述。
后续步骤
- 查看 Azure Service Fabric 中的托管标识支持
- 部署支持托管标识的新 Azure Service Fabric 群集
- 在现有 Azure Service Fabric 群集中启用托管标识
- 利用 Service Fabric 应用程序的托管标识(来自源代码)
- 使用用户分配的托管标识部署 Azure Service Fabric 应用程序
- 为 Azure Service Fabric 应用程序授予对其他 Azure 资源的访问权限