Condividi tramite


Definizioni dei Contenuti

Importante

A partire dal 1° maggio 2025, Azure AD B2C non sarà più disponibile per l'acquisto per i nuovi clienti. Altre informazioni sono disponibili nelle domande frequenti.

Annotazioni

In Azure Active Directory B2C i criteri personalizzati sono stati progettati principalmente per far fronte a scenari complessi. Per la maggior parte degli scenari, è consigliabile usare i flussi utente predefiniti. In caso contrario, vedere Introduzione ai criteri personalizzati in Active Directory B2C.

È possibile personalizzare l'aspetto di qualsiasi profilo tecnico autocertificato. Azure Active Directory B2C (Azure AD B2C) esegue il codice nel browser del cliente e usa un approccio moderno denominato Condivisione risorse tra le origini (CORS).

Per personalizzare l'interfaccia utente, specificare un URL nell'elemento ContentDefinition con contenuto HTML personalizzato. Nel profilo tecnico autocertitivo o OrchestrationStep si punta a tale identificatore di definizione del contenuto. La definizione del contenuto può contenere un elemento LocalizedResourcesReferences che specifica un elenco di risorse localizzate da caricare. Azure AD B2C unisce gli elementi dell'interfaccia utente con il contenuto HTML caricato dall'URL e quindi visualizza la pagina all'utente.

L'elemento ContentDefinitions contiene gli URL ai modelli HTML5 che possono essere usati in un percorso utente. L'URI della pagina HTML5 viene usato per un passaggio dell'interfaccia utente specificato. Ad esempio, le pagine di accesso o iscrizione, reimpostazione della password o errore. È possibile modificare l'aspetto eseguendo l'override di LoadUri per il file HTML5. È possibile creare nuove definizioni di contenuto in base alle proprie esigenze. Questo elemento può contenere un riferimento alle risorse localizzate, all'identificatore di localizzazione specificato nell'elemento Localizzazione .

L'esempio seguente mostra l'identificatore di definizione del contenuto e la definizione delle risorse localizzate:

<ContentDefinition Id="api.localaccountsignup">
  <LoadUri>~/tenant/default/selfAsserted.cshtml</LoadUri>
  <RecoveryUri>~/common/default_page_error.html</RecoveryUri>
  <DataUri>urn:com:microsoft:aad:b2c:elements:selfasserted:1.1.0</DataUri>
  <Metadata>
    <Item Key="DisplayName">Local account sign up page</Item>
  </Metadata>
  <LocalizedResourcesReferences MergeBehavior="Prepend">
    <LocalizedResourcesReference Language="en" LocalizedResourcesReferenceId="api.localaccountsignup.en" />
    <LocalizedResourcesReference Language="es" LocalizedResourcesReferenceId="api.localaccountsignup.es" />
    ...

I metadati del profilo tecnico autocertizionato LocalAccountSignUpWithLogonEmail contengono l'identificatore di definizione del contenuto ContentDefinitionReferenceId impostato su api.localaccountsignup

<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
  <DisplayName>Email signup</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="ContentDefinitionReferenceId">api.localaccountsignup</Item>
    ...
  </Metadata>
  ...

Definizione dei contenuti

L'elemento ContentDefinition contiene l'attributo seguente:

Attributo Obbligatorio Descrizione
id Identificatore per una definizione di contenuto. Il valore è uno specificato nella sezione ID definizione contenuto più avanti in questa pagina.

L'elemento ContentDefinition contiene gli elementi seguenti:

Elemento Occorrenze Descrizione
LoadUri 1:1 Stringa che contiene l'URL della pagina HTML5 per la definizione del contenuto.
RecoveryUri 1:1 Stringa contenente l'URL della pagina HTML per la visualizzazione di un errore relativo alla definizione del contenuto. Non attualmente usato, il valore deve essere ~/common/default_page_error.html.
DataUri 1:1 Stringa contenente l'URL relativo di un file HTML che fornisce l'esperienza utente da richiamare per il passaggio.
Metadati 0:1 Raccolta di coppie chiave/valore che contiene i metadati utilizzati dalla definizione del contenuto.
LocalizedResourcesReferences 0:1 Raccolta di riferimenti alle risorse localizzate. Usare questo elemento per personalizzare la localizzazione di un'interfaccia utente e di un attributo di attestazioni.

