Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Vanaf 1 mei 2025 is Azure AD B2C niet meer beschikbaar voor nieuwe klanten. Meer informatie vindt u in onze veelgestelde vragen.
Azure Pipelines biedt ondersteuning voor continue integratie (CI) en continue levering (CD) om voortdurend en consistent een code te testen, te bouwen en te verzenden naar elk doel. In dit artikel wordt beschreven hoe u het implementatieproces van aangepaste beleidsregels van Azure Active Directory B2C (Azure AD B2C) automatiseert met behulp van Azure Pipelines.
Belangrijk
Aangepast Azure AD B2C-beleid beheren met Azure Pipelines maakt momenteel gebruik van preview-bewerkingen die beschikbaar zijn op het Microsoft Graph API-eindpunt/beta
. Het gebruik van deze API's in productietoepassingen wordt niet ondersteund. Zie de naslaginformatie over de bèta-eindpunten van microsoft Graph REST API voor meer informatie.
Vereiste voorwaarden
- Voltooi de stappen in aangepaste beleidsregels in Active Directory B2C.
- Als u nog geen DevOps-organisatie hebt gemaakt, maakt u er een door de instructies in Registreren te volgen, meldt u zich aan bij Azure DevOps.
Een toepassing registreren voor beheertaken
U gebruikt PowerShell-script om het Azure AD B2C-beleid te implementeren. Voordat het PowerShell-script kan communiceren met de Microsoft Graph API, maakt u een toepassingsregistratie in uw Azure AD B2C-tenant. Als u dit nog niet hebt gedaan, registreert u een Microsoft Graph-toepassing.
Voor het PowerShell-script voor toegang tot gegevens in MS Graph verleent u de geregistreerde toepassing de relevante toepassingsmachtigingen. De machtiging Microsoft Graph>Policy>Policy.ReadWrite.TrustFramework is verleend binnen de API-machtigingen van de app-registratie.
Een Azure-opslagplaats configureren
Wanneer een Microsoft Graph-toepassing is geregistreerd, kunt u een opslagplaats voor uw beleidsbestanden configureren.
- Meld u aan bij uw Azure DevOps-organisatie.
- Maak een nieuw project of selecteer een bestaand project.
- Navigeer in uw project naar Opslagplaatsen en selecteer Bestanden.
- Selecteer een bestaande opslagplaats of maak er een.
- Maak in de hoofdmap van uw opslagplaats een map met de naam
B2CAssets
. Voeg uw aangepaste Azure AD B2C-beleidsbestanden toe aan de map B2CAssets . - Maak in de hoofdmap van uw opslagplaats een map met de naam
Scripts
. Maak een PowerShell-bestand DeployToB2C.ps1. Plak het volgende PowerShell-script in DeployToB2C.ps1. - Voer de wijzigingen door en push deze.
Het volgende script verkrijgt een toegangstoken van Microsoft Entra ID. Met het token roept het script de MS Graph API aan om het beleid in de map B2CAssets te uploaden . U kunt ook de inhoud van het beleid wijzigen voordat u het uploadt. Vervang bijvoorbeeld de tenant-name.onmicrosoft.com
door de naam van uw tenant.
[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
Azure Pipelines configureren
Nu uw opslagplaats is geïnitialiseerd en gevuld met uw aangepaste beleidsbestanden, kunt u de release-pijplijn instellen. Voer de volgende stappen uit om een pijplijn te maken:
- Selecteer in uw project Pijplijnen>Releases>Nieuwe pijplijn.
- Selecteer Onder Een sjabloon selecterenLege taak, en selecteer vervolgens Toepassen.
- Voer een fasenaam in, bijvoorbeeld DeployCustomPolicies, en sluit het deelvenster.
- Selecteer Een artefact toevoegen en selecteer onder BrontypeDe Azure-opslagplaats.
- Selecteer uw Project.
- Selecteer de bron (opslagplaats) die de map Scripts bevat.
- Selecteer een standaardvertakking, bijvoorbeeld master.
- Laat de standaardversie-instelling op Meest recent vanuit de standaardvertakking.
- Voer een bronalias in voor de opslagplaats. Bijvoorbeeld policyRepo.
- Selecteer Toevoegen
- Wijzig de naam van de pijplijn om de intentie ervan weer te geven. Implementeer bijvoorbeeld een aangepaste beleidspijplijn.
- Selecteer Opslaan om de pijplijnconfiguratie op te slaan.
Pijplijnvariabelen configureren
De pijplijnvariabelen bieden u een handige manier om belangrijke gegevens in verschillende delen van de pijplijn op te halen. De volgende variabelen bevatten informatie over uw Azure AD B2C-omgeving.
Naam | Waarde |
---|---|
clientId |
Toepassings-id (client) van de toepassing die u eerder hebt geregistreerd. |
clientSecret |
De waarde van het clientgeheim dat u eerder hebt gemaakt. Wijzig het variabeletype in geheim (selecteer het vergrendelingspictogram). |
tenantId |
your-b2c-tenant.onmicrosoft.com , waarbij uw b2c-tenant de naam is van uw Azure AD B2C-tenant. |
Voer de volgende stappen uit om pijplijnvariabelen toe te voegen:
- Selecteer in uw pijplijn het tabblad Variabelen .
- Voeg onder Pijplijnvariabelen de bovenstaande variabele toe met de bijbehorende waarden.
- Selecteer Opslaan om de variabelen op te slaan.
Pijplijntaken toevoegen
Een pijplijntaak is een vooraf verpakt script waarmee een actie wordt uitgevoerd. Voeg een taak toe waarmee het PowerShell-scriptDeployToB2C.ps1 wordt aangeroepen.
Selecteer het tabblad Taken in de pijplijn die u hebt gemaakt.
Selecteer agenttaak en selecteer vervolgens het plusteken (+) om een taak toe te voegen aan de agenttaak.
Zoek en selecteer PowerShell. Selecteer niet 'Azure PowerShell', 'PowerShell op doelcomputers' of een andere PowerShell-vermelding.
Selecteer zojuist toegevoegde PowerShell-scripttaak .
Voer de volgende waarden in voor de PowerShell-scripttaak:
Taakversie: 2.*
Weergavenaam: de naam van het beleid die deze taak moet uploaden. Bijvoorbeeld B2C_1A_TrustFrameworkBase.
Type: Bestandspad
Scriptpad: Selecteer het beletselteken (...), navigeer naar de map Scripts en selecteer vervolgens het DeployToB2C.ps1 bestand.
Argumenten: Voer het volgende PowerShell-script in.
-ClientID $(clientId) -ClientSecret $(clientSecret) -TenantId $(tenantId) -Folder $(System.DefaultWorkingDirectory)/policyRepo/B2CAssets/ -Files "TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml,ProfileEdit.xml,PasswordReset.xml"
De
-Files
parameter is een door komma's gescheiden lijst met beleidsbestanden die moeten worden geïmplementeerd. Werk de lijst bij met uw beleidsbestanden.Belangrijk
Zorg ervoor dat het beleid in de juiste volgorde wordt geüpload. Eerst het basisbeleid, het uitbreidingsbeleid en vervolgens het vertrouwende partijbeleid. Bijvoorbeeld:
TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml
.
Selecteer Opslaan om de agenttaak op te slaan.
Uw pijplijn testen
Uw release-pijplijn testen:
- Selecteer Pijplijnen en vervolgens Releases.
- Selecteer de pijplijn die u eerder hebt gemaakt, bijvoorbeeld DeployCustomPolicies.
- Selecteer Release maken en selecteer Vervolgens Maken om de release in de wachtrij te plaatsen.
U zou een meldingsbanner moeten zien waarin staat dat er een release in de wachtrij is geplaatst. Als u de status ervan wilt bekijken, selecteert u de koppeling in de meldingsbanner of selecteert u deze in de lijst op het tabblad Releases .
Volgende stappen
Meer informatie over: