Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы развернуть приложение Service Fabric с управляемым удостоверением, его следует развернуть через Azure Resource Manager, обычно с использованием шаблона Azure Resource Manager. Дополнительные сведения о развертывании приложения Service Fabric с помощью Azure Resource Manager см. в статье "Развертывание приложения в управляемом кластере с помощью Azure Resource Manager".
Примечание
Приложения, которые не развернуты в качестве ресурса Azure, не могут иметь управляемые удостоверения.
Развертывание приложения Service Fabric с управляемым удостоверением поддерживается с версией "2021-05-01" API в управляемых кластерах.
Примеры шаблонов управляемых кластеров доступны здесь: шаблоны управляемых кластеров Service Fabric
Поддержка управляемого удостоверения в управляемом кластере Service Fabric
Если приложение Service Fabric настроено с управляемыми удостоверениями для ресурсов Azure и развернуто в кластере, это инициирует автоматическую настройку службы токенов управляемого удостоверения в управляемом кластере Service Fabric. Эта служба отвечает за аутентификацию приложений Service Fabric с использованием управляемых идентификаторов и получение токенов доступа от их имени. После включения службы вы можете увидеть её в Service Fabric Explorer в разделе System в левой области, запущенной под именем fabric:/System/ManagedIdentityTokenService.
Примечание
При первом развертывании приложения с управляемыми удостоверениями следует ожидать более длительное развертывание из-за изменения конфигурации кластера. Ожидается, что это займет от 15 минут для зонального кластера до 45 минут для кластера, охватывающего зону. Если в процессе есть какие-либо другие развертывания, конфигурация управляемого удостоверения должна подождать, прежде чем они будут завершены.
Ресурс приложения поддерживает назначение обеих SystemAssigned и UserAssigned, и назначение можно произвести, как показано в приведенном ниже фрагменте кода.
{
"type": "Microsoft.ServiceFabric/managedclusters/applications",
"apiVersion": "2021-05-01",
"identity": {
"type": "SystemAssigned",
"userAssignedIdentities": {}
},
}
Идентификация, назначенная пользователем
Чтобы включить приложение с назначенным пользователем удостоверением, сначала добавьте свойство удостоверения в ресурс приложения с типом userAssigned и с ссылаемыми удостоверениями, назначаемыми пользователями. Затем добавьте раздел managedIdentities в раздел свойств ресурса приложения, который содержит список сопоставлений понятных имен с principalId для каждого из назначаемых пользователем идентификаторов. Дополнительные сведения о назначенных пользователем удостоверениях см. в статье "Создание, перечисление или удаление управляемого удостоверения, назначаемого пользователем".
Шаблон приложения
Чтобы включить приложение с пользовательским назначенным удостоверением, сначала добавьте свойство удостоверения в ресурс приложения с типом userAssigned и назначенные пользователем удостоверения, а затем добавьте объект managedIdentities в раздел свойств, содержащий список сопоставления понятных имен с principalId для каждого из назначенных удостоверений пользователем.
{
"apiVersion": "2021-05-01",
"type": "Microsoft.ServiceFabric/managedclusters/applications",
"name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
"location": "[resourceGroup().location]",
"dependsOn": [
"[parameters('applicationVersion')]",
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]"
],
"identity": {
"type" : "userAssigned",
"userAssignedIdentities": {
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]": {}
}
},
"properties": {
"version": "[parameters('applicationVersion')]",
"parameters": {
},
"managedIdentities": [
{
"name" : "[parameters('userAssignedIdentityName')]",
"principalId" : "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName')), '2018-11-30').principalId]"
}
]
}
}
В приведенном выше примере имя ресурса назначаемого пользователем удостоверения используется в качестве понятного имени управляемого удостоверения для приложения. В следующих примерах предполагается, что фактическое дружественное имя — AdminUser.
Пакет приложения
Для каждого удостоверения, определенного в разделе
managedIdentitiesшаблона Azure Resource Manager, добавьте тег<ManagedIdentity>в манифест приложения в разделе Principals. АтрибутNameдолжен соответствовать свойствуname, определенному в разделеmanagedIdentities.ApplicationManifest.xml
<Principals> <ManagedIdentities> <ManagedIdentity Name="AdminUser" /> </ManagedIdentities> </Principals>В разделе ServiceManifestImport добавьте IdentityBindingPolicy для службы, которая использует управляемое удостоверение. Эта политика сопоставляет
AdminUserудостоверение с именем службы, которое необходимо добавить в манифест службы позже.ApplicationManifest.xml
<ServiceManifestImport> <Policies> <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="AdminUser" /> </Policies> </ServiceManifestImport>Обновите манифест службы, чтобы добавить ManagedIdentity в раздел Resources с именем, соответствующим
ServiceIdentityRefвIdentityBindingPolicyманифесте приложения:ServiceManifest.xml
<Resources> ... <ManagedIdentities DefaultIdentity="WebAdmin"> <ManagedIdentity Name="WebAdmin" /> </ManagedIdentities> </Resources>
Системно назначенная управляемая идентичность
Шаблон приложения
Чтобы включить приложение с управляемым удостоверением , назначаемое системой, добавьте свойство удостоверения в ресурс приложения с типом systemAssigned , как показано в следующем примере:
{
"apiVersion": "2021-05-01",
"type": "Microsoft.ServiceFabric/managedclusters/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 в раздел Resources с именем, соответствующим значению
ServiceIdentityRefпараметра изIdentityBindingPolicyопределения в манифесте приложения:ServiceManifest.xml
<Resources> ... <ManagedIdentities DefaultIdentity="WebAdmin"> <ManagedIdentity Name="WebAdmin" /> </ManagedIdentities> </Resources>Это эквивалентное сопоставление удостоверения со службой, как описано выше, но с точки зрения определения услуги. Идентификатор здесь обозначается по дружественному имени (
WebAdmin), как указано в манифесте приложения.