Udostępnij za pośrednictwem


Jak używać tożsamości zarządzanych z usługami platformy Azure do nawiązywania połączenia z usługą Azure Cosmos DB for NoSQL

DOTYCZY: NoSQL

Diagram bieżącej lokalizacji ('Prepare') w sekwencji przewodnika wdrażania.

Diagram sekwencji przewodnika wdrażania, w tym tych lokalizacji, w kolejności: Przegląd, Pojęcia, Przygotowanie, Kontrola dostępu oparta na rolach, Sieć i Dokumentacja. Lokalizacja "Przygotuj" jest obecnie wyróżniona.

W tym artykule opisano kroki wymagane do utworzenia tożsamości zarządzanych do użycia z wdrożoną aplikacją połączoną z usługą Azure Cosmos DB for NoSQL.

Tożsamości zarządzane są jednym z wielu typów zasobów tożsamości w usłudze Microsoft Entra ID, których można używać podczas nawiązywania połączenia z usługami obsługującymi uwierzytelnianie firmy Microsoft Entra. Tożsamości zarządzane mogą być używane zamiast tradycyjnych poświadczeń należących do zasobów, takich jak klucze. Na platformie Azure tożsamości zarządzane umożliwiają aplikacjom uzyskanie tokenu firmy Microsoft Entra w celu uwierzytelniania w usługach platformy Azure bez konieczności pisania dużej ilości kodu uwierzytelniania.

Możesz użyć firmy Microsoft Entra do uwierzytelniania w usługach platformy Azure, w tym, ale nie tylko:

  • Azure SQL
  • Azure AI
  • Azure Cosmos DB
  • Azure Storage
  • Azure Event Hubs
  • Azure Container Registry

Za pomocą tożsamości zarządzanych można reprezentować jednostkę uwierzytelniającą się w usłudze platformy Azure z innych usług platformy Azure, w tym, ale nie tylko:

  • Azure Kubernetes Service
  • Azure Container Apps
  • Azure Virtual Machines
  • Azure Functions
  • Azure App Service
  • Azure Spring Apps
  • Azure Service Fabric

Tożsamości zarządzane umożliwiają wiele bezpiecznych scenariuszy, w których różne usługi platformy Azure mogą łączyć się ze sobą. Przykłady obejmują:

  • Tworzenie przypisanej przez system tożsamości zarządzanej dla aplikacji w usłudze Azure Spring Apps w celu nawiązywania połączenia z kontem usługi Azure SQL i wykonywania względem niego zapytań
  • Używanie jednej tożsamości zarządzanej przypisanej przez użytkownika zarówno z usługą Azure Kubernetes Service, jak i usługą Azure Functions w celu wysłania żądań do konta usługi Azure AI
  • Używanie tożsamości zarządzanej dla konta usługi Azure Cosmos DB do przechowywania kluczy w usłudze Azure Key Vault

Aby uzyskać więcej informacji, zobacz Tożsamości zarządzane dla zasobów platformy Azure.

Wymagania wstępne

Tworzenie usługi platformy Azure z przypisaną przez system tożsamością zarządzaną

Utwórz nową usługę platformy Azure z tożsamością zarządzaną przypisaną przez system. Ta sekcja tworzy zasób usługi Azure Container Instances .

  1. Użyj az container create polecenia , aby utworzyć nowe wystąpienie kontenera. Skonfiguruj konto tak, aby używało tożsamości zarządzanej przypisanej przez system przy użyciu parametru assign-identity .

    az container create \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-new-container>" \
        --image mcr.microsoft.com/dotnet/samples:aspnetapp-chiseled \
        --cpu 1 \
        --memory 2 \
        --assign-identity
    
  2. Uzyskaj szczegółowe informacje dotyczące tożsamości zarządzanej przypisanej przez system przy użyciu polecenia az container show i zapytania JMESPath.

    az container show \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-existing-container>" \
        --query "identity"
    
  3. Przejrzyj dane wyjściowe polecenia . Powinien zawierać unikatowe identyfikatory tożsamości i dzierżawy.

    {
      "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "type": "SystemAssigned",
      "userAssignedIdentities": null
    }
    
  1. Utwórz nowy plik Bicep, aby zdefiniować nowe wystąpienie kontenera. Nadaj plikowi nazwę container-instance.bicep. Ustaw następujące właściwości dla wystąpienia kontenera:

    Wartość
    name Używanie parametru o nazwie instanceName
    location Ustaw na lokalizację grupy zasobów
    identity.type SystemAssigned
    properties.osType Linux
    properties.containers[0].name aspnet-sample
    properties.containers[0].properties.image mcr.microsoft.com/dotnet/samples:aspnetapp-chiseled
    properties.containers[0].properties.resources.requests.cpu 1
    properties.containers[0].properties.resources.requests.memoryInGB 2
    metadata description = 'Create Azure Container Instance resource with system-assigned managed identity.'
    
    @description('Name of the Azure Container Instances resource.')
    param instanceName string
    
    resource instance 'Microsoft.ContainerInstance/containerGroups@2023-05-01' = {
      name: instanceName
      location: resourceGroup().location
      identity: {
        type: 'SystemAssigned'
      }
      properties: {
        osType: 'Linux'
        containers: [
          {
            name: 'aspnet-sample'
            properties: {
              image: 'mcr.microsoft.com/dotnet/samples:aspnetapp-chiseled'
              resources: {
                requests: {
                  cpu: 1
                  memoryInGB: 2
                }
              }
            }
          }
        ]
      }
    }
    
    output systemAssignedIdentity object = instance.identity    
    
  2. Utwórz nowy plik parametrów Bicep o nazwie container-instance.bicepparam. W tym pliku parametrów utwórz unikatową nazwę wystąpienia kontenera przy użyciu parametru instanceName .

    using './container-instance.bicep'
    
    param instanceName = '<name-of-new-container-instance>'
    
  3. Wdróż szablon Bicep przy użyciu polecenia az deployment group create. Określ nazwę szablonu Bicep, pliku parametrów i grupy zasobów platformy Azure.

    az deployment group create \
        --resource-group "<name-of-existing-resource-group>" \
        --parameters "container-instance.bicepparam" \
        --template-file "container-instance.bicep"
    
  4. Przejrzyj dane wyjściowe z wdrożenia. Dane wyjściowe zawierają obiekt tożsamości z wystąpienia kontenera properties.outputs.systemAssignedIdentity.value we właściwości .

    {
      "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "type": "SystemAssigned"
    }
    
  1. Zaloguj się do witryny Azure Portal (https://portal.azure.com).

  2. Wprowadź ciąg Azure Container Instances na pasku wyszukiwania globalnego.

    Zrzut ekranu przedstawiający globalny pasek wyszukiwania w witrynie Azure Portal.

  3. W obszarze Usługi wybierz pozycję Wystąpienia kontenerów.

    Zrzut ekranu przedstawiający opcję

  4. W okienku Wystąpienia kontenera wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający opcję

  5. W okienku Podstawowe skonfiguruj następujące opcje, a następnie wybierz pozycję Przejrzyj i utwórz:

    Wartość
    Subskrypcja Wybierz subskrypcję platformy Azure
    Grupa zasobów Utwórz nową grupę zasobów lub wybierz istniejącą grupę zasobów
    Nazwa kontenera Podaj globalnie unikatową nazwę
    Region Wybieranie obsługiwanego regionu platformy Azure dla subskrypcji

    Zrzut ekranu przedstawiający okienko tworzenia zasobów usługi Azure Container Instances

    Napiwek

    Możesz pozostawić wszystkie nieokreślone opcje do ich wartości domyślnych.

  6. W okienku Przeglądanie i tworzenie poczekaj na pomyślne zakończenie walidacji konta, a następnie wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający krok weryfikacji zasobów w środowisku tworzenia wystąpienia kontenera.

  7. Portal automatycznie przechodzi do okienka Wdrażanie . Zaczekaj na zakończenie wdrażania.

  8. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu , aby przejść do nowego zasobu usługi Azure Container Instances.

    Zrzut ekranu przedstawiający w pełni wdrożony zasób usługi Azure Container Instances z wyróżnioną opcją

  9. W okienku dla nowego wystąpienia kontenera wybierz pozycję Tożsamość w sekcji Ustawienia menu usługi.

    Zrzut ekranu przedstawiający opcję

  10. W okienku Tożsamość włącz tożsamość zarządzaną przypisaną przez system, ustawiając opcję Stan na Włączone. Następnie wybierz pozycję Zapisz i rozwiąż wszelkie monity o zatwierdzenie zmiany.

    Zrzut ekranu przedstawiający ustawienie opcji

  11. Gdy tożsamość zarządzana przypisana przez system będzie gotowa, przejrzyj wartość właściwości Identyfikator obiektu (podmiotu zabezpieczeń). Wartość tej właściwości jest unikatowym identyfikatorem tożsamości.

    Zrzut ekranu przedstawiający szczegóły tożsamości zarządzanej przypisanej przez system.

    Napiwek

    Na tym przykładowym zrzucie ekranu unikatowy identyfikator tożsamości zarządzanej przypisanej przez system to bbbbbbbb-1111-2222-3333-cccccccccccc.

  1. Utwórz obiekt reprezentujący kontener przy użyciu polecenia New-AzContainerInstanceObject i zapisz go w zmiennej o nazwie $container. Następnie użyj tego obiektu kontenera, aby utworzyć nowe wystąpienie kontenera za pomocą New-AzContainerGrouppolecenia . Skonfiguruj konto tak, aby używało tożsamości zarządzanej przypisanej przez system, ustawiając IdentityType parametr na SystemAssignedwartość .

    $parameters = @{
        Name = "aspnet-sample"
        Image = "mcr.microsoft.com/dotnet/samples:aspnetapp-chiseled"
        RequestCpu = 1 
        RequestMemoryInGb = 2
    }
    $container = New-AzContainerInstanceObject @parameters
    
    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-new-container>"
        Container = $container
        OsType = "Linux"
        Location = "<azure-region>"
        IdentityType = "SystemAssigned"
    }
    New-AzContainerGroup @parameters
    
  2. Pobierz szczegóły tożsamości zarządzanej przypisanej przez system przy użyciu polecenia Get-AzContainerGroup i Format-List wybierz tylko Identity właściwość.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-existing-container>"
    }
    Get-AzContainerGroup @parameters | Format-List Identity
    
  3. Przejrzyj dane wyjściowe polecenia . Powinien zawierać unikatowe identyfikatory tożsamości i dzierżawy.

    Identity : {
                 "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
                 "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
                 "type": "SystemAssigned"
               }
    

