Delen via


Verbinding maken met Azure met behulp van een Azure Resource Manager-serviceverbinding

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

U kunt een Azure Resource Manager-serviceverbinding gebruiken om verbinding te maken met Azure-resources, zoals Azure Key Vault. Als u een Resource Manager-serviceverbinding gebruikt, kunt u een pijplijn gebruiken om te implementeren in een Azure-resource, zoals een Azure-app Service-app, zonder dat u deze telkens hoeft te verifiëren.

U hebt meerdere opties voor verificatie om verbinding te maken met Azure met behulp van Azure Resource Manager-serviceverbindingen:

  • Service-principal met federatie van workloadidentiteit
  • Service-principal met geheim
  • Door het systeem toegewezen beheerde identiteit
  • Openbaar profiel

De serviceverbinding maakt gebruik van een service-principal voor verificatie met Azure-resources.

Een Azure Resource Manager-serviceverbinding maken die gebruikmaakt van federatie van workloadidentiteit

Federatie van workloadidentiteit maakt gebruik van OpenID Connect (OIDC) om te verifiëren met met Microsoft Entra beveiligde resources zonder geheimen te gebruiken. U kunt automatisch de federatie van de workloadidentiteit voor verificatie maken of handmatig maken.

U wordt aangeraden deze methode te gebruiken als alle volgende items waar zijn voor uw scenario:

  • U hebt de rol Eigenaar voor het Azure-abonnement.
  • U maakt geen verbinding met de Azure Stack of de Azure US Government-omgevingen .
  • Alle Marketplace-uitbreidingstaken die u gebruikt, worden bijgewerkt ter ondersteuning van federatie van workloadidentiteiten.

Een serviceverbinding maken met workloadidentiteitsfederatie (automatisch)

Met deze selectie voert Azure DevOps automatisch een query uit voor het abonnement, de beheergroep of de Machine Learning-werkruimte waarmee u verbinding wilt maken en maakt u een federatie van workloadidentiteit voor verificatie.

  1. Ga in het Azure DevOps-project naar Project settings>Service-verbindingen.

    Zie Projectinstellingen openen voor meer informatie.

  2. Selecteer Nieuwe serviceverbinding en selecteer vervolgens Azure Resource Manager en Volgende.

    Schermopname van het kiezen van Azure Resource Manager-selectie.

  3. Selecteer Federatie van workloadidentiteit (automatisch) en Volgende.

    Schermopname van de selectie van de verificatiemethode voor workloadidentiteitsfederatie (automatisch).

  4. Selecteer een bereikniveau. Selecteer Abonnement, beheergroep of Machine Learning-werkruimte. Beheergroepen zijn containers die u helpen bij het beheren van toegang, beleid en naleving voor meerdere abonnementen. Een Machine Learning-werkruimte is een plek om machine learning-artefacten te maken.

    • Voer voor het abonnementsbereik de volgende parameters in:

      Parameter Description
      Abonnement Vereist. Selecteer het Azure-abonnement.
      Resourcegroep Vereist. Voer de naam van het Azure-abonnement in.
    • Selecteer de Azure-beheergroep voor het bereik van de beheergroep.

    • Voer voor het bereik van de Machine Learning-werkruimte de volgende parameters in:

      Parameter Description
      Abonnement Vereist. Selecteer het Azure-abonnement.
      Resourcegroep Vereist. Selecteer de resourcegroep met de werkruimte.
      Machine Learning-werkruimte Vereist. Selecteer de Azure Machine Learning-werkruimte.
  5. Voer een serviceverbindingsnaam in.

  6. Voer desgewenst een beschrijving in voor de serviceverbinding.

  7. Selecteer Toegang verlenen aan alle pijplijnen om toe te staan dat alle pijplijnen deze serviceverbinding gebruiken. Als u deze optie niet selecteert, moet u handmatig toegang verlenen aan elke pijplijn die gebruikmaakt van deze serviceverbinding.

  8. Selecteer Opslaan.

Nadat de nieuwe serviceverbinding is gemaakt, kopieert u de naam van de verbinding en plakt u deze in uw code als waarde voor azureSubscription.

Als u wilt implementeren naar een specifieke Azure-resource, heeft de taak meer gegevens over die resource nodig. Ga naar de resource in Azure Portal en kopieer de gegevens vervolgens naar uw code. Als u bijvoorbeeld een web-app wilt implementeren, kopieert u de naam van de Azure-app Service-app en plakt u deze in uw code als waarde voorWebAppName.

