Zarządzanie zasadami niestandardowymi usługi Azure AD B2C przy użyciu Azure PowerShell
Azure PowerShell udostępnia kilka poleceń cmdlet do zarządzania zasadami niestandardowymi opartymi na wierszu polecenia i skryptach w dzierżawie usługi Azure AD B2C. Dowiedz się, jak za pomocą modułu Azure AD PowerShell wykonywać następujące czynności:
- Wyświetlanie listy zasad niestandardowych w dzierżawie usługi Azure AD B2C
- Pobieranie zasad z dzierżawy
- Aktualizowanie istniejących zasad przez zastąpienie jej zawartości
- Przekazywanie nowych zasad do dzierżawy usługi Azure AD B2C
- Usuwanie zasad niestandardowych z dzierżawy
Wymagania wstępne
- Azure AD dzierżawę B2C i poświadczenia użytkownika w katalogu z rolą administratora zasad IEF B2C
- Zasady niestandardowe przekazane do dzierżawy
- Azure AD moduł programu PowerShell dla programu Graph w wersji zapoznawczej
Łączenie sesji programu PowerShell z dzierżawą usługi B2C
Aby pracować z zasadami niestandardowymi w dzierżawie usługi Azure AD B2C, najpierw należy połączyć sesję programu PowerShell z dzierżawą przy użyciu polecenia Connect-AzureAD.
Wykonaj następujące polecenie, zastępując {b2c-tenant-name}
nazwę dzierżawy usługi Azure AD B2C. Zaloguj się przy użyciu konta przypisanego do roli administratora zasad IEF B2C w katalogu.
Connect-AzureAD -Tenant "{b2c-tenant-name}.onmicrosoft.com"
Przykładowe dane wyjściowe polecenia przedstawiające pomyślne logowanie:
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
Wyświetlanie listy wszystkich zasad niestandardowych w dzierżawie
Odnajdywanie zasad niestandardowych umożliwia administratorowi usługi Azure AD B2C przeglądanie i dodawanie logiki biznesowej do ich operacji oraz zarządzanie nimi. Użyj polecenia Get-AzureADMSTrustFrameworkPolicy, aby zwrócić listę identyfikatorów zasad niestandardowych w dzierżawie usługi Azure AD B2C.
Get-AzureADMSTrustFrameworkPolicy
Przykładowe dane wyjściowe polecenia:
PS C:\> Get-AzureADMSTrustFrameworkPolicy
Id
--
B2C_1A_TrustFrameworkBase
B2C_1A_TrustFrameworkExtensions
B2C_1A_signup_signin
B2C_1A_ProfileEdit
B2C_1A_PasswordReset
Pobieranie zasad
Po przejrzeniu listy identyfikatorów zasad można za pomocą polecenia Get-AzureADMSTrustFrameworkPolicy pobrać jego zawartość.
Get-AzureADMSTrustFrameworkPolicy [-Id <policyId>]
W tym przykładzie zostaną pobrane zasady o identyfikatorze 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>
Aby edytować zawartość zasad lokalnie, należy przekazać dane wyjściowe polecenia do pliku z -OutputFilePath
argumentem, a następnie otworzyć plik w ulubionym edytorze.
Przykładowe polecenie wysyłające dane wyjściowe do pliku:
# Download and send policy output to a file
Get-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -OutputFilePath C:\RPPolicy.xml
Aktualizuj istniejące zasady
Po edytowaniu pliku zasad utworzonego lub pobranego można opublikować zaktualizowane zasady w celu Azure AD B2C przy użyciu polecenia Set-AzureADMSTrustFrameworkPolicy.
Jeśli wydasz Set-AzureADMSTrustFrameworkPolicy
polecenie o identyfikatorze zasad, które już istnieją w dzierżawie usługi Azure AD B2C, zawartość tych zasad zostanie zastąpiona.
Set-AzureADMSTrustFrameworkPolicy [-Id <policyId>] -InputFilePath <inputpolicyfilePath> [-OutputFilePath <outputFilePath>]
Przykładowe polecenie:
# Update an existing policy from file
Set-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -InputFilePath C:\B2C_1A_signup_signin.xml
Aby uzyskać dodatkowe przykłady, zobacz dokumentację poleceń Set-AzureADMSTrustFrameworkPolicy .
Przekazywanie nowych zasad
Jeśli wprowadzisz zmianę w zasadach niestandardowych działających w środowisku produkcyjnym, możesz opublikować wiele wersji zasad dla scenariuszy testowania rezerwowego lub A/B. Możesz też wprowadzić kopię istniejących zasad, zmodyfikować ją za pomocą kilku drobnych zmian, a następnie przekazać je jako nowe zasady do użycia przez inną aplikację.
Użyj polecenia New-AzureADMSTrustFrameworkPolicy , aby przekazać nowe zasady:
New-AzureADMSTrustFrameworkPolicy -InputFilePath <inputpolicyfilePath> [-OutputFilePath <outputFilePath>]
Przykładowe polecenie:
# Add new policy from file
New-AzureADMSTrustFrameworkPolicy -InputFilePath C:\SignUpOrSignInv2.xml
Usuwanie zasad niestandardowych
Aby zachować cykl życia czystej operacji, zalecamy okresowe usuwanie nieużywanych zasad niestandardowych. Na przykład możesz usunąć stare wersje zasad po przeprowadzeniu migracji do nowego zestawu zasad i zweryfikowania funkcjonalności nowych zasad. Ponadto jeśli spróbujesz opublikować zestaw zasad niestandardowych i wystąpi błąd, warto usunąć zasady utworzone w ramach wydania, które zakończyły się niepowodzeniem.
Użyj polecenia Remove-AzureADMSTrustFrameworkPolicy , aby usunąć zasady z dzierżawy.
Remove-AzureADMSTrustFrameworkPolicy -Id <policyId>
Przykładowe polecenie:
# Delete an existing policy
Remove-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin
Rozwiązywanie problemów z przekazywaniem zasad
Podczas próby opublikowania nowych zasad niestandardowych lub zaktualizowania istniejących zasad nieprawidłowe formatowanie XML i błędy w łańcuchu dziedziczenia plików zasad mogą powodować błędy walidacji.
Na przykład poniżej przedstawiono próbę zaktualizowania zasad z zawartością zawierającą nieprawidłowo sformułowany kod XML (dane wyjściowe są obcięte w celu zwięzłości):
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'.
...
Aby uzyskać informacje na temat rozwiązywania problemów z zasadami niestandardowymi, zobacz Rozwiązywanie problemów z niestandardowymi zasadami Azure AD B2C i strukturą środowiska obsługi tożsamości.
Następne kroki
Aby uzyskać informacje na temat wdrażania zasad niestandardowych przy użyciu programu PowerShell w ramach potoku ciągłej integracji/ciągłego dostarczania (CI/CD), zobacz Wdrażanie zasad niestandardowych z potoku usługi Azure DevOps.