LoadUri

L'elemento LoadUri viene usato per specificare l'URL della pagina HTML5 per la definizione del contenuto. Gli starter pack di criteri personalizzati di Azure AD B2C includono definizioni di contenuto che usano pagine HTML di Azure AD B2C. LoadUri inizia con ~, ovvero un percorso relativo al tenant di Azure AD B2C.

<ContentDefinition Id="api.signuporsignin">
  <LoadUri>~/tenant/templates/AzureBlue/unified.cshtml</LoadUri>
  ...
</ContentDefinition>

È possibile personalizzare l'interfaccia utente con i modelli HTML. Quando si usano modelli HTML, specificare un URL assoluto. L'esempio seguente illustra una definizione di contenuto con un modello HTML:

<ContentDefinition Id="api.signuporsignin">
  <LoadUri>https://your-storage-account.blob.core.windows.net/your-container/customize-ui.html</LoadUri>
  ...
</ContentDefinition>

DataUri

L'elemento DataUri viene utilizzato per specificare l'identificatore di pagina. Azure AD B2C usa l'identificatore di pagina per caricare e avviare elementi dell'interfaccia utente e JavaScript sul lato client. Il formato del valore è urn:com:microsoft:aad:b2c:elements:page-name:version. Nella tabella seguente sono elencati gli identificatori di pagina che è possibile usare.

Identificatore di pagina Descrizione
globalexception Visualizza una pagina di errore quando viene rilevata un'eccezione o un errore.
providerselection, idpselection Elenca i provider di identità tra cui gli utenti possono scegliere durante l'accesso.
unifiedssp Visualizza un modulo per l'accesso con un account locale basato su un indirizzo di posta elettronica o un nome utente. Questo valore fornisce anche il collegamento "Keep me sign-in" (Mantieni la funzionalità di accesso) e "Password dimenticata?".
unifiedssd Visualizza un modulo per l'accesso con un account locale basato su un indirizzo di posta elettronica o un nome utente. Questo identificatore di pagina è deprecato. Usare invece l'identificatore di unifiedssp pagina.
multifactor Verifica i numeri di telefono usando testo o voce durante l'iscrizione o l'accesso.
selfasserted Visualizza un modulo per raccogliere dati da un utente. Ad esempio, consente agli utenti di creare o aggiornare il profilo.

Selezionare un layout di pagina

È possibile abilitare il codice lato client JavaScript inserendo contract tra elements e il tipo di pagina. Ad esempio: urn:com:microsoft:aad:b2c:elements:contract:page-name:version.

La parte della versione di DataUri specifica il pacchetto di contenuto contenente HTML, CSS e JavaScript per gli elementi dell'interfaccia utente nei criteri. Se si intende abilitare il codice lato client JavaScript, gli elementi su cui si basa JavaScript devono essere non modificabili. Se non sono modificabili, eventuali modifiche potrebbero causare comportamenti imprevisti nelle pagine utente. Per evitare questi problemi, applicare l'uso di un layout di pagina e specificare una versione del layout di pagina. In questo modo si garantisce che tutte le definizioni di contenuto basate su JavaScript in siano non modificabili. Anche se non si intende abilitare JavaScript, è comunque necessario specificare la versione del layout di pagina per le pagine.

Nell'esempio seguente viene illustrato l'oggetto DataUri della selfasserted versione 1.2.0:

<!-- 
<BuildingBlocks> 
  <ContentDefinitions>-->
    <ContentDefinition Id="api.localaccountpasswordreset">
      <LoadUri>~/tenant/templates/AzureBlue/selfAsserted.cshtml</LoadUri>
      <RecoveryUri>~/common/default_page_error.html</RecoveryUri>
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.2.0</DataUri>
      <Metadata>
        <Item Key="DisplayName">Local account change password page</Item>
      </Metadata>
    </ContentDefinition>
  <!-- 
  </ContentDefinitions> 
</BuildingBlocks> -->

Migrazione al layout di pagina

Per eseguire la migrazione dal valore DataUri precedente (senza contratto di pagina) alla versione del layout di pagina, aggiungere la parola contract seguita da una versione della pagina. Usare la tabella seguente per eseguire la migrazione dal valore DataUri precedente alla versione del layout di pagina.

Valore DataUri precedente Nuovo valore DataUri
urn:com:microsoft:aad:b2c:elements:globalexception:1.0.0 urn:com:microsoft:aad:b2c:elements:contract:globalexception:1.2.1
urn:com:microsoft:aad:b2c:elements:globalexception:1.1.0 urn:com:microsoft:aad:b2c:elements:contract:globalexception:1.2.1
urn:com:microsoft:aad:b2c:elements:idpselection:1.0.0 urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.1
urn:com:microsoft:aad:b2c:elements:selfasserted:1.0.0 urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.7
urn:com:microsoft:aad:b2c:elements:selfasserted:1.1.0 urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.7
urn:com:microsoft:aad:b2c:elements:unifiedssd:1.0.0 urn:com:microsoft:aad:b2c:elements:contract:unifiedssd:1.2.1
urn:com:microsoft:aad:b2c:elements:unifiedssp:1.0.0 urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.5
urn:com:microsoft:aad:b2c:elements:unifiedssp:1.1.0 urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.5
urn:com:microsoft:aad:b2c:elements:multifactor:1.0.0 urn:com:microsoft:aad:b2c:elements:contract:multifactor:1.2.5
urn:com:microsoft:aad:b2c:elements:multifactor:1.1.0 urn:com:microsoft:aad:b2c:elements:contract:multifactor:1.2.5

L'esempio seguente mostra gli identificatori di definizione del contenuto e l'oggetto DataUri corrispondente con la versione più recente della pagina:

<!-- 
<BuildingBlocks> -->
  <ContentDefinitions>
    <ContentDefinition Id="api.error">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:globalexception:1.2.1</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.idpselections">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.1</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.idpselections.signup">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.1</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.signuporsignin">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.7</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.selfasserted">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.14</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.selfasserted.profileupdate">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.14</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.localaccountsignup">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.14</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.localaccountpasswordreset">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.14</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.phonefactor">
      <RecoveryUri>~/common/default_page_error.html</RecoveryUri>
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:multifactor:1.2.5</DataUri>
    </ContentDefinition>
  </ContentDefinitions>
<!-- 
</BuildingBlocks> -->

Metadati

Un elemento Metadata contiene gli elementi seguenti:

Elemento Occorrenze Descrizione
Elemento 0:n Metadati correlati alla definizione del contenuto.

L'elemento Item dell'elemento Metadata contiene gli attributi seguenti:

Attributo Obbligatorio Descrizione
Chiave Chiave di metadati.

Chiavi di metadati

La definizione del contenuto supporta gli elementi di metadati seguenti:

Chiave Obbligatorio Descrizione
Nome visualizzato NO Stringa contenente il nome della definizione del contenuto.

LocalizedResourcesReferences

L'elemento LocalizedResourcesReferences contiene gli elementi seguenti:

Elemento Occorrenze Descrizione
LocalizedResourcesReference 1:n Elenco di riferimenti alle risorse localizzate per la definizione del contenuto.

L'elemento LocalizedResourcesReference contiene gli attributi seguenti:

Attributo Obbligatorio Descrizione
Lingua Stringa che contiene una lingua supportata per i criteri per RFC 5646 - Tag per l'identificazione delle lingue.
LocalizedResourcesReferenceId Identificatore dell'elemento LocalizedResources .

L'esempio seguente mostra una definizione di contenuto di iscrizione o di accesso con un riferimento alla localizzazione per inglese, francese e spagnolo:

