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 disposez de plusieurs options d’authentification pour vous connecter à Azure en utilisant 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.

Pour plus d’informations, veuillez consulter la Fédération d’identité de charge de travail.

Créer une connexion de service avec 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 sélectionnez Azure Resource Manager et Suivant.

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

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

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

  4. Sélectionnez un Niveau de portée. Sélectionnez Abonnement, Groupe d’administration, ou 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 un lieu pour créer des artefacts de machine learning.

    • Pour la portée Abonnement, entrez les paramètres suivants :

      Paramètre Description
      Abonnement Obligatoire. Sélectionnez l’abonnement Azure.
      Groupe de ressources Obligatoire. Sélectionnez le groupe de ressource Azure.
    • Pour la portée Groupe d’administration, sélectionnez le groupe d’administration Azure.

    • Pour la portée 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. Optionnellement, entrez une description pour la connexion de service.

  7. Sélectionnez Accorder la permission d’accès à tous les pipelines pour permettre à tous les pipelines d’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 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 sélectionnez Azure Resource Manager et Suivant.

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

  3. Sélectionnez Fédération d’identité de charge de travail (manuel) et Suivant.

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

  4. Dans Étape 1 : Paramètres de base :

    1. Saisissez un Nom de connexion de service.
    2. Entrez éventuellement une Description.
    3. Sélectionnez Accorder la permission d’accès à tous les pipelines pour permettre à tous les pipelines d’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. Dans Étape 2 : Détails du principal de service :

    Étape 2 : Détails du principal de service contient 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’identifiant du sujet.
    Environment Obligatoire. Choisissez un environnement cloud auquel se connecter. Si vous sélectionnez Azure Stack, entrez l’URL de l’environnement, qui est quelque chose comme https://management.local.azurestack.external.
    1. Sélectionnez le Niveau de portée. Sélectionnez Abonnement, Groupe d’administration, ou 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 un lieu pour créer des artefacts de machine learning.

      • Pour la portée Abonnement, entrez les paramètres suivants :

        Paramètre Description
        ID d’abonnement Obligatoire. Entrez l’ID de l’abonnement Azure.
        Nom d’abonnement Obligatoire. Entrez le nom de l’abonnement Azure.
      • Pour la portée 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 la portée Espace de travail Machine Learning, entrez les paramètres suivants :

        Paramètre Description
        ID d’abonnement Obligatoire. Entrez l’ID de l’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 la permission d’accès à tous les pipelines pour permettre à tous les pipelines d’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 avez des informations d’identification du principal de service existantes avec un secret expiré, vous verrez une option différente pour 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.

