Sdílet prostřednictvím


Nasazení vlastních zásad pomocí Azure Pipelines

Důležité

Od 1. května 2025 už nebude Azure AD B2C k dispozici k nákupu pro nové zákazníky. Další informace najdete v našich nejčastějších dotazech.

Azure Pipelines podporuje kontinuální integraci (CI) a průběžné doručování (CD), které neustále a konzistentně testují, sestavují a odesílají kód do libovolného cíle. Tento článek popisuje, jak automatizovat proces nasazení vlastních zásad Azure Active Directory B2C (Azure AD B2C) pomocí nástroje Azure Pipelines.

Důležité

Správa vlastních zásad Azure AD B2C pomocí Azure Pipelines v současné době využívá operace ve verzi Preview, které jsou dostupné na koncovém bodu rozhraní Microsoft Graph API. Použití těchto rozhraní API v produkčních aplikacích se nepodporuje. Další informace najdete v referenčních informacích k beta koncovému bodu rozhraní Microsoft Graph REST API.

Požadavky

Registrace aplikace pro úlohy správy

Pomocí skriptu PowerShellu nasadíte zásady Azure AD B2C. Než skript PowerShellu může pracovat s rozhraním Microsoft Graph API, vytvořte registraci aplikace v tenantovi Azure AD B2C. Pokud jste to ještě neudělali, zaregistrujte aplikaci Microsoft Graph.

Aby skript PowerShellu přistupoval k datům v MS Graphu, udělte zaregistrované aplikaci příslušná oprávnění aplikace. Uděleno oprávnění Microsoft Graph>Policy>Policy.ReadWrite.TrustFramework v rámci oprávnění rozhraní API registrace aplikace.

Konfigurace repozitáře Azure

Když máte zaregistrovanou aplikaci Microsoft Graph, jste připraveni nakonfigurovat úložiště pro soubory zásad.

  1. Přihlaste se ke své organizaci Azure DevOps.
  2. Vytvořte nový projekt nebo vyberte existující projekt.
  3. V projektu přejděte na Úložiště a vyberte Soubory.
  4. Vyberte existující úložiště nebo vytvořte úložiště.
  5. V kořenovém adresáři úložiště vytvořte složku s názvem B2CAssets. Přidejte soubory vlastních zásad Azure AD B2C do složky B2CAssets .
  6. V kořenovém adresáři úložiště vytvořte složku s názvem Scripts. Vytvořte PowerShellový soubor DeployToB2C.ps1. Vložte následující skript PowerShellu do DeployToB2C.ps1.
  7. Potvrďte a nasdílte změny.

Následující skript získá přístupový token z ID Microsoft Entra. Pomocí tokenu skript volá rozhraní MS Graph API k nahrání zásad do složky B2CAssets . Před nahráním můžete také změnit obsah těchto zásad. Nahraďte například názvem vašeho tenanta tenant-name.onmicrosoft.com .

[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

Konfigurace Azure Pipelines

Jakmile máte úložiště inicializované a naplněné vašimi vlastními soubory zásad, jste připraveni nastavit proces vydání. Pokud chcete vytvořit pipeline, postupujte takto:

  1. V projektu vyberte Kanály>Vydání>Nový kanál.
  2. V části Vybrat šablonu vyberte Prázdnou úlohu a pak vyberte Použít.
  3. Zadejte název fáze, například DeployCustomPolicies, a pak podokno zavřete.
  4. Vyberte Přidat artefakt a v části Typ zdroje vyberte Úložiště Azure.
    1. V projectu vyberte projekt.
    2. Vyberte zdroj (úložiště), který obsahuje složku Skripty .
    3. Vyberte výchozí větev, například master.
    4. Ponechte nastavení Výchozí verze jako Nejnovější z výchozí větve.
    5. Zadejte alias zdroje pro úložiště. Například policyRepo.
  5. Vyberte Přidat.
  6. Přejmenujte kanál tak, aby odrážel jeho záměr. Můžete například nasadit kanál vlastních zásad.
  7. Vyberte Uložit a uložte konfiguraci kanálu.

Konfigurace proměnných pipeliny

Proměnné kanálu poskytují pohodlný způsob, jak získat klíčové bity dat do různých částí kanálu. Následující proměnné poskytují informace o prostředí Azure AD B2C.

Název Hodnota
clientId ID aplikace (klienta) aplikace, kterou jste zaregistrovali dříve.
clientSecret Hodnota tajného klíče klienta , který jste vytvořili dříve.
Změňte typ proměnné na tajný (vyberte ikonu zámku).
tenantId your-b2c-tenant.onmicrosoft.com, kde váš-b2c-tenant je název vašeho tenanta Azure AD B2C.

Pokud chcete přidat proměnné kanálu, postupujte takto:

  1. V pipeline vyberte kartu Proměnné.
  2. V části Proměnné kanálu přidejte výše uvedenou proměnnou se svými hodnotami.
  3. Vyberte Uložit pro uložení proměnných.

Přidání úloh pipeline

Úloha potrubí je předpřipravený skript, který provádí akci. Přidejte úlohu, která volá skript PowerShell DeployToB2C.ps1.

  1. V pipeline, který jste vytvořili, vyberte záložku Úkoly.

  2. Vyberte úlohu agenta a pak výběrem znaménka plus (+) přidejte úlohu do úlohy Agent.

  3. Vyhledejte a vyberte PowerShell. Nevybírejte Azure PowerShell, PowerShell na cílových počítačích ani jinou položku PowerShellu.

  4. Vyberte nově přidanou úlohu skriptu PowerShellu .

  5. Zadejte následující hodnoty pro úlohu skriptu PowerShellu:

    • Verze úlohy: 2.*

    • Zobrazovaný název: Název politiky, kterou má tento úkol uložit. Například B2C_1A_TrustFrameworkBase.

    • Typ: Cesta k souboru

    • Cesta ke skriptu: Vyberte výpustku (...), přejděte do složky Skripty a pak vyberte soubor DeployToB2C.ps1.

    • Argumenty: Zadejte následující skript PowerShellu.

      -ClientID $(clientId) -ClientSecret $(clientSecret) -TenantId $(tenantId) -Folder $(System.DefaultWorkingDirectory)/policyRepo/B2CAssets/ -Files "TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml,ProfileEdit.xml,PasswordReset.xml"
      

      Parametr -Files je čárkami oddělený seznam souborů zásad, které se mají nasadit. Aktualizujte seznam pomocí svých souborů zásad.

      Důležité

      Ujistěte se, že se zásady nahrají ve správném pořadí. Nejprve základní politiku, politiku rozšíření, a pak politiky závislé strany. Například: TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml.

  6. Výběrem možnosti Uložit uložte úlohu agenta.

Otestujte svůj pipeline

K otestování nasazovacího kanálu:

  1. Vyberte Kanály a potom Vydané verze.
  2. Vyberte kanál, který jste vytvořili dříve, například DeployCustomPolicies.
  3. Vyberte Vytvořit verzi a pak vyberte Vytvořit , abyste verzi zařadily do fronty.

Měl by se zobrazit notifikační pruh, který říká, že verze je ve frontě. Pokud chcete zobrazit jeho stav, vyberte odkaz v banneru s oznámením nebo ho vyberte v seznamu na kartě Vydané verze .

Další kroky

Další informace o: