Partager via


Se connecter à Azure à l’aide d’une connexion de service Azure Resource Manager

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

Vous pouvez utiliser une connexion de service Azure Resource Manager pour vous connecter à des ressources Azure telles qu’Azure Key Vault. Si vous utilisez une connexion au service Azure Resource Manager, vous pouvez utiliser un pipeline pour déployer sur une ressource Azure comme une application Azure App Service sans authentification à chaque fois.

Vous avez plusieurs options d’authentification pour vous connecter à Azure à l’aide des connexions de service Azure Resource Manager :

  • Principal de service avec fédération d’identité de charge de travail
  • Principal de service avec une clé secrète
  • Identité managée affectée par le système
  • Profil public

La connexion de service utilise un principal de service pour s’authentifier auprès des ressources Azure.

Créer une connexion au service Azure Resource Manager qui utilise la fédération d'identité de charge de travail

La fédération d'identité de charge de travail utilise OpenID Connect (OIDC) pour s'authentifier auprès des ressources protégées par Microsoft Entra sans utiliser les secrets. Vous pouvez créer automatiquement la fédération d’identité de charge de travail pour l’authentification ou la créer manuellement.

Nous vous recommandons d’utiliser cette approche si tous les éléments suivants sont vrais pour votre scénario :

  • Vous disposez du rôle Propriétaire pour votre abonnement Azure.
  • Vous ne vous connectez pas aux environnements Azure Stack ou Azure US Government .
  • Toutes les tâches d'extensions Marketplace que vous utilisez sont mises à jour pour prendre en charge la fédération d'identité de charge de travail.

Créer une connexion de service avec la fédération d’identité de charge de travail (automatique)

Avec cette sélection, Azure DevOps interroge automatiquement l’abonnement, le groupe d’administration ou l’espace de travail Machine Learning auquel vous souhaitez vous connecter et crée une fédération d’identité de charge de travail pour l’authentification.

  1. Dans le projet Azure DevOps, accédez à Paramètres du projet>Connexions de service.

    Pour plus d’informations, reportez-vous à la section Ouvrir les paramètres du projet.

  2. Sélectionnez Nouvelle connexion de service, puis Azure Resource Manager et Suivant.

    Capture d’écran montrant le choix d’Azure Resource Manager.

  3. Sélectionnez Fédération des identités de charge de travail (automatique) et Suivant.

    Capture d’écran de la sélection de méthode d’authentification de fédération d’identité de charge de travail (automatique).

  4. Sélectionnez un niveau d’étendue. Sélectionnez Un abonnement, un groupe d’administration ou un espace de travail Machine Learning. Les groupes d’administration sont des conteneurs qui vous aident à gérer l’accès, la stratégie et la conformité dans plusieurs abonnements. Un espace de travail Machine Learning est destiné à créer des artefacts Machine Learning.

    • Pour l’étendue de l’abonnement, entrez les paramètres suivants :

      Paramètre Description
      Abonnement Obligatoire. Sélectionnez l’abonnement Azure.
      Groupe de ressources Obligatoire. Entrez le nom de l’abonnement Azure.
    • Pour l’étendue du groupe d’administration, sélectionnez le groupe d’administration Azure.

    • Pour l’étendue de l’espace de travail Machine Learning, entrez les paramètres suivants :

      Paramètre Description
      Abonnement Obligatoire. Sélectionnez l’abonnement Azure.
      Groupe de ressources Obligatoire. Sélectionnez le groupe de ressources contenant l’espace de travail.
      Espace de travail Machine Learning Obligatoire. Sélectionnez l’espace de travail Azure Machine Learning.
  5. Saisissez un nom de connexion de service.

  6. Si vous le souhaitez, entrez une description de la connexion de service.

  7. Sélectionnez Accorder l’autorisation d’accès à tous les pipelines pour autoriser tous les pipelines à utiliser cette connexion de service. Si vous ne sélectionnez pas cette option, vous devez accorder manuellement l’accès à chaque pipeline qui utilise cette connexion de service.

  8. Cliquez sur Enregistrer.