Serviceverbinding maken met workloadidentiteitsfederatie (handmatig)

Gebruik deze optie om handmatig een serviceverbinding te maken die gebruikmaakt van een bestaande federatie van workloadidentiteit voor verificatie.

  1. Ga in het Azure DevOps-project naar Project settings>Service-verbindingen.

    Zie Projectinstellingen openen voor meer informatie.

  2. Selecteer Nieuwe serviceverbinding en selecteer vervolgens Azure Resource Manager en Volgende.

    Schermopname van de selectie van verificatiemethode voor workloadidentiteitsfederatie (handmatig).

  3. Selecteer Federatie van workloadidentiteit (handmatig) en Volgende.

    Schermopname van het selecteren van een verbindingstype voor de identiteitsservice van een workload.

  4. In stap 1: Basisprincipes:

    1. Voer een serviceverbindingsnaam in
    2. Voer desgewenst een beschrijving in.
    3. Selecteer Toegang verlenen aan alle pijplijnen om toe te staan dat alle pijplijnen deze serviceverbinding gebruiken. Als u deze optie niet selecteert, moet u handmatig toegang verlenen aan elke pijplijn die gebruikmaakt van deze serviceverbinding.
    4. Selecteer Volgende.
  5. In stap 2: Details van service-principal:

    Stap 2: Details van service-principal bevat de volgende parameters. U kunt de volgende parameters invoeren of selecteren:

    Parameter Description
    Verlener Vereist. DevOps maakt automatisch de URL van de verlener wordt automatisch gemaakt
    Onderwerp-id Vereist. DevOps maakt automatisch de onderwerp-id.
    Omgeving Vereist. Kies een cloudomgeving waarmee u verbinding wilt maken. Als u Azure Stack selecteert, voert u de omgevings-URL in. Dit is iets als https://management.local.azurestack.external.
    1. Selecteer het bereikniveau. Selecteer Abonnement, beheergroep of Machine Learning-werkruimte. Beheergroepen zijn containers die u helpen bij het beheren van toegang, beleid en naleving voor meerdere abonnementen. Een Machine Learning-werkruimte is een plek om machine learning-artefacten te maken.

      • Voer voor het abonnementsbereik de volgende parameters in:

        Parameter Description
        Abonnements-id Vereist. Voer de Azure-abonnements-id in.
        Abonnementsnaam Vereist. Voer de naam van het Azure-abonnement in.
      • Voer voor het bereik van de beheergroep de volgende parameters in:

        Parameter Description
        Beheergroep-id Vereist. Voer de azure-beheergroep-id in.
        Naam van beheergroep Vereist. Voer de naam van de Azure-beheergroep in.
      • Voer voor het bereik van de Machine Learning-werkruimte de volgende parameters in:

        Parameter Description
        Abonnements-id Vereist. Voer de Azure-abonnements-id in.
        Abonnementsnaam Vereist. Voer de naam van het Azure-abonnement in.
        Resourcegroep Vereist. Selecteer de resourcegroep met de werkruimte.
        Ml-werkruimtenaam Vereist. Voer de naam in van de bestaande Azure Machine Learning-werkruimte.
        Locatie van ML-werkruimte Vereist. Voer de locatie in van de bestaande Azure Machine Learning-werkruimte.
    2. Voer in de sectie Verificatie de volgende parameters in of selecteer deze:

      Parameter Description
      Service-principal-id Vereist. Voer de service-principal-id in.
      Tenant-id Vereist. Voer de Tenant-id in.
    3. Voer in de sectie Details de volgende parameters in:

      Parameter Description
      Naam verbinding Vereist. De naam die u gebruikt om te verwijzen naar deze serviceverbinding in taakeigenschappen. Niet de naam van uw Azure-abonnement.
      Beschrijving Optioneel. Voer een beschrijving in van de serviceverbinding.
    4. Selecteer in de sectie Beveiliging de optie Toegang verlenen aan alle pijplijnen om toe te staan dat alle pijplijnen deze serviceverbinding gebruiken. Als u deze optie niet selecteert, moet u handmatig toegang verlenen aan elke pijplijn die gebruikmaakt van deze serviceverbinding.

    5. Selecteer Verifiëren en opslaan om de serviceverbinding te valideren en te maken.

Nadat de nieuwe serviceverbinding is gemaakt, kopieert u de naam van de verbinding en plakt u deze in uw code als waarde voor azureSubscription.