Tworzenie tożsamości zarządzanej przypisanej przez użytkownika

Utwórz tożsamość zarządzaną przypisaną przez użytkownika, która może być używana z co najmniej jedną usługą platformy Azure w sposób przenośny.

  1. Użyj az identity create polecenia , aby utworzyć nową tożsamość zarządzaną przypisaną przez użytkownika w grupie zasobów platformy Azure.

    az identity create \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-new-managed-identity>"
    
  2. Pobieranie listy tożsamości zarządzanych przypisanych przez użytkownika w grupie zasobów przy użyciu polecenia az identity list

    az identity list \
        --resource-group "<name-of-existing-resource-group>"    
    
  3. Przejrzyj dane wyjściowe polecenia . Zapisz wartość id pola, ponieważ ten w pełni kwalifikowany identyfikator zasobu służy do przypisywania tożsamości zarządzanej przypisanej przez użytkownika do zasobu platformy Azure.

    {
      "clientId": "11112222-bbbb-3333-cccc-4444dddd5555",
      "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned",
      "location": "<azure-location>",
      "name": "msdocs-identity-example-user-assigned",
      "principalId": "cccccccc-dddd-eeee-3333-444444444444",
      "resourceGroup": "msdocs-identity-example",
      "systemData": null,
      "tags": {},
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    

    Uwaga

    W tym przykładzie id wartość to /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned. W tym przykładzie użyto fikcyjnych danych, a identyfikator będzie inny niż w tym przykładzie.

  1. Utwórz plik Bicep w celu zdefiniowania tożsamości zarządzanej przypisanej przez użytkownika i nadaj plikowi nazwę user-assigned-managed-identity.bicep. Ustaw te minimalne właściwości:

    Wartość
    name Użyj opcjonalnego parametru o nazwie identityName i wygeneruj unikatową wartość domyślną
    location Ustaw na lokalizację grupy zasobów
    metadata description = 'Create a user-assigned managed identity.'
    
    param identityName string = uniqueString(subscription().id, resourceGroup().id)
    
    resource identity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = {
      name: identityName
      location: resourceGroup().location
    }
    
    output id string = identity.id
    output name string = identity.name
    
  2. Wdróż szablon Bicep przy użyciu polecenia az deployment group create. Określ nazwę szablonu Bicep i grupę zasobów platformy Azure.

    az deployment group create \
        --resource-group "<name-of-existing-resource-group>" \
        --template-file "user-assigned-managed-identity.bicep"
    
  3. Przejrzyj dane wyjściowe z wdrożenia. Dane wyjściowe zawierają unikatowy identyfikator tożsamości zarządzanej properties.outputs.name.value we właściwości . Zapisz tę wartość, ponieważ jest ona wymagana do użycia podczas tworzenia nowego zasobu platformy Azure w dalszej części tego przewodnika.

    {
      "type": "String",
      "value": "msdocs-identity-example-user-assigned"
    }
    

    Uwaga

    W tym przykładzie wartość name.value to msdocs-identity-example-user-assigned. W tym przykładzie użyto fikcyjnych danych, a identyfikator będzie inny niż w tym przykładzie.

  1. Wprowadź tożsamość zarządzaną na globalnym pasku wyszukiwania.

  2. W obszarze Usługi wybierz pozycję Tożsamości zarządzane.

    Zrzut ekranu przedstawiający opcję

  3. W okienku Wystąpienia kontenera wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający opcję

  4. W okienku Podstawowe skonfiguruj następujące opcje, a następnie wybierz pozycję Przejrzyj i utwórz:

    Wartość
    Subskrypcja Wybierz subskrypcję platformy Azure
    Grupa zasobów Utwórz nową grupę zasobów lub wybierz istniejącą grupę zasobów
    Region Wybieranie obsługiwanego regionu platformy Azure dla subskrypcji
    Nazwa/nazwisko Podaj globalnie unikatową nazwę

    Zrzut ekranu przedstawiający okienko tworzenia zasobu tożsamości zarządzanej

  5. W okienku Przeglądanie i tworzenie poczekaj na pomyślne zakończenie walidacji konta, a następnie wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający krok weryfikacji zasobów w środowisku tworzenia tożsamości zarządzanej.

  6. Portal automatycznie przechodzi do okienka Wdrażanie . Zaczekaj na zakończenie wdrażania.

  7. Poczekaj na zakończenie wdrażania tożsamości zarządzanej.

    Zrzut ekranu przedstawiający w pełni wdrożony zasób tożsamości zarządzanej.

  1. Utwórz nową tożsamość zarządzaną przypisaną przez użytkownika przy użyciu jej New-AzUserAssignedIdentity w grupie zasobów platformy Azure.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-new-managed-identity>"
        Location = "<azure-region>"
    }
    New-AzUserAssignedIdentity @parameters
    
  2. Użyj Get-AzUserAssignedIdentity polecenia , aby uzyskać listę tożsamości zarządzanych przypisanych przez użytkownika w grupie zasobów.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
    }
    Get-AzUserAssignedIdentity @parameters | Format-List Name, Id
    
  3. Przejrzyj dane wyjściowe polecenia . Zapisz wartość Id pola, ponieważ ten w pełni kwalifikowany identyfikator zasobu służy do przypisywania tożsamości zarządzanej przypisanej przez użytkownika do zasobu platformy Azure.

    Name : msdocs-identity-example-user-assigned
    Id   : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned
    

    Uwaga

    W tym przykładzie Id wartość to /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned. W tym przykładzie użyto fikcyjnych danych, a identyfikator będzie inny niż w tym przykładzie.

