Azure Pipelines ile özel ilkeler dağıtma
Azure Pipelines , bir kodu sürekli ve tutarlı bir şekilde test etmek, oluşturmak ve herhangi bir hedefe göndermek için sürekli tümleştirmeyi (CI) ve sürekli teslimi (CD) destekler. Bu makalede, Azure Pipelines kullanılarak Azure Active Directory B2C (Azure AD B2C) özel ilkelerinin dağıtım işleminin nasıl otomatikleştirildiği açıklanır.
Önemli
Azure Pipelines ile Azure AD B2C özel ilkelerini yönetmek şu anda Microsoft Graph API /beta
uç noktasında kullanılabilen önizleme işlemlerini kullanmaktadır. Bu API'lerin üretim uygulamalarında kullanımı desteklenmez. Daha fazla bilgi için bkz. Microsoft Graph REST API beta uç noktası başvurusu.
Önkoşullar
- Active Directory B2C'de özel ilkeleri kullanmaya başlama bölümündeki adımları tamamlayın.
- DevOps kuruluşu oluşturmadıysanız Kaydolma , Azure DevOps'ta oturum açma başlığındaki yönergeleri izleyerek bir kuruluş oluşturun.
Yönetim görevleri için uygulama kaydetme
Azure AD B2C ilkelerini dağıtmak için PowerShell betiğini kullanırsınız. PowerShell betiğinin Microsoft Graph API ile etkileşim kurabilmesi için önce Azure AD B2C kiracınızda bir uygulama kaydı oluşturun. Henüz yapmadıysanız bir Microsoft Graph uygulaması kaydedin.
PowerShell betiğinin MS Graph'taki verilere erişmesi için kayıtlı uygulamaya ilgili uygulama izinlerini verin. Uygulama kaydının API İzinleri içinde Microsoft Graph>İlkesi>İlkesi.ReadWrite.TrustFramework izni verildi.
Azure Depo'larını yapılandırma
Kayıtlı bir Microsoft Graph uygulamasıyla, ilke dosyalarınız için bir depo yapılandırmaya hazırsınız.
- Azure DevOps kuruluşunuzda oturum açın.
- Yeni bir proje oluşturun veya var olan bir projeyi seçin.
- Projenizde Depolar'a gidin ve Dosyalar'ı seçin.
- Mevcut bir depo seçin veya bir depo oluşturun.
- Deponuzun kök dizininde adlı
B2CAssets
bir klasör oluşturun. Azure AD B2C özel ilke dosyalarınızı B2CAssets klasörüne ekleyin. - Deponuzun kök dizininde adlı
Scripts
bir klasör oluşturun. DeployToB2C.ps1bir PowerShell dosyası oluşturun. Aşağıdaki PowerShell betiğini DeployToB2C.ps1yapıştırın. - Değişiklikleri işleme ve gönderme .
Aşağıdaki betik, Microsoft Entra kimliğinden bir erişim belirteci alır. Belirteçle betik, B2CAssets klasörüne ilkeleri yüklemek için MS Graph API çağırır. İlkeyi karşıya yüklemeden önce içeriğini de değiştirebilirsiniz. Örneğin, değerini tenant-name.onmicrosoft.com
kiracı adınız ile değiştirin.
[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'ı yapılandırma
Deponuz başlatıldığında ve özel ilke dosyalarınızla doldurularak yayın işlem hattını ayarlamaya hazırsınız demektir. İşlem hattı oluşturmak için şu adımları izleyin:
- Projenizde İşlem Hatları Yayınları>>Yeni işlem hattı'yı seçin.
- Şablon seçin'in altında İşi boşalt'ı ve ardından Uygula'yı seçin.
- Bir Aşama adı girin( örneğin DeployCustomPolicies) ve ardından bölmeyi kapatın.
- Yapıt ekle'yi seçin ve Kaynak türü'nin altında Azure Deposu'na tıklayın.
- Proje için projenizi seçin.
- Betikler klasörünü içeren Kaynak (depo) öğesini seçin.
- Varsayılan dal (örneğin, ana dal) seçin.
- Varsayılandaldan En Son'un Varsayılan sürüm ayarını değiştirmeyin.
- Depo için bir Kaynak diğer adı girin. Örneğin , policyRepo.
- Ekle’yi seçin
- İşlem hattını amacını yansıtacak şekilde yeniden adlandırın. Örneğin, Özel İlke İşlem Hattı Dağıtma.
- İşlem hattı yapılandırmasını kaydetmek için Kaydet'i seçin.
İşlem hattı değişkenlerini yapılandırma
İşlem hattı değişkenleri, önemli veri bitlerini işlem hattının çeşitli bölümlerine almak için kullanışlı bir yol sağlar. Aşağıdaki değişkenler Azure AD B2C ortamınız hakkında bilgi sağlar.
Name | Değer |
---|---|
clientId |
Daha önce kaydettiğiniz uygulamanın uygulama (istemci) kimliği. |
clientSecret |
Daha önce oluşturduğunuz istemci gizli dizisinin değeri. Değişken türünü gizli dizi olarak değiştirin (kilit simgesini seçin). |
tenantId |
your-b2c-tenant.onmicrosoft.com , burada b2c-kiracınız Azure AD B2C kiracınızın adıdır. |
İşlem hattı değişkenleri eklemek için şu adımları izleyin:
- İşlem hattınızda Değişkenler sekmesini seçin.
- İşlem hattı değişkenleri'nin altında, değerleriyle birlikte yukarıdaki değişkeni ekleyin.
- Değişkenleri kaydetmek için Kaydet'i seçin.
İşlem hattı görevleri ekleme
İşlem hattı görevi, eylem gerçekleştiren önceden paketlenmiş bir betiktir. DeployToB2C.ps1 PowerShell betiğini çağıran bir görev ekleyin.
Oluşturduğunuz işlem hattında Görevler sekmesini seçin.
Aracı işi'ni seçin ve ardından artı işaretini (+) seçerek Aracı işine bir görev ekleyin.
PowerShell'i arayın ve seçin. "Azure PowerShell", "Hedef makinelerde PowerShell" veya başka bir PowerShell girişi seçmeyin.
Yeni eklenen PowerShell Betiği görevini seçin.
PowerShell Betiği görevi için aşağıdaki değerleri girin:
Görev sürümü: 2.*
Görünen ad: Bu görevin karşıya yüklemesi gereken ilkenin adı. Örneğin , B2C_1A_TrustFrameworkBase.
Tür: Dosya Yolu
Betik Yolu: Üç noktayı (...) seçin, Betikler klasörüne gidin ve DeployToB2C.ps1 dosyasını seçin.
Bağımsız değişkenler: Aşağıdaki PowerShell betiğini girin.
-ClientID $(clientId) -ClientSecret $(clientSecret) -TenantId $(tenantId) -Folder $(System.DefaultWorkingDirectory)/policyRepo/B2CAssets/ -Files "TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml,ProfileEdit.xml,PasswordReset.xml"
-Files
parametresi, dağıtılacak ilke dosyalarının virgülle sınırlayıcı listesidir. Listeyi ilke dosyalarınızla güncelleştirin.Önemli
İlkelerin doğru sırada yüklendiğinden emin olun. Önce temel ilke, uzantılar ilkesi, sonra bağlı olan taraf ilkeleri. Örneğin,
TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml
.
Aracı işini kaydetmek için Kaydet'i seçin.
İşlem hattınızı test etme
Yayın işlem hattınızı test etmek için:
- İşlem Hatları'nın ardından Yayınlar'ı seçin.
- Daha önce oluşturduğunuz işlem hattını seçin, örneğin DeployCustomPolicies.
- Yayını kuyruğa almak için Yayınoluştur'u ve ardından Oluştur'u seçin.
Bir yayının kuyruğa alındığını belirten bir bildirim başlığı görmeniz gerekir. Durumunu görüntülemek için bildirim başlığındaki bağlantıyı seçin veya Yayınlar sekmesindeki listeden bağlantıyı seçin.
Sonraki adımlar
Aşağıdakiler hakkında daha fazla bilgi edinin: