Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
À compter du 1er mai 2025, Azure AD B2C ne sera plus disponible pour les nouveaux clients. Pour plus d’informations, consultez notre FAQ.
Azure Pipelines prend en charge l’intégration continue (CI) et la livraison continue (CD) pour tester, générer et livrer un code à n’importe quelle cible. Cet article explique comment automatiser le processus de déploiement des stratégies personnalisées Azure Active Directory B2C (Azure AD B2C) à l’aide d’Azure Pipelines.
Important
La gestion de stratégies personnalisées Azure AD B2C avec Azure Pipelines utilise actuellement des opérations en préversion disponibles sur le point de terminaison /beta
de l’API Microsoft Graph. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour plus d’informations, consultez la référence du point de terminaison bêta de l’API REST Microsoft Graph.
Conditions préalables
- Suivez les étapes de la prise en main des stratégies personnalisées dans Active Directory B2C.
- Si vous n’avez pas créé d’organisation DevOps, créez-en une en suivant les instructions de la section S’inscrire, connectez-vous à Azure DevOps.
Inscrire une application pour les tâches de gestion
Vous utilisez le script PowerShell pour déployer les stratégies Azure AD B2C. Avant que le script PowerShell puisse interagir avec l’API Microsoft Graph, créez une inscription d’application dans votre locataire Azure AD B2C. Si ce n’est déjà fait, inscrivez une application Microsoft Graph.
Pour que le script PowerShell puisse accéder aux données dans MS Graph, accordez à l’application enregistrée les autorisations d’application appropriées. Accordez l’autorisation Microsoft Graph>Stratégie>Policy.ReadWrite.TrustFramework dans Autorisations de l’API de l’inscription d’application.
Configurer un référentiel Azure
Une fois qu’une application Microsoft Graph est enregistrée, vous êtes prêt à configurer un référentiel pour vos fichiers de stratégie.
- Connectez-vous à votre organisation Azure DevOps.
- Créez un nouveau projet ou sélectionnez un projet existant.
- Dans votre projet, accédez à Dépôts, puis sélectionnez Fichiers.
- Sélectionnez un référentiel existant ou créez-en un.
- Dans le répertoire racine de votre dépôt, créez un dossier nommé
B2CAssets
. Ajoutez vos fichiers de stratégie personnalisés Azure AD B2C au dossier B2CAssets . - Dans le répertoire racine de votre dépôt, créez un dossier nommé
Scripts
. Créez un fichier PowerShell DeployToB2C.ps1. Collez le script PowerShell suivant dans DeployToB2C.ps1. - Validez et poussez les modifications.
Le script suivant acquiert un jeton d’accès à partir de Microsoft Entra ID. Avec le jeton, le script appelle l’API MS Graph pour télécharger les politiques dans le dossier B2CAssets . Vous pouvez également modifier le contenu de la politique avant de la télécharger. Par exemple, remplacez le tenant-name.onmicrosoft.com
par le nom de votre locataire.
[Cmdletbinding()]
Param(
[Parameter(Mandatory = $true)][string]$ClientID,
[Parameter(Mandatory = $true)][string]$ClientSecret,
[Parameter(Mandatory = $true)][string]$TenantId,
[Parameter(Mandatory = $true)][string]$Folder,
[Parameter(Mandatory = $true)][string]$Files
)
try {
$body = @{grant_type = "client_credentials"; scope = "https://graph.microsoft.com/.default"; client_id = $ClientID; client_secret = $ClientSecret }
$response = Invoke-RestMethod -Uri https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token -Method Post -Body $body
$token = $response.access_token
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Content-Type", 'application/xml')
$headers.Add("Authorization", 'Bearer ' + $token)
# Get the list of files to upload
$filesArray = $Files.Split(",")
Foreach ($file in $filesArray) {
$filePath = $Folder + $file.Trim()
# Check if file exists
$FileExists = Test-Path -Path $filePath -PathType Leaf
if ($FileExists) {
$policycontent = Get-Content $filePath -Encoding UTF8
# Optional: Change the content of the policy. For example, replace the tenant-name with your tenant name.
# $policycontent = $policycontent.Replace("your-tenant.onmicrosoft.com", "contoso.onmicrosoft.com")
# Get the policy name from the XML document
$match = Select-String -InputObject $policycontent -Pattern '(?<=\bPolicyId=")[^"]*'
If ($match.matches.groups.count -ge 1) {
$PolicyId = $match.matches.groups[0].value
Write-Host "Uploading the" $PolicyId "policy..."
$graphuri = 'https://graph.microsoft.com/beta/trustframework/policies/' + $PolicyId + '/$value'
$content = [System.Text.Encoding]::UTF8.GetBytes($policycontent)
$response = Invoke-RestMethod -Uri $graphuri -Method Put -Body $content -Headers $headers -ContentType "application/xml; charset=utf-8"
Write-Host "Policy" $PolicyId "uploaded successfully."
}
}
else {
$warning = "File " + $filePath + " couldn't be not found."
Write-Warning -Message $warning
}
}
}
catch {
Write-Host "StatusCode:" $_.Exception.Response.StatusCode.value__
$_
$streamReader = [System.IO.StreamReader]::new($_.Exception.Response.GetResponseStream())
$streamReader.BaseStream.Position = 0
$streamReader.DiscardBufferedData()
$errResp = $streamReader.ReadToEnd()
$streamReader.Close()
$ErrResp
exit 1
}
exit 0
Configurer Azure Pipelines
Une fois votre référentiel initialisé et rempli avec vos fichiers de règles personnalisés, vous êtes prêt à configurer le pipeline de mise en production. Pour créer un pipeline, procédez comme suit :
- Dans votre projet, sélectionnez Pipelines>Releases>New pipeline.
- Sous Sélectionner un modèle, sélectionnez Travail vide, puis Appliquer.
- Entrez un nom d’étape, par exemple DeployCustomPolicies, puis fermez le volet.
- Sélectionnez Ajouter un artefact, puis sous Type de source, sélectionnez Référentiel Azure.
- Pour le projet, sélectionnez votre projet.
- Sélectionnez la source (référentiel) qui contient le dossier Scripts .
- Sélectionnez une branche par défaut, par exemple master.
- Conservez le paramètre Version par défaut de La dernière de la branche par défaut.
- Entrez un alias Source pour le référentiel. Par exemple, policyRepo.
- Sélectionnez Ajouter
- Renommez le pipeline pour qu'il reflète son objectif. Par exemple, Déployer un pipeline de stratégies personnalisées.
- Sélectionnez Enregistrer pour enregistrer la configuration du pipeline.
Configurer les variables de pipeline
Les variables de pipeline vous offrent un moyen pratique d’obtenir des bits de données clés dans différentes parties du pipeline. Les variables suivantes fournissent des informations sur votre environnement Azure AD B2C.
Nom | Valeur |
---|---|
clientId |
ID de l’application (client) de l’application que vous avez enregistrée précédemment. |
clientSecret |
Valeur de la clé secrète client que vous avez créée précédemment. Changez le type de variable en secret (sélectionnez l’icône de verrouillage). |
tenantId |
your-b2c-tenant.onmicrosoft.com , où your-b2c-tenant est le nom de votre locataire Azure AD B2C. |
Pour ajouter des variables de pipeline, procédez comme suit :
- Dans votre pipeline, sélectionnez l’onglet Variables .
- Sous Variables de pipeline, ajoutez la variable ci-dessus avec leurs valeurs.
- Sélectionnez Enregistrer pour enregistrer les variables.
Ajouter des tâches de pipeline
Une tâche de pipeline est un script pré-packagé qui effectue une action. Ajoutez une tâche qui appelle le script PowerShell DeployToB2C.ps1 .
Dans le pipeline que vous avez créé, sélectionnez l’onglet Tâches .
Sélectionnez Travail de l’agent, puis sélectionnez le signe plus (+) pour ajouter une tâche au travail de l’agent.
Recherchez et sélectionnez PowerShell. Ne sélectionnez pas « Azure PowerShell », « PowerShell sur les machines cibles » ou une autre entrée PowerShell.
Sélectionnez la tâche de script PowerShell nouvellement ajoutée.
Entrez les valeurs suivantes pour la tâche de script PowerShell :
Version de la tâche : 2.*
Nom d’affichage : nom de la stratégie que cette tâche doit charger. Par exemple, B2C_1A_TrustFrameworkBase.
Type : Chemin d’accès au fichier
Chemin du script : sélectionnez les points de suspension (...), accédez au dossier Scripts , puis sélectionnez le fichier DeployToB2C.ps1 .
Arguments : Entrez le script PowerShell suivant.
-ClientID $(clientId) -ClientSecret $(clientSecret) -TenantId $(tenantId) -Folder $(System.DefaultWorkingDirectory)/policyRepo/B2CAssets/ -Files "TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml,ProfileEdit.xml,PasswordReset.xml"
Le
-Files
paramètre est une liste de fichiers de règles à déployer, avec des délimiteurs de virgules. Mettez à jour la liste avec vos fichiers de stratégie.Important
Assurez-vous que les stratégies sont téléchargées dans le bon ordre. Tout d’abord, la stratégie de base, la stratégie d’extensions, puis les stratégies de la partie de confiance. Par exemple :
TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml
.
Sélectionnez Enregistrer pour enregistrer la tâche de l’agent.
Testez votre pipeline
Pour tester votre pipeline de déploiement :
- Sélectionnez Pipelines , puis Releases.
- Sélectionnez le pipeline que vous avez créé précédemment, par exemple DeployCustomPolicies.
- Sélectionnez Créer une version, puis sélectionnez Créer pour mettre la version en file d’attente.
Vous devez voir une bannière de notification indiquant qu’une version a été mise en file d’attente. Pour afficher son état, sélectionnez le lien dans la bannière de notification ou sélectionnez-le dans la liste de l’onglet Versions .
Étapes suivantes
Pour en savoir plus :