Implementar aplicação de Tecido de Serviço com identidade gerida atribuída ao sistema

Para aceder à funcionalidade de identidade gerida para aplicações Azure Service Fabric, deve primeiro ativar o Serviço de Token de Identidade Gerida no cluster. Este serviço é responsável pela autenticação de aplicações do Service Fabric utilizando as suas identidades geridas, e pela obtenção de fichas de acesso em seu nome. Uma vez que o serviço esteja ativado, pode vê-lo no Service Fabric Explorer sob a secção Sistema no painel esquerdo, funcionando sob o tecido de nome:/System/ManagedIdentityTokenService ao lado de outros serviços do sistema.

Nota

A implementação de aplicações de Tecido de Serviço com identidades geridas é suportada a partir da versão API "2019-06-01-preview" . Também pode utilizar a mesma versão API para tipo de aplicação, versão tipo de aplicação e recursos de serviço. O tempo de funcionação mínimo suportado do tecido de serviço é de 6,5 CU2. Na additoina, o ambiente de construção/pacote também deve ter o SF .Net SDK em CU2 ou superior

Identidade gerida atribuída pelo sistema

Modelo de aplicação

Para ativar a aplicação com uma identidade gerida atribuída pelo sistema, adicione a propriedade de identidade ao recurso de aplicação, com sistema tipoAssigned como mostrado no exemplo abaixo:

    {
      "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": {
        }
      }
    }

Esta propriedade declara (ao Azure Resource Manager, e aos Fornecedores de Recursos de Identidade e Tecido de Serviço Geridos, respectivamente, que este recurso terá uma system assigned identidade implícita () gerida.

Pacote de aplicação e serviço

  1. Atualizar o manifesto de aplicação para adicionar um elemento ManagedIdentity na secção Principais, contendo uma única entrada como mostrado abaixo:

    ApplicationManifest.xml

    <Principals>
      <ManagedIdentities>
        <ManagedIdentity Name="SystemAssigned" />
      </ManagedIdentities>
    </Principals>
    

    Isto mapeia a identidade atribuída à aplicação como recurso a um nome amigável, para posterior atribuição aos serviços que compõem a aplicação.

  2. Na secção ServiceManifestImport correspondente ao serviço que está a ser atribuído a identidade gerida, adicione um elemento IdentityBindingPolicy, conforme indicado abaixo:

    ApplicationManifest.xml

      <ServiceManifestImport>
        <Policies>
          <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="SystemAssigned" />
        </Policies>
      </ServiceManifestImport>
    

    Este elemento atribui a identidade do pedido ao serviço; sem esta atribuição, o serviço não poderá aceder à identidade da aplicação. No corte acima, a SystemAssigned identidade (que é uma palavra-chave reservada) é mapeada para a definição do serviço sob o nome amigável WebAdmin .

  3. Atualizar o manifesto de serviço para adicionar um elemento ManagedIdentity dentro da secção Recursos com o nome correspondente ao valor da ServiceIdentityRef definição a partir da IdentityBindingPolicy definição no manifesto de aplicação:

    ServiceManifest.xml

      <Resources>
        ...
        <ManagedIdentities DefaultIdentity="WebAdmin">
          <ManagedIdentity Name="WebAdmin" />
        </ManagedIdentities>
      </Resources>
    

    Este é o mapeamento equivalente de uma identidade a um serviço como descrito acima, mas do ponto de vista da definição de serviço. A identidade é aqui referenciada pelo seu nome amigável, WebAdmin conforme declarado no manifesto de candidatura.

Passos Seguintes