Une fois la nouvelle connexion au service créée, copiez le nom de la connexion et collez-le dans votre code comme valeur pour azureSubscription.

Pour effectuer un déploiement sur une ressource Azure spécifique, la tâche a besoin de données supplémentaires sur cette ressource. Accédez à la ressource dans le portail Azure, puis copiez les données dans votre code. Par exemple, pour déployer une application web, copiez le nom de l’application Azure App Service et collez-le dans votre code en tant que valeur pour WebAppName.

Créer une connexion de service avec la fédération d’identité de charge de travail (manuel)

Utilisez cette option pour créer manuellement une connexion de service qui utilise une fédération d’identité de charge de travail existante pour l’authentification.

  1. Dans le projet Azure DevOps, accédez à Paramètres du projet>Connexions de service.

    Pour plus d’informations, reportez-vous à la section Ouvrir les paramètres du projet.

  2. Sélectionnez Nouvelle connexion de service, puis Azure Resource Manager et Suivant.

    Capture d’écran de la sélection de la méthode d’authentification de fédération de l’identité de charge de travail (manuelle).

  3. Sélectionnez Fédération des identités de charge de travail (manuelle) et Suivant.

    Capture d’écran montrant la sélection d’un type de connexion de service d’identité de charge de travail.

  4. À l’étape 1 : Notions de base :

    1. Entrez un nom de connexion de service
    2. Entrez éventuellement une Description.
    3. Sélectionnez Accorder l’autorisation d’accès à tous les pipelines pour autoriser tous les pipelines à utiliser cette connexion de service. Si vous ne sélectionnez pas cette option, vous devez accorder manuellement l’accès à chaque pipeline qui utilise cette connexion de service.
    4. Cliquez sur Suivant.
  5. À l’étape 2 : Détails du principal de service :

    Étape 2 : Les détails du principal de service contiennent les paramètres suivants. Vous pouvez entrer ou sélectionner les paramètres suivants :

    Paramètre Description
    Émetteur Obligatoire. DevOps crée automatiquement l’URL de l’émetteur.
    Identificateur de l’objet Obligatoire. DevOps crée automatiquement l’identificateur d’objet.
    Environment Obligatoire. Choisissez un environnement cloud auquel se connecter. Si vous sélectionnez Azure Stack, entrez l’URL de l’environnement, qui est similaire https://management.local.azurestack.externalà .
    1. Sélectionnez le niveau d’étendue. Sélectionnez Un abonnement, un groupe d’administration ou un espace de travail Machine Learning. Les groupes d’administration sont des conteneurs qui vous aident à gérer l’accès, la stratégie et la conformité dans plusieurs abonnements. Un espace de travail Machine Learning est destiné à créer des artefacts Machine Learning.

      • Pour l’étendue de l’abonnement, entrez les paramètres suivants :

        Paramètre Description
        ID d’abonnement Obligatoire. Entrez l’ID d’abonnement Azure.
        Nom d’abonnement Obligatoire. Entrez le nom de l’abonnement Azure.
      • Pour l’étendue du groupe d’administration, entrez les paramètres suivants :

        Paramètre Description
        ID du groupe d’administration Obligatoire. Entrez l’ID du groupe d’administration Azure.
        Nom du groupe d’administration Obligatoire. Entrez le nom du groupe d’administration Azure.
      • Pour l’étendue de l’espace de travail Machine Learning, entrez les paramètres suivants :

        Paramètre Description
        ID d’abonnement Obligatoire. Entrez l’ID d’abonnement Azure.
        Nom d’abonnement Obligatoire. Entrez le nom de l’abonnement Azure.
        Groupe de ressources Obligatoire. Sélectionnez le groupe de ressources contenant l’espace de travail.
        Nom de l’espace de travail ML Obligatoire. Entrez le nom de l’espace de travail Azure Machine Learning existant.
        Emplacement de l’espace de travail ML Obligatoire. Entrez l’emplacement de l’espace de travail Azure Machine Learning existant.
    2. Dans la section Authentification , entrez ou sélectionnez les paramètres suivants :

      Paramètre Description
      ID de principal de service Obligatoire. Entrez l’ID du principal de service.
      Identifiant du locataire Obligatoire. Entrez l’ID du client.
    3. Dans la section Détails, entrez les paramètres suivants :

      Paramètre Description
      Nom de connexion Obligatoire. Nom sous lequel vous faites référence à cette connexion de service dans les propriétés des tâches. Autre que le nom de votre abonnement Azure.
      Description facultatif. Entrez une description de la connexion de service.
    4. Dans la section Sécurité , sélectionnez Accorder l’autorisation d’accès à tous les pipelines pour autoriser tous les pipelines à utiliser cette connexion de service. Si vous ne sélectionnez pas cette option, vous devez accorder manuellement l’accès à chaque pipeline qui utilise cette connexion de service.

    5. Sélectionnez Vérifier et enregistrer pour valider et créer la connexion de service.