<ContentDefinition Id="api.signuporsignin">
  <LoadUri>~/tenant/default/unified.cshtml</LoadUri>
  <RecoveryUri>~/common/default_page_error.html</RecoveryUri>
  <DataUri>urn:com:microsoft:aad:b2c:elements:unifiedssp:1.0.0</DataUri>
  <Metadata>
    <Item Key="DisplayName">Signin and Signup</Item>
  </Metadata>
  <LocalizedResourcesReferences MergeBehavior="Prepend">
    <LocalizedResourcesReference Language="en" LocalizedResourcesReferenceId="api.signuporsignin.en" />
    <LocalizedResourcesReference Language="fr" LocalizedResourcesReferenceId="api.signuporsignin.rf" />
    <LocalizedResourcesReference Language="es" LocalizedResourcesReferenceId="api.signuporsignin.es" />
</LocalizedResourcesReferences>
</ContentDefinition>

Per informazioni su come aggiungere il supporto di localizzazione alle definizioni di contenuto, vedere Localizzazione.

ID definizione del contenuto

L'attributo ID dell'elemento ContentDefinition specifica il tipo di pagina correlato alla definizione del contenuto. L'elemento definisce il contesto che verrà applicato un modello HTML5/CSS personalizzato. La tabella seguente descrive il set di ID di definizione del contenuto riconosciuti dal framework dell'esperienza di gestione delle identità e i tipi di pagina correlati. È possibile creare definizioni di contenuto personalizzate con un ID arbitrario.

Documento d'identità Modello predefinito Descrizione
api.error eccezione.cshtml Pagina errore : visualizza una pagina di errore quando viene rilevata un'eccezione o un errore.
api.idpselezioni idpSelector.cshtml Pagina di selezione del provider di identità: elenca i provider di identità tra cui gli utenti possono scegliere durante l'accesso. Le opzioni sono in genere provider di identità aziendali, provider di identità di social networking come Facebook e Google+, o account locali.
api.idpselections.signup idpSelector.cshtml Selezione del provider di identità per l'iscrizione : elenca i provider di identità tra cui gli utenti possono scegliere durante l'iscrizione. Le opzioni sono in genere provider di identità aziendali, provider di identità di social networking come Facebook e Google+, o account locali.
api.localaccountpasswordreset selfasserted.cshtml Pagina Password dimenticata : visualizza un modulo che gli utenti devono completare per avviare una reimpostazione della password.
api.localaccountsignin selfasserted.cshtml Pagina di accesso all'account locale : visualizza un modulo per l'accesso con un account locale basato su un indirizzo di posta elettronica o un nome utente. Il modulo può contenere una casella di input di testo e una casella di immissione della password.
api.localaccountregistrazione selfasserted.cshtml Pagina di iscrizione all'account locale : visualizza un modulo per l'iscrizione a un account locale basato su un indirizzo di posta elettronica o un nome utente. Il modulo può contenere vari controlli di input, ad esempio una casella di input di testo, una casella di immissione della password, un pulsante di opzione, caselle a discesa a selezione singola e caselle di controllo a selezione multipla.
api.phonefactor multifattore-1.0.0.cshtml Pagina di autenticazione a più fattori: verifica i numeri di telefono usando testo o voce durante l'iscrizione o l'accesso.
api.selfasserted selfasserted.cshtml Pagina di iscrizione all'account di social networking: visualizza un modulo che gli utenti devono completare quando si iscrive usando un account esistente da un provider di identità social. Questa pagina è simile alla pagina di iscrizione dell'account di social networking precedente, ad eccezione dei campi di immissione della password.
api.selfasserted.profileupdate updateprofile.cshtml Pagina di aggiornamento del profilo : visualizza un modulo a cui gli utenti possono accedere per aggiornare il profilo. Questa pagina è simile alla pagina di iscrizione dell'account di social networking, ad eccezione dei campi di immissione della password.
api.signuporsignin unified.cshtml Pagina unificata di iscrizione o accesso: gestisce il processo di iscrizione e accesso dell'utente. Gli utenti possono usare provider di identità aziendali, provider di identità di social networking, ad esempio Facebook o Google+, o account locali.

Passaggi successivi

Per un esempio di personalizzazione dell'interfaccia utente tramite definizioni di contenuto, vedere:

Personalizzare l'interfaccia utente dell'applicazione usando un criterio personalizzato