Udostępnij za pośrednictwem


Wdrażanie aplikacji usługi Service Fabric z przypisaną przez system tożsamością zarządzaną

Uwaga

Włączanie tożsamości dla istniejącej aplikacji, która została początkowo wdrożona przy użyciu poleceń cmdlet platformy Azure, nie jest obsługiwana.

Aby uzyskać dostęp do funkcji tożsamości zarządzanej dla aplikacji usługi Azure Service Fabric, należy najpierw włączyć usługę tokenu tożsamości zarządzanej w klastrze. Ta usługa jest odpowiedzialna za uwierzytelnianie aplikacji usługi Service Fabric przy użyciu tożsamości zarządzanych oraz uzyskiwanie tokenów dostępu w ich imieniu. Po włączeniu usługi można ją zobaczyć w narzędziu Service Fabric Explorer w sekcji System w okienku po lewej stronie, uruchomionej pod nazwą fabric:/System/ManagedIdentityTokenService obok innych usług systemowych.

Uwaga

Wdrażanie aplikacji usługi Service Fabric z tożsamościami zarządzanymi jest obsługiwane począwszy od wersji "2019-06-01-preview"interfejsu API . Możesz również użyć tej samej wersji interfejsu API dla typu aplikacji, wersji typu aplikacji i zasobów usługi. Minimalna obsługiwana wersja środowiska uruchomieniowego usługi Service Fabric to 6,5 CU2. Ponadto środowisko kompilacji/pakietu powinno również mieć zestaw SDK platformy .NET usługi Service Fabric na poziomie CU2 lub nowszym

Tożsamość zarządzana przypisana przez system

Szablon aplikacji

Aby włączyć aplikację z tożsamością zarządzaną przypisaną przez system, dodaj właściwość tożsamości do zasobu aplikacji z typem systemAssigned , jak pokazano w poniższym przykładzie:

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

Ta właściwość deklaruje (do usługi Azure Resource Manager oraz dostawców zasobów tożsamości zarządzanej i usługi Service Fabric, odpowiednio, że ten zasób ma niejawną (system assigned) tożsamość zarządzaną.

Pakiet aplikacji i usługi

  1. Zaktualizuj manifest aplikacji, aby dodać element ManagedIdentity w sekcji Principals (Podmioty zabezpieczeń) zawierający pojedynczy wpis, jak pokazano poniżej:

    ApplicationManifest.xml

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

    Spowoduje to mapowanie tożsamości przypisanej do aplikacji jako zasobu na przyjazną nazwę w celu dalszego przypisania do usług składających się z aplikacji.

  2. W sekcji ServiceManifestImport odpowiadającej usłudze przypisanej tożsamości zarządzanej dodaj element IdentityBindingPolicy, jak pokazano poniżej:

    ApplicationManifest.xml

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

    Ten element przypisuje tożsamość aplikacji do usługi; bez tego przypisania usługa nie będzie mogła uzyskać dostępu do tożsamości aplikacji. W powyższym SystemAssigned fragmencie kodu tożsamość (która jest zastrzeżonym słowem kluczowym) jest mapowana na definicję usługi pod przyjazną nazwą WebAdmin.

  3. Zaktualizuj manifest usługi, aby dodać element ManagedIdentity w sekcji Resources o nazwie zgodnej z wartością ServiceIdentityRef ustawienia z IdentityBindingPolicy definicji w manifeście aplikacji:

    ServiceManifest.xml

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

    Jest to równoważne mapowanie tożsamości do usługi zgodnie z powyższym opisem, ale z perspektywy definicji usługi. Tożsamość jest tutaj przywołyowana przez przyjazną nazwę (WebAdmin), jak zadeklarowano w manifeście aplikacji.

Następne kroki