使用系統指派的受控身分識別來部署 Service Fabric 應用程式
注意
針對最初使用 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。 此外,組建/套件環境也應該在 CU2 或更新版本有 Service Fabric .NET SDK
系統指派的受控識別
應用程式範本
若要使用系統所指派的受控識別來啟用應用程式,請將類型為 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 Resource Manager、受控識別和 Service Fabric 資源提供者宣告,此資源應具有隱含的 (system assigned
) 受控身分識別。
應用程式和服務封裝
更新應用程式資訊清單,在 [主體] 區段中新增含單一項目的 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 元素,且其名稱應符合應用程式資訊清單中
IdentityBindingPolicy
定義的ServiceIdentityRef
設定值: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 資源