Als u wilt implementeren naar een specifieke Azure-resource, heeft de taak meer gegevens over die resource nodig. Ga naar de resource in Azure Portal en kopieer de gegevens vervolgens naar uw code. Als u bijvoorbeeld een web-app wilt implementeren, kopieert u de naam van de Azure-app Service-app en plakt u deze in uw code als waarde voorWebAppName.

Een bestaande Azure Resource Manager-serviceverbinding converteren om gebruik te maken van federatie van workloadidentiteit

U kunt snel een bestaande Azure Resource Manager-serviceverbinding converteren om federatie van workloadidentiteit te gebruiken voor verificatie in plaats van een service-principal. U kunt het hulpprogramma voor serviceverbindingsconversie in Azure DevOps gebruiken als uw serviceverbinding aan deze vereisten voldoet:

  • Azure DevOps heeft oorspronkelijk de serviceverbinding gemaakt. Als u uw serviceverbinding handmatig maakt, kunt u de serviceverbinding niet converteren met behulp van het hulpprogramma voor serviceverbindingsconversie omdat Azure DevOps geen machtigingen heeft om zijn eigen referenties te wijzigen.
  • Slechts één project maakt gebruik van de serviceverbinding. U kunt geen cross-projectservice-verbindingen converteren.

Een serviceverbinding converteren:

  1. Ga in het Azure DevOps-project naar Project settings>Service-verbindingen.

    Zie Projectinstellingen openen voor meer informatie.

  2. Selecteer de serviceverbinding die u wilt converteren om de workloadidentiteit te gebruiken.

  3. Selecteer Converteren.

    Schermopname van het selecteren van converteren voor federatieve referenties.

    Als u een bestaande service-principalreferentie met een verlopen geheim hebt, ziet u een andere optie om te converteren.

    Schermopname van de optie voor converteren om federatieve referenties te gebruiken wanneer u een verlopen certificaat hebt.

  4. Selecteer Opnieuw converteren om te bevestigen dat u een nieuwe serviceverbinding wilt maken.

    De conversie kan enkele minuten duren. Als u de verbinding wilt herstellen, moet u deze binnen zeven dagen terugzetten.

Meerdere Azure Resource Manager-serviceverbindingen converteren met een script

Gebruik een script om meerdere serviceverbindingen tegelijk bij te werken om nu workloadidentiteitsfederatie te gebruiken voor verificatie.