Tworzenie usługi platformy Azure przy użyciu tożsamości zarządzanej przypisanej przez użytkownika

Przypisz wcześniej utworzoną tożsamość zarządzaną przypisaną przez użytkownika do nowej usługi hosta platformy Azure. Ta sekcja tworzy zasób aplikacji internetowej usług aplikacja systemu Azure Services.

  1. Utwórz nowy plan usługi App Service przy użyciu polecenia az appservice plan create.

    az appservice plan create \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-new-plan>"
    
  2. Przypisz tożsamość zarządzaną przypisaną przez użytkownika do nowej aplikacji internetowej za pomocą polecenia az webapp create. Użyj pola zarejestrowanego id wcześniej w tym przewodniku jako wartości parametru ssign-identity .

    az webapp create \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-existing-web-app>" \
        --plan "<name-of-existing-plan>" \
        --assign-identity "<resource-id-recorded-earlier>"
    
  3. Uzyskaj szczegółowe informacje dotyczące wszystkich tożsamości przypisanych do tego konta przy użyciu i az webapp show zapytania JMESPath.

    az webapp show \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-existing-account>" \
        --query "identity"   
    
  4. Przejrzyj dane wyjściowe polecenia . Powinna zawierać zarówno tożsamość zarządzaną przypisaną przez użytkownika.

    {
      "principalId": null,
      "tenantId": null,
      "type": "UserAssigned",
      "userAssignedIdentities": {
        "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned": {
          "clientId": "11112222-bbbb-3333-cccc-4444dddd5555",
          "principalId": "cccccccc-dddd-eeee-3333-444444444444"
        }
      }
    }
    
  1. Utwórz inny plik Bicep o nazwie app-service-web-app.bicep i zdefiniuj plan usługi aplikacja systemu Azure i aplikację internetową. Ustaw następujące właściwości dla tych zasobów:

    Zasób Wartość
    name Istniejąca tożsamość zarządzana Używanie parametru o nazwie identityName
    name Plan usługi App Service Używanie parametru o nazwie planName
    location Plan usługi App Service Ustaw na lokalizację grupy zasobów
    name Aplikacja sieci web Używanie parametru o nazwie webAppName
    location Aplikacja sieci web Ustaw na lokalizację grupy zasobów
    identity.type UserAssigned
    identity.userAssignedIdentities.{identity.id} {}
    properties.serverFarmId plan.id
    metadata description = 'Creates an Azure App Service plan and web app with a user-assigned managed identity.'
    
    @description('The name of the app service plan.')
    param planName string
    
    @description('The name of the web app.')
    param webAppName string
    
    @description('The name of the user-assigned managed identity.')
    param identityName string
    
    resource identity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' existing = {
      name: identityName
    }
    
    resource plan 'Microsoft.Web/serverfarms@2023-12-01' = {
      name: planName
      location: resourceGroup().location
    }
    
    resource webApp 'Microsoft.Web/sites@2023-12-01' = {
      name: webAppName
      location: resourceGroup().location
      identity: {
        type: 'UserAssigned'
        userAssignedIdentities: {
          '${identity.id}': {}
        }
      }
      properties: {
        serverFarmId: plan.id
      }
    }
    
    output userAssignedIdentity object = webApp.identity
    
  2. Utwórz plik parametrów Bicep o nazwie app-service-web-app.bicepparam. W tym pliku parametrów utwórz unikatową nazwę aplikacji internetowej i zaplanuj odpowiednio przy użyciu planName parametrów i webAppName . Następnie podaj nazwę tożsamości zarządzanej przypisanej przez użytkownika jako wartość parametru identityName .

    using './app-service-web-app.bicep'
    
    param planName = '<name-of-new-app-service-plan>'
    param webAppName = '<name-of-new-web-app>'
    param identityName = '<name-of-existing-managed-identity>'
    
  3. Wdróż szablon Bicep przy użyciu polecenia az deployment group create. Określ nazwę szablonu Bicep, pliku parametrów i grupy zasobów platformy Azure.

    az deployment group create \
        --resource-group "<name-of-existing-resource-group>" \
        --parameters "app-service-web-app.bicepparam" \
        --template-file "app-service-web-app.bicep"
    
  4. Przejrzyj dane wyjściowe z wdrożenia. Dane wyjściowe zawierają obiekt tożsamości z wystąpienia kontenera properties.outputs.userAssignedIdentity.value we właściwości .

    {
      "type": "UserAssigned",
      "userAssignedIdentities": {
        "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned": {
          "clientId": "11112222-bbbb-3333-cccc-4444dddd5555",
          "principalId": "cccccccc-dddd-eeee-3333-444444444444"
        }
      }
    }
    
  1. Wprowadź ciąg Aplikacja internetowa na pasku wyszukiwania globalnego.

  2. W obszarze Usługi wybierz pozycję App Services.

    Zrzut ekranu przedstawiający opcję

  3. W okienku App Services wybierz pozycję Utwórz, a następnie pozycję Aplikacja internetowa.

    Zrzut ekranu przedstawiający opcje

  4. W okienku Podstawowe skonfiguruj następujące opcje, a następnie wybierz pozycję Przejrzyj i utwórz:

    Wartość
    Subskrypcja Wybierz subskrypcję platformy Azure
    Grupa zasobów Utwórz nową grupę zasobów lub wybierz istniejącą grupę zasobów
    Nazwa/nazwisko Podaj globalnie unikatową nazwę
    Planowanie Tworzenie nowego planu lub wybieranie istniejącego planu

    Zrzut ekranu przedstawiający okienko tworzenia zasobów aplikacji internetowej

  5. W okienku Przeglądanie i tworzenie poczekaj na pomyślne zakończenie walidacji konta, a następnie wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający krok weryfikacji zasobów w środowisku tworzenia zasobu aplikacji internetowej.

  6. Portal automatycznie przechodzi do okienka Wdrażanie . Zaczekaj na zakończenie wdrażania.

  7. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu , aby przejść do nowego zasobu usługi Azure Container Instances.

    Zrzut ekranu przedstawiający w pełni wdrożony zasób aplikacji internetowej usługi aplikacja systemu Azure Service z wyróżnioną opcją

  8. W okienku dla nowego wystąpienia kontenera wybierz pozycję Tożsamość w sekcji Ustawienia menu usługi.

    Zrzut ekranu przedstawiający opcję

  9. W okienku Tożsamość wybierz opcję Przypisane przez użytkownika.

    Zrzut ekranu przedstawiający opcję

  10. Wybierz pozycję Dodaj , aby otworzyć okno dialogowe, aby przypisać istniejące tożsamości zarządzane przypisane przez użytkownika. W oknie dialogowym wybierz istniejącą tożsamość zarządzaną przypisaną przez użytkownika, a następnie wybierz pozycję Dodaj.

    Zrzut ekranu przedstawiający opcję

  11. Na koniec przejrzyj listę tożsamości zarządzanych przypisanych przez użytkownika skojarzonych z aplikacją internetową. Powinna zawierać nazwę tożsamości, nazwę grupy zasobów i identyfikator subskrypcji.

    Zrzut ekranu przedstawiający listę tożsamości zarządzanych przypisanych przez użytkownika skojarzonych z bieżącą aplikacją internetową.

  1. Użyj New-AzWebApp polecenia , aby utworzyć nową aplikację internetową usługi aplikacja systemu Azure Service.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-new-web-app>"
        Location = "<azure-region>"
    }
    New-AzWebApp @parameters
    
  2. Popraw nowo utworzoną aplikację internetową, aby ustawić identity.type właściwość na UserAssigned i dodać istniejącą tożsamość zarządzaną przypisaną przez użytkownika do identity.userAssignedIdentities właściwości . Aby wykonać to zadanie, najpierw podaj id pole zarejestrowane wcześniej w tym przewodniku jako wartość zmiennej identityId powłoki. Następnie skonstruuj obiekt ładunku i przekonwertuj go na format JSON. Na koniec użyj Invoke-AzRestMethod czasownika PATCH HTTP, aby zaktualizować istniejącą aplikację internetową.

    $identityId = "<resource-id-recorded-earlier>"
    
    $payload = @{
        identity = @{
            type = "UserAssigned"
            userAssignedIdentities = @{
                "$identityId" = @{}
            }
        }
    } | ConvertTo-Json -Depth 3
    
    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-existing-web-app>"
        ResourceProviderName = 'Microsoft.Web'
        ResourceType = 'sites'
        ApiVersion = '2023-12-01'
        Method = 'PATCH'
        Payload = $payload
    }
    Invoke-AzRestMethod @parameters
    
  3. Uzyskaj szczegółowe informacje dotyczące wszystkich tożsamości przypisanych do aplikacji internetowej przy użyciu metody Get-AzWebApp, Select-Objecti ConvertTo-Json wybierając tylko Identity właściwość .

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-existing-web-app>"
    }
    Get-AzWebApp @parameters | Select-Object Identity | ConvertTo-Json -Depth 3
    
  4. Przejrzyj dane wyjściowe polecenia . Powinien zawierać unikatowe identyfikatory tożsamości i dzierżawy.

    {
      "Identity": {
        "Type": "UserAssigned",
        "TenantId": null,
        "PrincipalId": null,
        "UserAssignedIdentities": {
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned": {
            "PrincipalId": "cccccccc-dddd-eeee-3333-444444444444",
            "ClientId": "11112222-bbbb-3333-cccc-4444dddd5555"
          }
        }
      }
    }
    

Następny krok