Une fois la nouvelle connexion au service créée, copiez le nom de la connexion et collez-le dans votre code comme valeur pour azureSubscription.

Pour effectuer un déploiement sur une ressource Azure spécifique, la tâche a besoin de données supplémentaires sur cette ressource. Accédez à la ressource dans le portail Azure, puis copiez les données dans votre code. Par exemple, pour déployer une application web, copiez le nom de l’application Azure App Service et collez-le dans votre code en tant que valeur pour WebAppName.

Convertir une connexion au service Azure Resource Manager existante afin d'utiliser la fédération d'identité de charge de travail

Vous pouvez convertir rapidement une connexion de service Azure Resource Manager existante pour utiliser la fédération des identités de charge de travail pour l’authentification au lieu d’un principal de service. Vous pouvez utiliser l’outil de conversion de connexion de service dans Azure DevOps si votre connexion de service répond à ces exigences :

  • Azure DevOps a initialement créé la connexion de service. Si vous créez manuellement votre connexion de service, vous ne pouvez pas la convertir à l’aide de l’outil de connexion de service, car Azure DevOps n’est pas autorisé à modifier ses propres informations d’identification.
  • Un seul projet utilise la connexion de service. Vous ne pouvez pas convertir les connexions entre services de projet.

Pour convertir une connexion de service :

  1. Dans le projet Azure DevOps, accédez à Paramètres du projet>Connexions de service.

    Pour plus d’informations, reportez-vous à la section Ouvrir les paramètres du projet.

  2. Sélectionnez la connexion de service que vous souhaitez convertir pour utiliser Workload Identity.

  3. Sélectionnez Convertir.

    Capture d’écran montrant la sélection de la conversion pour les informations d’identification fédérées.

    Si vous disposez d’informations d’identification de principal de service existantes avec un secret expiré, vous voyez une autre option à convertir.

    Capture d’écran montrant l’option de conversion pour utiliser des informations d’identification fédérées lorsque vous avez un certificat expiré.

  4. Sélectionnez à nouveau Convertir pour confirmer que vous souhaitez créer une nouvelle connexion au service.

    La conversion peut prendre quelques minutes. Si vous souhaitez rétablir la connexion, vous devez la rétablir dans les sept jours.

Convertir plusieurs connexions de service Azure Resource Manager à l’aide d’un script

Utilisez un script pour mettre à jour plusieurs connexions de service à la fois afin d'utiliser la fédération d'identité de la charge de travail pour l'authentification.