Voor dit PowerShell-voorbeeldscript zijn twee parameters vereist: Azure DevOps-organisatie (voorbeeld: https://dev.azure.com/fabrikam-tailspin) en Azure DevOps-project (voorbeeld: Space game web agent). Met het script worden vervolgens de bijbehorende serviceverbindingen opgehaald voor uw Azure DevOps-project en -organisatie.

Bij het converteren van serviceverbindingen voor het gebruik van workloadidentiteitsfederatie wordt u gevraagd om de update te bevestigen voor elke verbinding die deze nog niet gebruikt. Na bevestiging worden deze serviceverbindingen bijgewerkt via de Azure DevOps REST API om gebruik te maken van federatie van workloadidentiteit.

Voor het script is PowerShell 7.3 of hoger vereist en Azure CLI moet worden uitgevoerd. Sla het script op in een .ps1 bestand en voer het uit met behulp van PowerShell 7.

#!/usr/bin/env pwsh
<# 
.SYNOPSIS 
    Convert multiple Azure Resource Manager service connection(s) to use Workload identity federation

.LINK
    https://aka.ms/azdo-rm-workload-identity-conversion

.EXAMPLE
    ./convert_azurerm_service_connection_to_oidc_simple.ps1 -Project <project> -OrganizationUrl https://dev.azure.com/<organization>
#> 

#Requires -Version 7.3

param ( 
    [parameter(Mandatory=$true,HelpMessage="Name of the Azure DevOps Project")]
    [string]
    [ValidateNotNullOrEmpty()]
    $Project,

    [parameter(Mandatory=$true,HelpMessage="Url of the Azure DevOps Organization")]
    [uri]
    [ValidateNotNullOrEmpty()]
    $OrganizationUrl
) 
$apiVersion = "7.1"
$PSNativeCommandArgumentPassing = "Standard" 

#-----------------------------------------------------------
# Log in to Azure
$azdoResource = "499b84ac-1321-427f-aa17-267ca6975798" # application id of Azure DevOps 
az login --allow-no-subscriptions --scope ${azdoResource}/.default
$OrganizationUrl = $OrganizationUrl.ToString().Trim('/')

#-----------------------------------------------------------
# Retrieve the service connection
$getApiUrl = "${OrganizationUrl}/${Project}/_apis/serviceendpoint/endpoints?authSchemes=ServicePrincipal&type=azurerm&includeFailed=false&includeDetails=true&api-version=${apiVersion}"
az rest --resource $azdoResource -u "${getApiUrl} " -m GET --query "sort_by(value[?authorization.scheme=='ServicePrincipal' && data.creationMode=='Automatic' && !(isShared && serviceEndpointProjectReferences[0].projectReference.name!='${Project}')],&name)" -o json `
        | Tee-Object -Variable rawResponse | ConvertFrom-Json | Tee-Object -Variable serviceEndpoints | Format-List | Out-String | Write-Debug
if (!$serviceEndpoints -or ($serviceEndpoints.count-eq 0)) {
    Write-Warning "No convertible service connections found"
    exit 1
}

foreach ($serviceEndpoint in $serviceEndpoints) {
    # Prompt user to confirm conversion
    $choices = @(
        [System.Management.Automation.Host.ChoiceDescription]::new("&Convert", "Converting service connection '$($serviceEndpoint.name)'...")
        [System.Management.Automation.Host.ChoiceDescription]::new("&Skip", "Skipping service connection '$($serviceEndpoint.name)'...")
        [System.Management.Automation.Host.ChoiceDescription]::new("&Exit", "Exit script")
    )
    $prompt = $serviceEndpoint.isShared ? "Convert shared service connection '$($serviceEndpoint.name)'?" : "Convert service connection '$($serviceEndpoint.name)'?"
    $decision = $Host.UI.PromptForChoice([string]::Empty, $prompt, $choices, $serviceEndpoint.isShared ? 1 : 0)

    if ($decision -eq 0) {

        Write-Host "$($choices[$decision].HelpMessage)"
    } elseif ($decision -eq 1) {
        Write-Host "$($PSStyle.Formatting.Warning)$($choices[$decision].HelpMessage)$($PSStyle.Reset)"
        continue 
    } elseif ($decision -ge 2) {
        Write-Host "$($PSStyle.Formatting.Warning)$($choices[$decision].HelpMessage)$($PSStyle.Reset)"
        exit 
    }

    # Prepare request body
    $serviceEndpoint.authorization.scheme = "WorkloadIdentityFederation"
    $serviceEndpoint.data.PSObject.Properties.Remove('revertSchemeDeadline')
    $serviceEndpoint | ConvertTo-Json -Depth 4 | Write-Debug
    $serviceEndpoint | ConvertTo-Json -Depth 4 -Compress | Set-Variable serviceEndpointRequest
    $putApiUrl = "${OrganizationUrl}/${Project}/_apis/serviceendpoint/endpoints/$($serviceEndpoint.id)?operation=ConvertAuthenticationScheme&api-version=${apiVersion}"
    # Convert service connection
    az rest -u "${putApiUrl} " -m PUT -b $serviceEndpointRequest --headers content-type=application/json --resource $azdoResource -o json `
            | ConvertFrom-Json | Set-Variable updatedServiceEndpoint

    $updatedServiceEndpoint | ConvertTo-Json -Depth 4 | Write-Debug
    if (!$updatedServiceEndpoint) {
        Write-Debug "Empty response"
        Write-Error "Failed to convert service connection '$($serviceEndpoint.name)'"
        exit 1
    }
    Write-Host "Successfully converted service connection '$($serviceEndpoint.name)'"
}

Een bestaande Azure Resource Manager-serviceverbinding herstellen die gebruikmaakt van een service-principalgeheim

U kunt een geconverteerde automatische serviceverbinding met het bijbehorende geheim gedurende zeven dagen terugzetten. Maak na zeven dagen handmatig een nieuw geheim.

Als u uw serviceverbinding handmatig maakt en converteert, kunt u de serviceverbinding niet herstellen met behulp van het hulpprogramma voor serviceverbindingsconversie omdat Azure DevOps geen machtigingen heeft om zijn eigen referenties te wijzigen.

Ga als volgt te werk om een serviceverbinding te herstellen:

  1. Ga in het Azure DevOps-project naar Pipelines>Service-verbindingen.

  2. Selecteer een bestaande serviceverbinding om terug te keren.

  3. Selecteer Conversie herstellen naar het oorspronkelijke schema.

    Schermopname van het selecteren van terugkeren voor een federatieve referentie.

  4. Selecteer Opnieuw instellen om uw keuze te bevestigen.