Lors de la conversion de connexions de service pour utiliser la fédération d’identité de charge de travail, il vous sera demandé de confirmer la mise à jour pour chaque connexion ne l’utilisant pas déjà. Après confirmation, le script met à jour ces connexions de service via l’API REST d’Azure DevOps pour utiliser la fédération d’identité 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 fichier .ps1 et exécutez-le en utilisant 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 s’authentifier auprès des ressources Azure en utilisant 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 sélectionnez 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 de la méthode d’authentification par principal de service (automatique).

  4. Sélectionnez le Niveau de portée. Sélectionnez Abonnement, Groupe d’administration, ou 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 un lieu pour créer des artefacts de machine learning.

    • Pour la portée Abonnement, entrez les paramètres suivants :

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

    • Pour la portée Espace de travail Machine Learning, entrez les paramètres suivants :

      Paramètre Description
      ID d’abonnement Obligatoire. Entrez l’ID de l’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. Optionnellement, entrez une description pour la connexion de service.

  7. Sélectionnez Accorder la permission d’accès à tous les pipelines pour permettre à tous les pipelines d’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 avec cette approche (par exemple, aucun abonnement n’est affiché dans la liste déroulante) ou si vous souhaitez limiter les autorisations des utilisateurs, 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 sélectionnez 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 de la méthode d’authentification par 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 quelque chose comme https://management.local.azurestack.external.

  5. Sélectionnez le Niveau de portée. Sélectionnez Abonnement, Groupe d’administration, ou 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 un lieu pour créer des artefacts de machine learning.

    • Pour la portée Abonnement, entrez les paramètres suivants :

      Paramètre Description
      ID d’abonnement Obligatoire. Entrez l’ID de l’abonnement Azure.
      Nom d’abonnement Obligatoire. Entrez le nom de l’abonnement Azure.
    • Pour la portée 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 la portée Espace de travail Machine Learning, entrez les paramètres suivants :

      Paramètre Description
      ID d’abonnement Obligatoire. Entrez l’ID de l’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é du principal de service ou Certificat. Si vous avez sélectionné 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 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 la permission d’accès à tous les pipelines pour permettre à tous les pipelines d’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.

  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 sélectionnez 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 de la méthode d’authentification par 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 quelque chose comme https://management.local.azurestack.external.

  5. Sélectionnez le Niveau de portée. Sélectionnez Abonnement ou Groupe d’administration. Les groupes d’administration sont des conteneurs qui vous aident à gérer l’accès, la stratégie et la conformité dans plusieurs abonnements.

    • Pour la portée Abonnement, entrez les paramètres suivants :

      Paramètre Description
      ID d’abonnement Obligatoire. Entrez l’ID de l’abonnement Azure.
      Nom d’abonnement Obligatoire. Entrez le nom de l’abonnement Azure.
    • Pour la portée 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.
  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é du principal de service ou Certificat. Si vous avez sélectionné 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 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 la permission d’accès à tous les pipelines pour permettre à tous les pipelines d’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.

  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.

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

  3. Dans la boîte de dialogue Ajouter une connexion au service Azure Resource Manager, remplissez les champs comme suit :

    Capture d'écran de l'ajout d'une connexion au service Azure Resource Manager.

    1. Saisissez le nom de la connexion.

    2. Sélectionnez l'environnement. Si vous sélectionnez Azure Stack, entrez l’URL de l’environnement, qui est quelque chose comme https://management.local.azurestack.external.

    3. Sélectionnez le niveau d'étendue, l'abonnement ou le groupe de gestion. Les groupes d’administration sont des conteneurs qui vous aident à gérer l’accès, la stratégie et la conformité dans plusieurs abonnements.

      • Pour la portée Abonnement, entrez les paramètres suivants :

        Paramètre Description
        ID d’abonnement Obligatoire. Entrez l’ID de l’abonnement Azure.
        Nom d’abonnement Obligatoire. Entrez le nom de l’abonnement Azure.
      • Pour la portée 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.
    4. Saisissez l'ID du principal du service.

    5. Sélectionnez le type de justificatif :

      • Clé du principal du service : Saisissez la clé du principal de service (mot de passe).
      • Certificat : Saisissez le contenu du fichier .perm, y compris les sections relatives au certificat et à la clé privée.
    6. Entrez l’ID du client.

    7. Sélectionnez Vérifier la connexion pour valider la connexion au service.

    8. En option, sélectionnez Autoriser tous les pipelines à utiliser cette connexion. Si vous ne sélectionnez pas cette option, vous devez accorder manuellement l’accès à chaque pipeline qui utilise cette connexion de service.

    9. Sélectionnez Enregistrer pour 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 VM qui utilise une identité managée

Remarque

Pour utiliser une identité managée pour l’authentification, vous devez utiliser un agent auto-hébergé sur une machine virtuelle (VM) Azure.

Vous pouvez configurer des agents auto-hébergés sur des machines virtuelles Azure pour utiliser une identité managée Azure dans Microsoft Entra ID. Dans ce scénario, vous utilisez l’identité managée attribuée par le système (principal de service) pour accorder aux agents l’accès à toute ressource Azure qui prend en charge Microsoft Entra ID, comme 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 sélectionnez 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 par identité managée.

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

  5. Sélectionnez le Niveau de portée. Sélectionnez Abonnement, Groupe d’administration, ou 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 un lieu pour créer des artefacts de machine learning.

    • Pour la portée Abonnement, entrez les paramètres suivants :

      Paramètre Description
      ID d’abonnement Obligatoire. Entrez l’ID de l’abonnement Azure.
      Nom d’abonnement Obligatoire. Entrez le nom de l’abonnement Azure.
    • Pour la portée 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 la portée Espace de travail Machine Learning, entrez les paramètres suivants :

      Paramètre Description
      ID d’abonnement Obligatoire. Entrez l’ID de l’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 du client.

  7. Entrer le nom de la connexion de service.

  8. Optionnellement, entrez une description pour la connexion de service.

  9. Sélectionnez Accorder la permission d’accès à tous les pipelines pour permettre à tous les pipelines d’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 en utilisant un profil de publication

Vous pouvez créer une connexion de service en utilisant un profil de publication. Vous pouvez utiliser un profil de publication pour créer une connexion de service à un service d’application Azure.

  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 sélectionnez Azure Resource Manager et Suivant.

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

  3. Sélectionnez Profil de publication pour la méthode d’authentification et sélectionnez Suivant.

    Capture d’écran de la sélection de la méthode d’authentification par 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 du service d’application Azure.
    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. La description de la connexion de service.
  5. Sélectionnez Accorder la permission d’accès à tous les pipelines pour permettre à tous les pipelines d’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