Управление пользовательскими политиками Azure AD B2C с помощью Azure PowerShell
Azure PowerShell предоставляет несколько командлетов для управления пользовательскими политиками на основе командной строки и сценариев в клиенте Azure AD B2C. Узнайте, как использовать модуль Azure AD PowerShell, чтобы выполнить следующие действия.
- Перечисление пользовательских политик в клиенте Azure AD B2C
- Скачивание политики из клиента
- Обновление существующей политики путем перезаписи содержимого
- Отправка новой политики в клиент Azure AD B2C
- Удаление пользовательской политики из клиента
Предварительные требования
- Клиент Azure AD B2C и учетные данные для пользователя в каталоге с ролью администратора политики IEF B2C
- Пользовательские политики, отправленные в клиент
- Azure AD PowerShell для Graph — модуль предварительной версии
Подключение сеанса PowerShell к клиенту B2C
Для работы с пользовательскими политиками в клиенте Azure AD B2C сначала необходимо подключить сеанс PowerShell к клиенту с помощью команды Connect-AzureAD.
Выполните следующую команду, заменив {b2c-tenant-name}
именем клиента Azure AD B2C. Войдите под учетной записью, которой назначена роль администратора политики IEF B2C в каталоге.
Connect-AzureAD -Tenant "{b2c-tenant-name}.onmicrosoft.com"
Пример выходных данных команды с успешным входом в систему:
PS C:\> Connect-AzureAD -Tenant "contosob2c.onmicrosoft.com"
Account Environment TenantId TenantDomain AccountType
------- ----------- -------- ------------ -----------
azureuser@contoso.com AzureCloud 00000000-0000-0000-0000-000000000000 contosob2c.onmicrosoft.com User
Перечисление всех пользовательских политик в клиенте
Обнаружение пользовательских политик позволяет администратору Azure AD B2C просматривать, управлять и добавлять бизнес-логику в свои операции. Используйте команду Get-AzureADMSTrustFrameworkPolicy, чтобы получить список идентификаторов пользовательских политик в клиенте Azure AD B2C.
Get-AzureADMSTrustFrameworkPolicy
Пример выходных данных команды:
PS C:\> Get-AzureADMSTrustFrameworkPolicy
Id
--
B2C_1A_TrustFrameworkBase
B2C_1A_TrustFrameworkExtensions
B2C_1A_signup_signin
B2C_1A_ProfileEdit
B2C_1A_PasswordReset
Скачивание политики
После просмотра списка идентификаторов политик можно ориентироваться на определенную политику с помощью Get-AzureADMSTrustFrameworkPolicy, чтобы скачать ее содержимое.
Get-AzureADMSTrustFrameworkPolicy [-Id <policyId>]
В этом примере скачивается политика с идентификатором B2C_1A_signup_signin:
PS C:\> Get-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin
<TrustFrameworkPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06" PolicySchemaVersion="0.3.0.0" TenantId="contosob2c.onmicrosoft.com" PolicyId="B2C_1A_signup_signin" PublicPolicyUri="http://contosob2c.onmicrosoft.com/B2C_1A_signup_signin" TenantObjectId="00000000-0000-0000-0000-000000000000">
<BasePolicy>
<TenantId>contosob2c.onmicrosoft.com</TenantId>
<PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId>
</BasePolicy>
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="email" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" />
<OutputClaim ClaimTypeReferenceId="identityProvider" />
<OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
</TrustFrameworkPolicy>
Чтобы изменить содержимое политики локально, отправьте выходные данные команды по конвейеру в файл с аргументом -OutputFilePath
, а затем откройте файл в любом удобном редакторе.
Пример команды, отправляющей выходные данные в файл:
# Download and send policy output to a file
Get-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -OutputFilePath C:\RPPolicy.xml
Обновление существующей политики
После изменения созданного или скачанного файла политики можно опубликовать обновленную политику в Azure AD B2C с помощью команды Set-AzureADMSTrustFrameworkPolicy.
Если вы выпустили команду Set-AzureADMSTrustFrameworkPolicy
с идентификатором политики, которая уже существует в клиенте Azure AD B2C, содержимое этой политики перезаписывается.
Set-AzureADMSTrustFrameworkPolicy [-Id <policyId>] -InputFilePath <inputpolicyfilePath> [-OutputFilePath <outputFilePath>]
Пример команды:
# Update an existing policy from file
Set-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -InputFilePath C:\B2C_1A_signup_signin.xml
Дополнительные примеры см. в справочнике по команде Set-AzureADMSTrustFrameworkPolicy.
Отправка новой политики
При внесении изменений в пользовательскую политику, которая выполняется в рабочей среде, может потребоваться опубликовать несколько версий политики для сценариев отката или AB-тестирования. Вы также можете создать копию существующей политики, добавить в нее несколько небольших изменений, а затем передать ее в качестве новой политики для использования другим приложением.
Используйте команду New-AzureADMSTrustFrameworkPolicy, чтобы отправить новую политику:
New-AzureADMSTrustFrameworkPolicy -InputFilePath <inputpolicyfilePath> [-OutputFilePath <outputFilePath>]
Пример команды:
# Add new policy from file
New-AzureADMSTrustFrameworkPolicy -InputFilePath C:\SignUpOrSignInv2.xml
Удаление пользовательской политики
Чтобы поддерживать жизненный цикл операций очистки, рекомендуется периодически удалять неиспользуемые пользовательские политики. Например, может потребоваться удалить старые версии политик после выполнения миграции на новый набор политик и проверки их функциональности. Кроме того, если вы пытаетесь опубликовать набор пользовательских политик и получаете сообщения об ошибке, может иметь смысл удалить политики, созданные в составе неисправного выпуска.
Удалите политику из клиента с помощью команды Remove-AzureADMSTrustFrameworkPolicy.
Remove-AzureADMSTrustFrameworkPolicy -Id <policyId>
Пример команды:
# Delete an existing policy
Remove-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin
Устранение неполадок, связанных с отправкой политики
Когда вы публикуете новую пользовательскую политику или обновляете существующую, неправильное форматирование и ошибки XML в цепочке наследования файлов политики могут привести к сбоям при проверке.
Пример обновления политики с содержимым с неправильно сформированный XML (для краткости выводятся усеченные результаты):
PS C:\> Set-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -InputFilePath C:\B2C_1A_signup_signin.xml
Set-AzureADMSTrustFrameworkPolicy : Error occurred while executing PutTrustFrameworkPolicy
Code: AADB2C
Message: Validation failed: 1 validation error(s) found in policy "B2C_1A_SIGNUP_SIGNIN" of tenant "contosob2c.onmicrosoft.com".Schema validation error found at line
14 col 55 in policy "B2C_1A_SIGNUP_SIGNIN" of tenant "contosob2c.onmicrosoft.com": The element 'OutputClaims' in namespace
'http://schemas.microsoft.com/online/cpim/schemas/2013/06' cannot contain text. List of possible elements expected: 'OutputClaim' in namespace
'http://schemas.microsoft.com/online/cpim/schemas/2013/06'.
...
Сведения об устранении неполадок пользовательских политик см. в разделе Устранение неполадок с пользовательскими политиками Azure AD B2C и Identity Experience Framework.
Дальнейшие действия
Сведения об использовании PowerShell для развертывания пользовательских политик в рамках конвейера непрерывной интеграции и поставки (CI/CD) см. в статье Развертывание пользовательских политик в конвейере Azure DevOps.