Een Azure Resource Manager-serviceverbinding maken die gebruikmaakt van een service-principalgeheim

U kunt een serviceverbinding instellen voor verificatie met Azure-resources met behulp van een service-principalgeheim. Deze methode is handig wanneer u machtigingen voor Azure-resources die gebruikers openen via de serviceverbinding verder moet beperken.

U kunt ervoor kiezen om de serviceverbinding handmatig of automatisch te configureren. Het is raadzaam om de automatische benadering te gebruiken als u bent aangemeld als de eigenaar van de Azure Pipelines-organisatie en het Azure-abonnement. U hoeft geen machtigingen verder te beperken voor Azure-resources waartoe gebruikers toegang hebben via de serviceverbinding.

U wordt aangeraden deze methode te gebruiken als alle volgende items waar zijn voor uw scenario:

  • U bent aangemeld als de eigenaar van de Azure Pipelines-organisatie en het Azure-abonnement.
  • U hoeft geen machtigingen verder te beperken voor Azure-resources waartoe gebruikers toegang hebben via de serviceverbinding.
  • U maakt geen verbinding met Azure Stack of met een Azure Government Cloud.
  • U maakt geen verbinding vanuit Azure DevOps Server 2019 of eerdere versies van Team Foundation Server.

De serviceverbinding maken:

  1. Ga in het Azure DevOps-project naar Project settings>Service-verbindingen.

    Zie Projectinstellingen openen voor meer informatie.

  2. Selecteer Nieuwe serviceverbinding en selecteer vervolgens Azure Resource Manager en Volgende.

    Schermopname van de Azure Resource Manager-selectie.

  3. Selecteer Service-principal (automatisch) en Volgende.

    Schermopname van het selecteren van een service-principal (automatische) verificatiemethode.

  4. Selecteer het bereikniveau. Selecteer Abonnement, beheergroep of Machine Learning-werkruimte. Beheergroepen zijn containers die u helpen bij het beheren van toegang, beleid en naleving voor meerdere abonnementen. Een Machine Learning-werkruimte is een plek om machine learning-artefacten te maken.

    • Voer voor het abonnementsbereik de volgende parameters in:

      Parameter Description
      Abonnements-id Vereist. Voer de Azure-abonnements-id in.
      Abonnementsnaam Vereist. Voer de naam van het Azure-abonnement in.
    • Voer voor het bereik van de beheergroep de volgende parameters in en selecteer de Azure-beheergroep.

    • Voer voor het bereik van de Machine Learning-werkruimte de volgende parameters in:

      Parameter Description
      Abonnements-id Vereist. Voer de Azure-abonnements-id in.
      Abonnementsnaam Vereist. Voer de naam van het Azure-abonnement in.
      Resourcegroep Vereist. Selecteer de resourcegroep met de werkruimte.
      Ml-werkruimtenaam Vereist. Voer de naam in van de bestaande Azure Machine Learning-werkruimte.
      Locatie van ML-werkruimte Vereist. Voer de locatie in van de bestaande Azure Machine Learning-werkruimte.
  5. Voer een serviceverbindingsnaam in.

  6. Voer desgewenst een beschrijving in voor de serviceverbinding.

  7. Selecteer Toegang verlenen aan alle pijplijnen om toe te staan dat alle pijplijnen deze serviceverbinding gebruiken. Als u deze optie niet selecteert, moet u handmatig toegang verlenen aan elke pijplijn die gebruikmaakt van deze serviceverbinding.

  8. Selecteer Opslaan.

Nadat de nieuwe serviceverbinding is gemaakt:

  • Als u de klassieke editor gebruikt, selecteert u de verbindingsnaam die u hebt toegewezen in de azure-abonnementsinstelling van uw pijplijn.
  • Als u een YAML-bestand gebruikt, kopieert u de verbindingsnaam in uw code als de waarde voor azureSubscription.

Als u wilt implementeren naar een specifieke Azure-resource, voegt u meer informatie over de resource toe aan de taak:

  • Als u de klassieke editor gebruikt, selecteert u gegevens die u aan de taak wilt toevoegen. Selecteer bijvoorbeeld de App Service-naam.
  • Als u een YAML-bestand gebruikt, gaat u naar de resource in Azure Portal. Kopieer de gegevens die u nodig hebt en plak deze in uw taakcode. Als u bijvoorbeeld een web-app wilt implementeren, kopieert u de naam van de App Service-app en plakt u deze als de waarde voor WebAppName in de YAML-taak.