Cet exemple de script PowerShell nécessite deux paramètres : Azure DevOps organization (exemple : https://dev.azure.com/fabrikam-tailspin) et Azure DevOps project (exemple : Space game web agent). Le script récupère ensuite les connexions de service associées à votre projet Azure DevOps et à votre organisation.

Lorsque vous convertissez des connexions de service pour utiliser la fédération d’identité de charge de travail, vous êtes invité à confirmer la mise à jour pour chaque connexion qui ne l’utilise pas déjà. À la confirmation, le script met à jour ces connexions de service via l’API REST Azure DevOps pour utiliser la fédération des identités de charge de travail.

Le script nécessite PowerShell 7.3 ou un version plus récente et Azure CLI pour s’exécuter. Enregistrez le script dans un .ps1 fichier et exécutez-le à l’aide de 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)'"
}

Rétablir une connexion de service Azure Resource Manager existante qui utilise un secret principal de service

Vous pouvez rétablir une connexion de service automatique convertie avec son secret pendant sept jours. Après sept jours, vous devrez créer manuellement un nouveau secret.

Si vous créez et convertissez manuellement votre connexion de service, vous ne pouvez pas la rétablir à l’aide de l’outil de connexion de service, car Azure DevOps n’est pas autorisé à modifier ses propres informations d’identification.

Pour rétablir une connexion de service :

  1. Dans le projet Azure DevOps, accédez à Pipelines>Connexions de service.

  2. Sélectionnez une connexion de service existante à rétablir.

  3. Sélectionnez Rétablir la conversion vers le schéma d'origine.

    Capture d’écran montrant la sélection de la restauration pour une identification fédérée.

  4. Sélectionnez à nouveau Revenir pour confirmer votre choix.

Créer une connexion au service Azure Resource Manager qui utilise un secret principal de service

Vous pouvez configurer une connexion de service pour vous authentifier auprès des ressources Azure à l’aide d’un secret de principal de service. Cette approche est utile lorsque vous devez limiter davantage les autorisations pour les ressources Azure auxquelles les utilisateurs accèdent via la connexion de service.

Vous pouvez choisir de configurer la connexion de service manuellement ou automatiquement. Il est recommandé d’utiliser l’approche automatique si vous vous êtes connecté en tant que propriétaire de l’organisation Azure Pipelines et de l’abonnement Azure, et que vous n’avez pas besoin de limiter davantage les autorisations pour les ressources Azure auxquelles les utilisateurs accèdent via la connexion de service.

Nous vous recommandons d’utiliser cette approche si tous les éléments suivants sont vrais pour votre scénario :

  • Vous êtes connecté en tant que propriétaire de l’organisation Azure Pipelines et de l’abonnement Azure.
  • Vous n’avez pas besoin de limiter davantage les autorisations pour les ressources Azure auxquelles les utilisateurs ont accès via la connexion de service.
  • Vous ne vous connectez pas à Azure Stack ou à un Azure Government Cloud.
  • Vous ne vous connectez pas à partir d’Azure DevOps Server 2019 ou de versions antérieures de Team Foundation Server.

Pour créer la connexion de service :

  1. Dans le projet Azure DevOps, accédez à Paramètres du projet>Connexions de service.

    Pour plus d’informations, reportez-vous à la section Ouvrir les paramètres du projet.

  2. Sélectionnez Nouvelle connexion de service, puis Azure Resource Manager et Suivant.

    Capture d’écran montrant la sélection d’Azure Resource Manager.

  3. Sélectionnez Principal de service (automatique) et Suivant.

    Capture d’écran montrant la sélection d’une méthode d’authentification de principal de service (automatique).

  4. Sélectionnez le niveau d’étendue. Sélectionnez Un abonnement, un groupe d’administration ou un espace de travail Machine Learning. Les groupes d’administration sont des conteneurs qui vous aident à gérer l’accès, la stratégie et la conformité dans plusieurs abonnements. Un espace de travail Machine Learning est destiné à créer des artefacts Machine Learning.

    • Pour l’étendue de l’abonnement, entrez les paramètres suivants :

      Paramètre Description
      ID d’abonnement Obligatoire. Entrez l’ID d’abonnement Azure.
      Nom d’abonnement Obligatoire. Entrez le nom de l’abonnement Azure.
    • Pour l’étendue du groupe d’administration, entrez les paramètres suivants, sélectionnez le groupe d’administration Azure.

    • Pour l’étendue de l’espace de travail Machine Learning, entrez les paramètres suivants :

      Paramètre Description
      ID d’abonnement Obligatoire. Entrez l’ID d’abonnement Azure.
      Nom d’abonnement Obligatoire. Entrez le nom de l’abonnement Azure.
      Groupe de ressources Obligatoire. Sélectionnez le groupe de ressources contenant l’espace de travail.
      Nom de l’espace de travail ML Obligatoire. Entrez le nom de l’espace de travail Azure Machine Learning existant.
      Emplacement de l’espace de travail ML Obligatoire. Entrez l’emplacement de l’espace de travail Azure Machine Learning existant.
  5. Saisissez un nom de connexion de service.

  6. Si vous le souhaitez, entrez une description de la connexion de service.

  7. Sélectionnez Accorder l’autorisation d’accès à tous les pipelines pour autoriser tous les pipelines à utiliser cette connexion de service. Si vous ne sélectionnez pas cette option, vous devez accorder manuellement l’accès à chaque pipeline qui utilise cette connexion de service.

  8. Cliquez sur Enregistrer.

Une fois la connexion de service créée :

  • Si vous utilisez l’éditeur classique, sélectionnez le nom de connexion que vous avez attribué dans le paramètre d’abonnement Azure de votre pipeline.
  • Si vous utilisez un fichier YAML, copiez le nom de la connexion dans votre code comme valeur pour azureSubscription.

Pour effectuer un déploiement sur une ressource Azure spécifique, ajoutez plus d’informations sur la ressource dans la tâche :

  • Si vous utilisez l’éditeur classique, sélectionnez les données à ajouter à la tâche. Par exemple, sélectionnez le nom App Service.
  • Si vous utilisez un fichier YAML, accédez à la ressource dans la Portail Azure. Copiez les données dont vous avez besoin et collez-les dans votre code de tâche. Par exemple, pour déployer une application web, copiez le nom de l’application App Service et collez-le comme valeur pour WebAppName dans la tâche YAML.

Remarque

Lorsque vous suivez cette approche, Azure DevOps se connecte à Microsoft Entra ID et crée une inscription d’application avec un secret valable trois mois. Lorsque la connexion au service est sur le point d’expirer, Microsoft Entra ID affiche ce message : Un certificat ou un secret va bientôt expirer. Créez-en un nouveau. Dans ce scénario, vous devez actualiser la connexion de service.

Pour actualiser une connexion de service, dans le portail Azure DevOps, modifiez la connexion, puis sélectionnez Vérifier. Une fois que vous avez enregistré la modification, la connexion de service est valide pendant trois mois.

Nous vous recommandons d’utiliser la fédération des identités de charge de travail au lieu de créer un secret. Si vous utilisez la fédération des identités de charge de travail, vous n’avez pas besoin de permuter les secrets, et l’inscription de l’application conserve son objectif prévu. Pour commencer à utiliser la fédération des identités de charge de travail, accédez à la page détails de la connexion de service, puis sélectionnez Convertir. La connexion de service est convertie pour utiliser la fédération des identités de charge de travail plutôt qu'un secret. Pour plus d’informations, consultez Convertir une connexion de service Azure Resource Manager existante pour utiliser la fédération des identités de charge de travail.

Pour plus d’informations, consultez Résoudre les problèmes liés à une connexion de service Azure Resource Manager.

Si vous rencontrez des problèmes à l’aide de cette approche (par exemple, aucun abonnement affiché dans la liste déroulante) ou si vous souhaitez limiter les autorisations utilisateur, vous pouvez plutôt utiliser un principal de service ou une machine virtuelle avec une identité managée.

Créer une connexion de service Azure Resource Manager qui utilise un principal de service existant

Si vous souhaitez utiliser un ensemble prédéfini d’autorisations d’accès et que vous n’avez pas encore défini de principal de service à cette fin, suivez l’un de ces tutoriels pour créer un nouveau principal de service :

Pour créer une connexion de service qui utilise un principal de service existant :

  1. Dans le projet Azure DevOps, accédez à Paramètres du projet>Connexions de service.

    Pour plus d’informations, reportez-vous à la section Ouvrir les paramètres du projet.

  2. Sélectionnez Nouvelle connexion de service, puis Azure Resource Manager et Suivant.

    Capture d’écran montrant la sélection d’Azure Resource Manager.

  3. Sélectionnez Principal de service (manuel) et Suivant.

    Capture d’écran montrant la sélection d’une méthode d’authentification de principal de service (manuel).

  4. Dans la boîte de dialogue Nouvelle connexion de service Azure, sélectionnez l’environnement. Si vous sélectionnez Azure Stack, entrez l’URL de l’environnement, qui est similaire https://management.local.azurestack.externalà .

  5. Sélectionnez le niveau d’étendue. Sélectionnez Un abonnement, un groupe d’administration ou un espace de travail Machine Learning. Les groupes d’administration sont des conteneurs qui vous aident à gérer l’accès, la stratégie et la conformité dans plusieurs abonnements. Un espace de travail Machine Learning est destiné à créer des artefacts Machine Learning.

    • Pour l’étendue de l’abonnement, entrez les paramètres suivants :

      Paramètre Description
      ID d’abonnement Obligatoire. Entrez l’ID d’abonnement Azure.
      Nom d’abonnement Obligatoire. Entrez le nom de l’abonnement Azure.
    • Pour l’étendue du groupe d’administration, entrez les paramètres suivants :

      Paramètre Description
      ID du groupe d’administration Obligatoire. Entrez l’ID du groupe d’administration Azure.
      Nom du groupe d’administration Obligatoire. Entrez le nom du groupe d’administration Azure.
    • Pour l’étendue de l’espace de travail Machine Learning, entrez les paramètres suivants :

      Paramètre Description
      ID d’abonnement Obligatoire. Entrez l’ID d’abonnement Azure.
      Nom d’abonnement Obligatoire. Entrez le nom de l’abonnement Azure.
      Groupe de ressources Obligatoire. Sélectionnez le groupe de ressources contenant l’espace de travail.
      Nom de l’espace de travail ML Obligatoire. Entrez le nom de l’espace de travail Azure Machine Learning existant.
      Emplacement de l’espace de travail ML Obligatoire. Entrez l’emplacement de l’espace de travail Azure Machine Learning existant.
  6. Dans la section Authentification , entrez ou sélectionnez les paramètres suivants :

    Paramètre Description
    ID de principal de service Obligatoire. Entrez l’ID du principal de service.
    Informations d'identification Sélectionnez Clé ou certificat du principal de service. Si vous avez sélectionné la clé du principal de service, entrez la clé (mot de passe). Si vous avez sélectionné Certificat, entrez le certificat.
    Identifiant du locataire Obligatoire. Entrez l’ID du client.
    Vérifier Sélectionnez cette option pour valider les paramètres que vous avez entrés.
  7. Dans la section Détails, entrez les paramètres suivants :

    Paramètre Description
    Nom de connexion Obligatoire. Nom sous lequel vous faites référence à cette connexion de service dans les propriétés des tâches. Autre que le nom de votre abonnement Azure.
    Description facultatif. Entrez une description de la connexion de service.
    Sécurité Sélectionnez Accorder l’autorisation d’accès à tous les pipelines pour autoriser tous les pipelines à utiliser cette connexion de service. Si vous ne sélectionnez pas cette option, vous devez accorder manuellement l’accès à chaque pipeline qui utilise cette connexion de service.
  8. Sélectionnez Vérifier et enregistrer pour valider et créer la connexion de service.

Une fois la connexion de service créée :

  • Si vous utilisez la connexion de service dans l’interface utilisateur, sélectionnez le nom de connexion que vous avez attribué dans le paramètre d’abonnement Azure de votre pipeline.
  • Si vous utilisez la connexion de service dans un fichier YAML, copiez le nom de la connexion et collez-le dans votre code comme valeur pour azureSubscription.

Si nécessaire, modifiez le principal de service pour exposer les autorisations appropriées.

Pour plus d’informations sur l’authentification à l’aide d’un principal de service, consultez Utiliser le contrôle d’accès en fonction du rôle pour gérer l’accès à vos ressources d’abonnement Azure ou le billet de blog Automatiser un déploiement de groupe de ressources Azure à l’aide d’un principal de service dans Visual Studio.

Pour plus d’informations, consultez Résoudre les problèmes liés à des connexions de service Azure Resource Manager.

Créer une connexion de service Azure Resource Manager à une machine virtuelle qui utilise une identité managée

Remarque

Pour utiliser une identité managée pour vous authentifier, vous devez utiliser un agent auto-hébergé sur une machine virtuelle Azure.

Vous pouvez configurer des agents auto-hébergés sur des machines virtuelles Azure pour utiliser une identité managée Azure dans l’ID Microsoft Entra. Dans ce scénario, vous utilisez l’identité managée affectée par le système (principal de service) pour accorder aux agents l’accès à n’importe quelle ressource Azure qui prend en charge l’ID Microsoft Entra, tel qu’une instance d’Azure Key Vault.

  1. Dans le projet Azure DevOps, accédez à Paramètres du projet>Connexions de service.

    Pour plus d’informations, reportez-vous à la section Ouvrir les paramètres du projet.

  2. Sélectionnez Nouvelle connexion de service, puis Azure Resource Manager et Suivant.

    Capture d’écran montrant le choix d’un type de connexion de service.

  3. Sélectionnez Identité managée pour la méthode d’authentification.

    Capture d’écran montrant la sélection de la méthode d’authentification d’identité de service managée.

  4. Pour Environnement, sélectionnez le nom de l’environnement (Options cloud Azure, Azure Stack ou Government Cloud).

  5. Sélectionnez le niveau d’étendue. Sélectionnez Un abonnement, un groupe d’administration ou un espace de travail Machine Learning. Les groupes d’administration sont des conteneurs qui vous aident à gérer l’accès, la stratégie et la conformité dans plusieurs abonnements. Un espace de travail Machine Learning est destiné à créer des artefacts Machine Learning.

    • Pour l’étendue de l’abonnement, entrez les paramètres suivants :

      Paramètre Description
      ID d’abonnement Obligatoire. Entrez l’ID d’abonnement Azure.
      Nom d’abonnement Obligatoire. Entrez le nom de l’abonnement Azure.
    • Pour l’étendue du groupe d’administration, entrez les paramètres suivants :

      Paramètre Description
      ID du groupe d’administration Obligatoire. Entrez l’ID du groupe d’administration Azure.
      Nom du groupe d’administration Obligatoire. Entrez le nom du groupe d’administration Azure.
    • Pour l’étendue de l’espace de travail Machine Learning, entrez les paramètres suivants :

      Paramètre Description
      ID d’abonnement Obligatoire. Entrez l’ID d’abonnement Azure.
      Nom d’abonnement Obligatoire. Entrez le nom de l’abonnement Azure.
      Groupe de ressources Obligatoire. Sélectionnez le groupe de ressources contenant l’espace de travail.
      Nom de l’espace de travail ML Obligatoire. Entrez le nom de l’espace de travail Azure Machine Learning existant.
      Emplacement de l’espace de travail ML Obligatoire. Entrez l’emplacement de l’espace de travail Azure Machine Learning existant.
  6. Entrez l’ID de locataire.

  7. Entrer le nom de la connexion de service.

  8. Si vous le souhaitez, entrez une description de la connexion de service.

  9. Sélectionnez Accorder l’autorisation d’accès à tous les pipelines pour autoriser tous les pipelines à utiliser cette connexion de service. Si vous ne sélectionnez pas cette option, vous devez accorder manuellement l’accès à chaque pipeline qui utilise cette connexion de service.

  10. Cliquez sur Enregistrer.

  11. Une fois la connexion de service créée :

    • Si vous utilisez la connexion de service dans l’interface utilisateur, sélectionnez le nom de connexion que vous avez attribué dans le paramètre d’abonnement Azure de votre pipeline.
    • Si vous utilisez la connexion de service dans un fichier YAML, copiez le nom de la connexion dans votre code comme valeur pour azureSubscription.
  12. Vérifiez que la machine virtuelle (agent) dispose des autorisations appropriées.

    Par exemple, si votre code doit appeler Azure Resource Manager, attribuez à la machine virtuelle le rôle approprié en utilisant le contrôle d'accès basé sur le rôle (RBAC) dans Microsoft Entra ID.

    Pour plus d’informations, consultez Comment utiliser des identités managées pour les ressources Azure ? et Utiliser le contrôle d’accès en fonction du rôle pour gérer l’accès à vos ressources d’abonnement Azure.

Pour plus d’informations sur le processus, consultez Résoudre les problèmes de connexions de service Azure Resource Manager.

Créer une connexion de service à l’aide d’un profil de publication

Vous pouvez créer une connexion de service à l’aide d’un profil de publication. Vous pouvez utiliser un profil de publication pour créer une connexion de service à azure App Service.

  1. Dans le projet Azure DevOps, accédez à Paramètres du projet>Connexions de service.

    Pour plus d’informations, reportez-vous à la section Ouvrir les paramètres du projet.

  2. Sélectionnez Nouvelle connexion de service, puis Azure Resource Manager et Suivant.

    Capture d’écran de la sélection d’Azure Resource Manager.

  3. Sélectionnez Publier le profil pour la méthode d’authentification, puis sélectionnez Suivant.

    Capture d’écran de la sélection de méthode d’authentification de profil de publication.

  4. Entrez les paramètres suivants :

    Paramètre Description
    Abonnement Obligatoire. Sélectionnez un abonnement Azure existant. Si aucun abonnement ni aucune instance Azure n'apparaît, consultez Résoudre les problèmes de connexions de service Azure Resource Manager.
    WebApp Obligatoire. Entrez le nom de l’application Azure App Service.
    Nom de la connexion de service Obligatoire. Nom sous lequel vous faites référence à cette connexion de service dans les propriétés des tâches. Autre que le nom de votre abonnement Azure.
    Description facultatif. Description de la connexion de service.
  5. Sélectionnez Accorder l’autorisation d’accès à tous les pipelines pour autoriser tous les pipelines à utiliser cette connexion de service. Si vous ne sélectionnez pas cette option, vous devez accorder manuellement l’accès à chaque pipeline qui utilise cette connexion de service.

  6. Cliquez sur Enregistrer.

Une fois la connexion de service créée :

  • Si vous utilisez la connexion de service dans l’interface utilisateur, sélectionnez le nom de connexion que vous avez attribué dans le paramètre d’abonnement Azure de votre pipeline.
  • Si vous utilisez la connexion de service dans un fichier YAML, copiez le nom de la connexion et collez-le dans votre code comme valeur pour azureSubscription.

Se connecter à un cloud Azure Government

Pour plus d’informations sur la connexion à un cloud Azure Government, consultez Connecter à partir d’Azure Pipelines (Cloud Azure Government).

Se connecter à Azure Stack

Pour plus d’informations sur la connexion à Azure Stack, consultez ces articles :

Aide et support