Udostępnij za pośrednictwem


Wdrażanie aplikacji usługi Service Fabric przy użyciu przypisanej przez system tożsamości zarządzanej

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ługiwane.

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 ich tożsamości zarządzanych oraz uzyskiwanie tokenów dostępu w ich imieniu. Po włączeniu usługi można ją zobaczyć w 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 .NET SDK usługi Service Fabric w aktualizacji CU2 lub nowszej

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 dostawcy 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 do 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 Zasoby o nazwie odpowiadającej 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 na usługę, jak opisano powyżej, ale z perspektywy definicji usługi. W tym miejscu do tożsamości odwołuje się przyjazna nazwa (WebAdmin), zadeklarowana w manifeście aplikacji.

Następne kroki