Notitie

Wanneer u deze aanpak volgt, maakt Azure DevOps verbinding met Microsoft Entra ID en maakt u een app-registratie met een geheim dat drie maanden geldig is. Wanneer de serviceverbinding bijna verloopt, wordt deze prompt weergegeven in Microsoft Entra-id: een certificaat of geheim verloopt binnenkort. Maak een nieuwe. In dit scenario moet u de serviceverbinding vernieuwen.

Als u een serviceverbinding wilt vernieuwen, bewerkt u de verbinding in de Azure DevOps-portal en selecteert u Verifiëren. Nadat u de bewerking hebt opgeslagen, is de serviceverbinding nog drie maanden geldig.

We raden u aan om workloadidentiteitsfederatie te gebruiken in plaats van een geheim te maken. Als u workloadidentiteitsfederatie gebruikt, hoeft u geen geheimen te roteren en behoudt de app-registratie het beoogde doel. Als u workloadidentiteitsfederatie wilt gaan gebruiken, gaat u naar de pagina met serviceverbindingsgegevens en selecteert u Converteren. De serviceverbinding wordt geconverteerd om workloadidentiteitsfederatie te gebruiken in plaats van een geheim. Zie Een bestaande Azure Resource Manager-serviceverbinding converteren om federatie van workloadidentiteit te gebruiken voor meer informatie.

Zie Problemen met een Azure Resource Manager-serviceverbinding oplossen voor meer informatie.

Als u problemen ondervindt met het gebruik van deze methode (zoals geen abonnementen die worden weergegeven in de vervolgkeuzelijst) of als u gebruikersmachtigingen wilt beperken, kunt u in plaats daarvan een service-principal of een virtuele machine met een beheerde identiteit gebruiken.

Een Azure Resource Manager-serviceverbinding maken die gebruikmaakt van een bestaande service-principal

Als u een vooraf gedefinieerde set toegangsmachtigingen wilt gebruiken en u nog geen service-principal hebt gedefinieerd voor dit doel, volgt u een van deze zelfstudies om een nieuwe service-principal te maken:

Een serviceverbinding maken die gebruikmaakt van een bestaande service-principal:

  1. Ga in het Azure DevOps-project naar Project settings>Service-verbindingen.

    Zie Projectinstellingen openen voor meer informatie.

  2. Selecteer Nieuwe serviceverbinding en selecteer vervolgens Azure Resource Manager en Volgende.

    Schermopname van de Azure Resource Manager-selectie.

  3. Selecteer Service-principal (handmatig) en Volgende.

    Schermopname van het selecteren van een verificatiemethode voor een service-principal (handmatig).

  4. Selecteer in het dialoogvenster Nieuwe Azure-serviceverbinding de omgeving. Als u Azure Stack selecteert, voert u de omgevings-URL in. Dit is iets als https://management.local.azurestack.external.

  5. Selecteer het bereikniveau. Selecteer Abonnement, beheergroep of Machine Learning-werkruimte. Beheergroepen zijn containers die u helpen bij het beheren van toegang, beleid en naleving voor meerdere abonnementen. Een Machine Learning-werkruimte is een plek om machine learning-artefacten te maken.

    • Voer voor het abonnementsbereik de volgende parameters in:

      Parameter Description
      Abonnements-id Vereist. Voer de Azure-abonnements-id in.
      Abonnementsnaam Vereist. Voer de naam van het Azure-abonnement in.
    • Voer voor het bereik van de beheergroep de volgende parameters in:

      Parameter Description
      Beheergroep-id Vereist. Voer de azure-beheergroep-id in.
      Naam van beheergroep Vereist. Voer de naam van de Azure-beheergroep in.
    • Voer voor het bereik van de Machine Learning-werkruimte de volgende parameters in:

      Parameter Description
      Abonnements-id Vereist. Voer de Azure-abonnements-id in.
      Abonnementsnaam Vereist. Voer de naam van het Azure-abonnement in.
      Resourcegroep Vereist. Selecteer de resourcegroep met de werkruimte.
      Ml-werkruimtenaam Vereist. Voer de naam in van de bestaande Azure Machine Learning-werkruimte.
      Locatie van ML-werkruimte Vereist. Voer de locatie in van de bestaande Azure Machine Learning-werkruimte.
  6. Voer in de sectie Verificatie de volgende parameters in of selecteer deze:

    Parameter Description
    Service-principal-id Vereist. Voer de service-principal-id in.
    Geloofsbrief Selecteer De sleutel of het certificaat van de service-principal. Als u service-principalsleutel hebt geselecteerd, voert u de sleutel (wachtwoord) in. Als u Certificaat hebt geselecteerd, voert u het certificaat in.
    Tenant-id Vereist. Voer de Tenant-id in.
    Verifiëren Selecteer deze optie om de instellingen te valideren die u hebt ingevoerd.
  7. Voer in de sectie Details de volgende parameters in:

    Parameter Description
    Naam verbinding Vereist. De naam die u gebruikt om te verwijzen naar deze serviceverbinding in taakeigenschappen. Niet de naam van uw Azure-abonnement.
    Beschrijving Optioneel. Voer een beschrijving in van de serviceverbinding.
    Beveiliging Selecteer Toegang verlenen aan alle pijplijnen om toe te staan dat alle pijplijnen deze serviceverbinding gebruiken. Als u deze optie niet selecteert, moet u handmatig toegang verlenen aan elke pijplijn die gebruikmaakt van deze serviceverbinding.
  8. Selecteer Verifiëren en opslaan om de serviceverbinding te valideren en te maken.

Nadat de nieuwe serviceverbinding is gemaakt:

  • Als u de serviceverbinding in de gebruikersinterface gebruikt, selecteert u de verbindingsnaam die u hebt toegewezen in de Azure-abonnementsinstelling van uw pijplijn.
  • Als u de serviceverbinding in een YAML-bestand gebruikt, kopieert u de naam van de verbinding en plakt u deze in uw code als de waarde voor azureSubscription.

Wijzig zo nodig de service-principal om de juiste machtigingen beschikbaar te maken.

Zie Op rollen gebaseerd toegangsbeheer gebruiken om de toegang tot uw Azure-abonnementsresources te beheren of het blogbericht Een implementatie van een Azure-resourcegroep automatiseren met behulp van een service-principal in Visual Studio voor meer informatie over verificatie met behulp van een service-principal.

Zie Problemen met azure Resource Manager-serviceverbindingen oplossen voor meer informatie.

Een Azure Resource Manager-serviceverbinding maken met een virtuele machine die gebruikmaakt van een beheerde identiteit

Notitie

Als u een beheerde identiteit wilt gebruiken om te verifiëren, moet u een zelf-hostende agent gebruiken op een virtuele Azure-machine (VM).

U kunt zelf-hostende agents op Azure-VM's configureren voor het gebruik van een door Azure beheerde identiteit in Microsoft Entra-id. In dit scenario gebruikt u de door het systeem toegewezen beheerde identiteit (service-principal) om de agents toegang te verlenen tot elke Azure-resource die Ondersteuning biedt voor Microsoft Entra-id, zoals een exemplaar van Azure Key Vault.

  1. Ga in het Azure DevOps-project naar Project settings>Service-verbindingen.

    Zie Projectinstellingen openen voor meer informatie.

  2. Selecteer Nieuwe serviceverbinding en selecteer vervolgens Azure Resource Manager en Volgende.

    Schermopname van het kiezen van een serviceverbindingstype.

  3. Selecteer Beheerde identiteit voor de verificatiemethode.

    Schermopname van het selecteren van de verificatiemethode voor beheerde service-id's.

  4. Selecteer voor Omgeving de naam van de omgeving (Azure Cloud, Azure Stack of Government-cloudopties).

  5. Selecteer het bereikniveau. Selecteer Abonnement, beheergroep of Machine Learning-werkruimte. Beheergroepen zijn containers die u helpen bij het beheren van toegang, beleid en naleving voor meerdere abonnementen. Een Machine Learning-werkruimte is een plek om machine learning-artefacten te maken.

    • Voer voor het abonnementsbereik de volgende parameters in:

      Parameter Description
      Abonnements-id Vereist. Voer de Azure-abonnements-id in.
      Abonnementsnaam Vereist. Voer de naam van het Azure-abonnement in.
    • Voer voor het bereik van de beheergroep de volgende parameters in:

      Parameter Description
      Beheergroep-id Vereist. Voer de azure-beheergroep-id in.
      Naam van beheergroep Vereist. Voer de naam van de Azure-beheergroep in.
    • Voer voor het bereik van de Machine Learning-werkruimte de volgende parameters in:

      Parameter Description
      Abonnements-id Vereist. Voer de Azure-abonnements-id in.
      Abonnementsnaam Vereist. Voer de naam van het Azure-abonnement in.
      Resourcegroep Vereist. Selecteer de resourcegroep met de werkruimte.
      Ml-werkruimtenaam Vereist. Voer de naam in van de bestaande Azure Machine Learning-werkruimte.
      Locatie van ML-werkruimte Vereist. Voer de locatie in van de bestaande Azure Machine Learning-werkruimte.
  6. Voer de tenant-id in.

  7. Voer de naam van de serviceverbinding in.

  8. Voer desgewenst een beschrijving in voor de serviceverbinding.

  9. Selecteer Toegang verlenen aan alle pijplijnen om toe te staan dat alle pijplijnen deze serviceverbinding gebruiken. Als u deze optie niet selecteert, moet u handmatig toegang verlenen aan elke pijplijn die gebruikmaakt van deze serviceverbinding.

  10. Selecteer Opslaan.

  11. Nadat de nieuwe serviceverbinding is gemaakt:

    • Als u de serviceverbinding in de gebruikersinterface gebruikt, selecteert u de verbindingsnaam die u hebt toegewezen in de Azure-abonnementsinstelling van uw pijplijn.
    • Als u de serviceverbinding in een YAML-bestand gebruikt, kopieert u de naam van de verbinding naar uw code als de waarde voor azureSubscription.
  12. Zorg ervoor dat de VM (agent) de juiste machtigingen heeft.

    Als uw code bijvoorbeeld Azure Resource Manager moet aanroepen, wijst u de juiste rol toe aan de VIRTUELE machine met behulp van op rollen gebaseerd toegangsbeheer (RBAC) in Microsoft Entra-id.

    Zie Hoe kan ik beheerde identiteiten gebruiken voor Azure-resources? en op rollen gebaseerd toegangsbeheer gebruiken om de toegang tot uw Azure-abonnementsresources te beheren.

