Gestire i criteri personalizzati di Azure AD B2C con Azure PowerShell
Azure PowerShell offre diversi cmdlet per la gestione dei criteri personalizzati basata su script e riga di comando nel tenant di Azure AD B2C. Informazioni su come usare il modulo Azure AD PowerShell per:
- Elencare i criteri personalizzati in un tenant di Azure AD B2C
- Scaricare un criterio da un tenant
- Aggiornare un criterio esistente sovrascrivendone il contenuto
- Caricare un nuovo criterio nel tenant di Azure AD B2C
- Eliminare un criterio personalizzato da un tenant
Prerequisiti
- Tenant di Azure AD B2C e credenziali per un utente nella directory con il ruolo amministratore criteri IEF B2C
- Criteri personalizzati caricati nel tenant
- Modulo di anteprima di Azure AD PowerShell per Graph
Connettere la sessione di PowerShell al tenant B2C
Per usare i criteri personalizzati nel tenant di Azure AD B2C, è prima necessario connettere la sessione di PowerShell al tenant usando il comando Connect-AzureAD .
Eseguire il comando seguente sostituendo {b2c-tenant-name}
con il nome del tenant di Azure AD B2C. Accedere con un account a cui è assegnato il ruolo Amministratore criteri IEF B2C nella directory.
Connect-AzureAD -Tenant "{b2c-tenant-name}.onmicrosoft.com"
Output del comando di esempio che mostra un accesso riuscito:
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
Elencare tutti i criteri personalizzati nel tenant
L'individuazione di criteri personalizzati consente a un amministratore di Azure AD B2C di esaminare, gestire e aggiungere logica di business alle operazioni. Usare il comando Get-AzureADMSTrustFrameworkPolicy per restituire un elenco degli ID dei criteri personalizzati in un tenant di Azure AD B2C.
Get-AzureADMSTrustFrameworkPolicy
Output del comando di esempio:
PS C:\> Get-AzureADMSTrustFrameworkPolicy
Id
--
B2C_1A_TrustFrameworkBase
B2C_1A_TrustFrameworkExtensions
B2C_1A_signup_signin
B2C_1A_ProfileEdit
B2C_1A_PasswordReset
Scaricare un criterio
Dopo aver esaminato l'elenco degli ID dei criteri, è possibile specificare come destinazione un criterio specifico con Get-AzureADMSTrustFrameworkPolicy per scaricarne il contenuto.
Get-AzureADMSTrustFrameworkPolicy [-Id <policyId>]
In questo esempio viene scaricato il criterio con ID 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>
Per modificare il contenuto dei criteri in locale, inviare tramite pipe l'output del comando a un file con l'argomento e quindi aprire il file nell'editor -OutputFilePath
preferito.
Comando di esempio che invia output a un file:
# Download and send policy output to a file
Get-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -OutputFilePath C:\RPPolicy.xml
Aggiornare un criterio esistente
Dopo aver modificato un file di criteri creato o scaricato, è possibile pubblicare i criteri aggiornati in Azure AD B2C usando il comando Set-AzureADMSTrustFrameworkPolicy .
Se si esegue il Set-AzureADMSTrustFrameworkPolicy
comando con l'ID di un criterio già esistente nel tenant di Azure AD B2C, il contenuto di tale criterio viene sovrascritto.
Set-AzureADMSTrustFrameworkPolicy [-Id <policyId>] -InputFilePath <inputpolicyfilePath> [-OutputFilePath <outputFilePath>]
Comando di esempio:
# Update an existing policy from file
Set-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -InputFilePath C:\B2C_1A_signup_signin.xml
Per altri esempi, vedere le informazioni di riferimento sui comandi Set-AzureADMSTrustFrameworkPolicy .
Caricare un nuovo criterio
Quando si apporta una modifica a un criterio personalizzato in esecuzione nell'ambiente di produzione, è possibile pubblicare più versioni dei criteri per gli scenari di fallback o di test A/B. In alternativa, è possibile creare una copia di un criterio esistente, modificarla con alcune piccole modifiche, quindi caricarla come nuovo criterio per l'uso da parte di un'applicazione diversa.
Usare il comando New-AzureADMSTrustFrameworkPolicy per caricare un nuovo criterio:
New-AzureADMSTrustFrameworkPolicy -InputFilePath <inputpolicyfilePath> [-OutputFilePath <outputFilePath>]
Comando di esempio:
# Add new policy from file
New-AzureADMSTrustFrameworkPolicy -InputFilePath C:\SignUpOrSignInv2.xml
Eliminare un criterio personalizzato
Per mantenere un ciclo di vita delle operazioni pulite, è consigliabile rimuovere periodicamente i criteri personalizzati inutilizzati. Ad esempio, è possibile rimuovere le versioni precedenti dei criteri dopo aver eseguito una migrazione a un nuovo set di criteri e verificare la funzionalità dei nuovi criteri. Inoltre, se si tenta di pubblicare un set di criteri personalizzati e si riceve un errore, potrebbe essere opportuno rimuovere i criteri creati come parte della versione non riuscita.
Usare il comando Remove-AzureADMSTrustFrameworkPolicy per eliminare un criterio dal tenant.
Remove-AzureADMSTrustFrameworkPolicy -Id <policyId>
Comando di esempio:
# Delete an existing policy
Remove-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin
Risolvere i problemi di caricamento dei criteri
Quando si tenta di pubblicare un nuovo criterio personalizzato o di aggiornare un criterio esistente, la formattazione XML non corretta e gli errori nella catena di ereditarietà dei file dei criteri possono causare errori di convalida.
Ad esempio, ecco un tentativo di aggiornamento di un criterio con contenuto contenente codice XML in formato non valido (l'output viene troncato per brevità):
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'.
...
Per informazioni sulla risoluzione dei problemi relativi ai criteri personalizzati, vedere Risolvere i problemi relativi ai criteri personalizzati di Azure AD B2C e al framework dell'esperienza di gestione delle identità.
Passaggi successivi
Per informazioni sull'uso di PowerShell per distribuire criteri personalizzati come parte di una pipeline di integrazione continua/recapito continuo (CI/CD), vedere Distribuire criteri personalizzati da una pipeline di Azure DevOps.