Zie Problemen met azure Resource Manager-serviceverbindingen oplossen voor meer informatie over het proces.

Een serviceverbinding maken met behulp van een publicatieprofiel

U kunt een serviceverbinding maken met behulp van een publicatieprofiel. U kunt een publicatieprofiel gebruiken om een serviceverbinding met een Azure-app Service te maken.

  1. Ga in het Azure DevOps-project naar Project settings>Service-verbindingen.

    Zie Projectinstellingen openen voor meer informatie.

  2. Selecteer Nieuwe serviceverbinding en selecteer vervolgens Azure Resource Manager en Volgende.

    Schermopname van azure Resource Manager-selectie.

  3. Selecteer Publicatieprofiel voor de verificatiemethode en selecteer Volgende.

    Schermopname van de selectie van de methode Publicatieprofielverificatie.

  4. Voer de volgende parameters in:

    Parameter Description
    Abonnement Vereist. Selecteer een bestaand Azure-abonnement. Zie Problemen met Azure Resource Manager-serviceverbindingen oplossen als er geen Azure-abonnementen of -exemplaren worden weergegeven.
    WebApp Vereist. Voer de naam in van de Azure-app Service-app.
    Serviceverbindingsnaam Vereist. De naam die u gebruikt om te verwijzen naar deze serviceverbinding in taakeigenschappen. Niet de naam van uw Azure-abonnement.
    Beschrijving Optioneel. De beschrijving van de serviceverbinding.
  5. Selecteer Toegang verlenen aan alle pijplijnen om toe te staan dat alle pijplijnen deze serviceverbinding gebruiken. Als u deze optie niet selecteert, moet u handmatig toegang verlenen aan elke pijplijn die gebruikmaakt van deze serviceverbinding.

  6. Selecteer Opslaan.

Nadat de nieuwe serviceverbinding is gemaakt:

  • Als u de serviceverbinding in de gebruikersinterface gebruikt, selecteert u de verbindingsnaam die u hebt toegewezen in de Azure-abonnementsinstelling van uw pijplijn.
  • Als u de serviceverbinding in een YAML-bestand gebruikt, kopieert u de naam van de verbinding en plakt u deze in uw code als de waarde voor azureSubscription.

Verbinding maken met een Azure Government-cloud

Zie Verbinding maken vanuit Azure Pipelines (Azure Government Cloud) voor informatie over het maken van verbinding met een Azure Government-cloud.

Verbinding maken met Azure Stack

Zie de volgende artikelen voor meer informatie over het maken van verbinding met Azure Stack:

Help en ondersteuning