Azure Active Directory B2C: Creazione e utilizzo di attributi personalizzati in criteri personalizzati di modifica del profiloAzure Active Directory B2C: Creating and using custom attributes in a custom profile edit policy

Nota

I criteri personalizzati sono disponibili in anteprima pubblica.Custom policies are in public preview.

I criteri personalizzati sono stati progettati principalmente per professionisti della gestione delle identità che devono affrontare scenari complessi.Custom policies are designed primarily for identity pros who need to address complex scenarios. Per la maggior parte degli scenari è consigliabile usare i criteri predefiniti di Azure Active Directory B2C.For most scenarios, we recommend that you use Azure Active Directory B2C built-in policies. I criteri predefiniti sono più facili da impostare per la configurazione.Built-in policies are easier to set up for your configuration. È possibile usare i criteri predefiniti e i criteri personalizzati nello stesso tenant di Azure Active Directory B2C.You can use built-in and custom policies in the same Azure Active Directory B2C tenant. Per altre informazioni, vedere la panoramica dei criteri personalizzati.To learn more, see the overview of custom policies.

In questo articolo si crea un attributo personalizzato nella directory di Azure AD B2C e si usa il nuovo attributo come attestazione personalizzata nel percorso utente di modifica del profilo.In this article, you create a custom attribute in your Azure AD B2C directory and use this new attribute as a custom claim in the profile edit user journey.

PrerequisitiPrerequisites

Completare la procedura descritta nell'articolo Introduzione ai criteri personalizzati.Complete the steps in the article Getting Started with Custom Policies.

Usare attributi personalizzati per raccogliere informazioni sui clienti in Azure Active Directory B2C usando criteri personalizzatiUse custom attributes to collect information about your customers in Azure Active Directory B2C using custom policies

La directory di Azure Active Directory (Azure AD) B2C viene fornita con un set predefinito di attributi: nome, cognome, città, codice postale, userPrincipalName e così via. È spesso necessario creare attributi personalizzati.Your Azure Active Directory (Azure AD) B2C directory comes with a built-in set of attributes: Given Name, Surname, City, Postal Code, userPrincipalName, etc. You often need to create your own attributes. ad esempio:For example:

  • Un'applicazione per i clienti deve rendere persistente un attributo, ad esempio "LoyaltyNumber".A customer-facing application needs to persist an attribute such as "LoyaltyNumber."
  • Un provider di identità ha un identificatore utente univoco che deve essere salvato, ad esempio "uniqueUserGUID".An identity provider has a unique user identifier that must be saved such as "uniqueUserGUID.""
  • Un percorso utente personalizzato deve rendere persistente lo stato dell'utente, ad esempio "migrationStatus".A custom user journey needs to persist the state of user such as "migrationStatus."

Con Azure AD B2C è possibile estendere il set di attributi archiviati in ogni account utente.With Azure AD B2C, you can extend the set of attributes stored on each user account. Questi attributi possono anche essere scritti e letti usando l' API Graph di Azure AD.You can also read and write these attributes by using the Azure AD Graph API.

Le proprietà di estensione estendono lo schema degli oggetti utente nella directory.Extension properties extend the schema of the user objects in the directory. I termini proprietà di estensione, attributo personalizzato e attestazione personalizzata fanno riferimento allo stesso concetto nel contesto di questo articolo e il nome varia a seconda del contesto (applicazione, oggetto, criteri).The terms extension property, custom attribute and custom claim refer to the same thing in the context of this article and the name varies depending on the context (application, object, policy).

Le proprietà di estensione possono essere registrate solo su un oggetto applicazione anche se possono contenere dati per un utente.Extension properties can only be registered on an Application object even though they may contain data for a User. La proprietà è collegata all'applicazione.The property is attached to the application. All'oggetto applicazione deve essere concesso l'accesso in scrittura per registrare una proprietà di estensione.The Application object must be granted write access to register an extension property. In un oggetto possono essere scritte 100 proprietà di estensione per TUTTI i tipi e TUTTE le applicazioni.100 Extension properties (across ALL types and ALL applications) can be written to any single object. Le proprietà di estensione vengono aggiunte al tipo di directory di destinazione e diventano immediatamente accessibili nel tenant della directory di Azure AD B2C.Extension properties are added to the target directory type and becomes immediately accessible in the Azure AD B2C directory tenant. Se l'applicazione viene eliminata, vengono rimosse anche le proprietà di estensione insieme a tutti i dati contenuti per tutti gli utenti.If the application is deleted, those Extension properties along with any data contained in them for all users are also removed. Se una proprietà di estensione viene eliminata dall'applicazione, viene rimossa dagli oggetti della directory di destinazione e i valori vengono eliminati.If an extension property is deleted by the Application, it is removed on the target directory objects, and the values deleted.

Le proprietà di estensione esistono solo nel contesto di un'applicazione registrata nel tenant.Extension properties exist only in the context of a registered Application in the tenant. L'ID oggetto dell'applicazione deve essere incluso nell'elemento TechnicalProfile che usa l'applicazione.The object id of that Application must be included in the TechnicalProfile that use it.

Nota

La directory di Azure AD B2C include in genere un'app Web denominata b2c-extensions-app.The Azure AD B2C directory typically includes a Web App named b2c-extensions-app. Questa applicazione viene usata principalmente dai criteri B2C predefiniti per le attestazioni personalizzate create tramite il portale di Azure.This application is primarily used by the b2c built-in policies for the custom claims created via the Azure portal. L'uso di questa applicazione per registrare estensioni per i criteri personalizzati B2C è consigliata solo agli utenti esperti.Using this application to register extensions for b2c custom policies is recommended only for advanced users. Le istruzioni per questa operazione sono comprese nella sezione Passaggi successivi di questo articolo.Instructions for this are included in the Next Steps section in this article.

Creazione di una nuova applicazione per archiviare le proprietà di estensioneCreating a new application to store the extension properties

  1. Aprire una sessione di esplorazione, passare al portale di Azure e accedere con le credenziali amministrative della directory B2C che si vuole configurare.Open a browsing session and navigate to the Azure portal and sign in with administrative credentials of the B2C Directory you wish to configure.
  2. Nel menu di spostamento sinistro fare clic su Azure Active Directory.Click Azure Active Directory on the left navigation menu. Potrebbe essere necessario selezionare Altri servizi> per trovarlo.You may need to find it by selecting More services>.
  3. Selezionare Registrazioni per l'app e fare clic su Registrazione nuova applicazioneSelect App registrations and click New application registration
  4. Specificare gli elementi seguenti consigliati:Provide the following recommended entries:
    • Specificare un nome per l'applicazione web: WebApp-GraphAPI-DirectoryExtensionsSpecify a name for the web application: WebApp-GraphAPI-DirectoryExtensions
    • Tipo di applicazione: app Web/APIApplication type: Web app/API
    • URL di accesso: https://{tenantName}.onmicrosoft.com/WebApp-GraphAPI-DirectoryExtensionsSign-on URL:https://{tenantName}.onmicrosoft.com/WebApp-GraphAPI-DirectoryExtensions
  5. Selezionare Crea.Select **Create. Il completamento dell'operazione viene visualizzato nella sezione **notificheSuccessful completion appears in the notifications
  6. Selezionare l'applicazione web appena creata: WebApp-GraphAPI-DirectoryExtensionsSelect the newly created web application: WebApp-GraphAPI-DirectoryExtensions
  7. Selezionare Impostazioni: Autorizzazioni necessarieSelect Settings: Required permissions
  8. Selezionare l'API Windows Azure Active DirectorySelect API Windows Azure Active Directory
  9. Inserire un segno di spunta in Autorizzazioni per l'applicazione: Legge e scrive i dati della directory, quindi SalvaPlace a checkmark in Application Permissions: Read and write directory data, and Save
  10. Selezionare Concedere le autorizzazioni e quindi fare clic su per confermare.Choose Grant permissions and confirm Yes.
  11. Copiare negli Appunti e salvare gli identificatori seguenti da WebApp-GraphAPI-DirectoryExtensions>Impostazioni>Proprietà>Copy to your clipboard and save the following identifiers from WebApp-GraphAPI-DirectoryExtensions>Settings>Properties>
  12. ID applicazione.Application ID . Esempio: 103ee0e6-f92d-4183-b576-8c3739027780Example: 103ee0e6-f92d-4183-b576-8c3739027780
  13. ID oggetto.Object ID. Esempio: 80d8296a-da0a-49ee-b6ab-fd232aa45201Example: 80d8296a-da0a-49ee-b6ab-fd232aa45201

Modifica dei criteri personalizzati per l'aggiunta di ApplicationObjectIdModifying your custom policy to add the ApplicationObjectId

    <ClaimsProviders>
        <ClaimsProvider>
              <DisplayName>Azure Active Directory</DisplayName>
            <TechnicalProfile Id="AAD-Common">
              <DisplayName>Azure Active Directory</DisplayName>
              <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
              <!-- Provide objectId and appId before using extension properties. -->
              <Metadata>
                <Item Key="ApplicationObjectId">insert objectId here</Item>
                <Item Key="ClientId">insert appId here</Item>
              </Metadata>
            <!-- End of changes -->
              <CryptographicKeys>
                <Key Id="issuer_secret" StorageReferenceId="TokenSigningKeyContainer" />
              </CryptographicKeys>
              <IncludeInSso>false</IncludeInSso>
              <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
            </TechnicalProfile>
        </ClaimsProvider>
    </ClaimsProviders>

Nota

viene definito "common" perché i relativi elementi vengono inclusi e riusati in tutti i TechnicalProfile di Azure Active Directory usando l'elemento: <IncludeTechnicalProfile ReferenceId="AAD-Common" />The is referred to as "common" because its elements are included in and reused in all the Azure Active Directory TechnicalProfiles by using the element: <IncludeTechnicalProfile ReferenceId="AAD-Common" />

Nota

Quando TechnicalProfile scrive per la prima volta nella proprietà di estensione appena creata, può verificarsi un errore occasionale.When the TechnicalProfile writes for the first time to the newly created extension property, you may experience a one-time error. La proprietà di estensione viene creata la prima volta che viene usata.The extension property is created the first time it is used.

Uso della nuova proprietà di estensione o del nuovo attributo personalizzato in un percorso utenteUsing the new extension property / custom attribute in a user journey

  1. Aprire il file Relying Party che descrive il percorso utente di modifica del criterio.Open the Relying Party(RP) file that describes your policy edit user journey. Se si è appena iniziato, può essere consigliabile scaricare la versione del file RP-PolicyEdit già configurata direttamente dalla sezione dei criteri personalizzati di Azure B2C nel portale di Azure.If you are starting out, it may be advisable to download your already configured version of the RP-PolicyEdit file directly from the Azure B2C Custom Policy section in the Azure portal. In alternativa, aprire il file XML dalla cartella di archiviazione.Alternatively, open your XML file from your storage folder.
  2. Aggiungere un'attestazione personalizzata loyaltyId.Add a custom claim loyaltyId. Includendo l'attestazione personalizzata nell'elemento <RelyingParty>, l'attestazione viene passata come parametro agli elementi UserJourney TechnicalProfile e inclusa nel token per l'applicazione.By including the custom claim in the <RelyingParty> element, it is passed as a parameter to the UserJourney TechnicalProfiles and included in the token for the application.

    <RelyingParty>
    <DefaultUserJourney ReferenceId="ProfileEdit" />
    <TechnicalProfile Id="PolicyProfile">
      <DisplayName>PolicyProfile</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
        <OutputClaim ClaimTypeReferenceId="city" />
    
        <OutputClaim ClaimTypeReferenceId="extension_loyaltyId" />
    
      </OutputClaims>
      <SubjectNamingInfo ClaimType="sub" />
    </TechnicalProfile>
    </RelyingParty>
    
  3. Aggiungere una definizione di attestazione al file dei criteri di estensione TrustFrameworkExtensions.xml all'interno dell'elemento <ClaimsSchema>, come illustrato di seguito.Add a claim definition to the Extension policy file TrustFrameworkExtensions.xml inside the <ClaimsSchema> element as shown. xml <ClaimsSchema> <ClaimType Id="extension_loyaltyId"> <DisplayName>Loyalty Identification Tag</DisplayName> <DataType>string</DataType> <UserHelpText>Your loyalty number from your membership card</UserHelpText> <UserInputType>TextBox</UserInputType> </ClaimType> </ClaimsSchema>
  4. Aggiungere la stessa definizione di attestazione al file dei criteri di base TrustFrameworkBase.xml.Add the same claim definition to the Base policy file TrustFrameworkBase.xml.
    >L'aggiunta di una definizione ClaimType al file di base e delle estensioni non è generalmente necessaria. Dato che i passaggi successivi aggiungeranno tuttavia extension_loyaltyId agli elementi TechnicalProfile nel file di base, la convalida dei criteri rifiuterà il caricamento del file di base in assenza della definizione.Adding a ClaimType definition in both the base and the extensions file is normally not necessary, however since the next steps will add the extension_loyaltyId to TechnicalProfiles in the Base file, the policy validator will reject the upload of the base file without it. >Può essere utile tenere traccia dell'esecuzione del percorso utente denominato "ProfileEdit" nel file TrustFrameworkBase.xml.It may be useful to trace the execution of the user journey named "ProfileEdit" in the TrustFrameworkBase.xml file. Cercare il percorso utente con lo stesso nome nell'editor e osservare che il passaggio di orchestrazione 5 richiama TechnicalProfileReferenceID="SelfAsserted-ProfileUpdate".Search for the user journey of the same name in your editor and observe that Orchestration Step 5 invokes the TechnicalProfileReferenceID="SelfAsserted-ProfileUpdate". Cercare ed esaminare questo elemento TechnicalProfile per acquisire familiarità con il flusso.Search and inspect this TechnicalProfile to familiarize yourself with the flow.
  5. Aggiungere loyaltyId come attestazione di input e output nell'elemento TechnicalProfile "SelfAsserted-ProfileUpdate"Add loyaltyId as input and output claim in the TechnicalProfile "SelfAsserted-ProfileUpdate"

    <TechnicalProfile Id="SelfAsserted-ProfileUpdate">
           <DisplayName>User ID 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.selfasserted.profileupdate</Item>
           </Metadata>
           <IncludeInSso>false</IncludeInSso>
           <InputClaims>
    
             <InputClaim ClaimTypeReferenceId="alternativeSecurityId" />
             <InputClaim ClaimTypeReferenceId="userPrincipalName" />
    
             <!-- Optional claims. These claims are collected from the user and can be modified. Any claim added here should be updated in the
                  ValidationTechnicalProfile referenced below so it can be written to directory after being updateed by the user, i.e. AAD-UserWriteProfileUsingObjectId. -->
             <InputClaim ClaimTypeReferenceId="givenName" />
             <InputClaim ClaimTypeReferenceId="surname" />
             <InputClaim ClaimTypeReferenceId="extension_loyaltyId"/>
           </InputClaims>
           <OutputClaims>
             <!-- Required claims -->
             <OutputClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" DefaultValue="true" />
    
             <!-- Optional claims. These claims are collected from the user and can be modified. Any claim added here should be updated in the
                  ValidationTechnicalProfile referenced below so it can be written to directory after being updateed by the user, i.e. AAD-UserWriteProfileUsingObjectId. -->
             <OutputClaim ClaimTypeReferenceId="givenName" />
             <OutputClaim ClaimTypeReferenceId="surname" />
             <OutputClaim ClaimTypeReferenceId="extension_loyaltyId"/>
           </OutputClaims>
           <ValidationTechnicalProfiles>
             <ValidationTechnicalProfile ReferenceId="AAD-UserWriteProfileUsingObjectId" />
           </ValidationTechnicalProfiles>
         </TechnicalProfile>
    
  6. Aggiungere l'attestazione nell'elemento TechnicalProfile "AAD-UserWriteProfileUsingObjectId" per rendere persistente il valore dell'attestazione nella proprietà di estensione per l'utente corrente nella directory.Add claim in TechnicalProfile "AAD-UserWriteProfileUsingObjectId" to persist the value of the claim in the extension property, for the current user in the directory.

    <TechnicalProfile Id="AAD-UserWriteProfileUsingObjectId">
           <Metadata>
             <Item Key="Operation">Write</Item>
             <Item Key="RaiseErrorIfClaimsPrincipalAlreadyExists">false</Item>
             <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>
           </Metadata>
           <IncludeInSso>false</IncludeInSso>
           <InputClaims>
             <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
           </InputClaims>
           <PersistedClaims>
             <!-- Required claims -->
             <PersistedClaim ClaimTypeReferenceId="objectId" />
    
             <!-- Optional claims -->
             <PersistedClaim ClaimTypeReferenceId="givenName" />
             <PersistedClaim ClaimTypeReferenceId="surname" />
             <PersistedClaim ClaimTypeReferenceId="extension_loyaltyId" />
    
           </PersistedClaims>
           <IncludeTechnicalProfile ReferenceId="AAD-Common" />
         </TechnicalProfile>
    
  7. Aggiungere l'attestazione nell'elemento TechnicalProfile "AAD-UserReadUsingObjectId" per leggere il valore dell'attributo di estensione ogni volta che l'utente esegue l'accesso.Add claim in TechnicalProfile "AAD-UserReadUsingObjectId" to read the value of the extension attribute every time a user logs in. Fino ad ora gli elementi TechnicalProfile sono stati modificati solo nel flusso degli account locali.Thus far the TechnicalProfiles have been changed in the flow of local accounts only. Per inserire il nuovo attributo nel flusso di un account di social networking/federato è necessario modificare un set diverso di elementi TechnicalProfile.If the new attribute is desired in the flow of a social/federated account, a different set of TechnicalProfiles needs to be changed. Vedere i passaggi successivi.See Next Steps.
<!-- The following technical profile is used to read data after user authenticates. -->
     <TechnicalProfile Id="AAD-UserReadUsingObjectId">
       <Metadata>
         <Item Key="Operation">Read</Item>
         <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>
       </Metadata>
       <IncludeInSso>false</IncludeInSso>
       <InputClaims>
         <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
       </InputClaims>
       <OutputClaims>
         <!-- Optional claims -->
         <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
         <OutputClaim ClaimTypeReferenceId="displayName" />
         <OutputClaim ClaimTypeReferenceId="otherMails" />
         <OutputClaim ClaimTypeReferenceId="givenName" />
         <OutputClaim ClaimTypeReferenceId="surname" />
         <OutputClaim ClaimTypeReferenceId="extension_loyaltyId" />
       </OutputClaims>
       <IncludeTechnicalProfile ReferenceId="AAD-Common" />
     </TechnicalProfile>

Importante

L'elemento IncludeTechnicalProfile aggiunge tutti gli elementi di AAD-Common a questo TechnicalProfile.The IncludeTechnicalProfile element adds all the elements of AAD-Common to this TechnicalProfile.

Testare i criteri personalizzati tramite "Esegui adesso"Test the custom policy using "Run Now"

  1. Aprire il pannello Azure AD B2C e passare a Framework dell'esperienza di gestione delle identità > Criteri personalizzati.Open the Azure AD B2C Blade and navigate to Identity Experience Framework > Custom policies.
  2. Selezionare il criterio personalizzato che è stato caricato e fare clic sul pulsante Esegui adesso.Select the custom policy that you uploaded, and click the Run now button.
  3. Dovrebbe essere possibile iscriversi usando un indirizzo di posta elettronica.You should be able to sign up using an email address.

Il token ID inviato all'applicazione include la nuova proprietà di estensione come attestazione personalizzata, preceduta da extension_loyaltyId.The id token sent back to your application includes the new extension property as a custom claim preceded by extension_loyaltyId. Vedere l'esempio.See example.

{
  "exp": 1493585187,
  "nbf": 1493581587,
  "ver": "1.0",
  "iss": "https://login.microsoftonline.com/f06c2fe8-709f-4030-85dc-38a4bfd9e82d/v2.0/",
  "sub": "a58e7c6c-7535-4074-93da-b0023fbaf3ac",
  "aud": "4e87c1dd-e5f5-4ac8-8368-bc6a98751b8b",
  "acr": "b2c_1a_trustframeworkprofileedit",
  "nonce": "defaultNonce",
  "iat": 1493581587,
  "auth_time": 1493581587,
  "extension_loyaltyId": "abc",
  "city": "Redmond"
}

Passaggi successiviNext steps

Aggiungere la nuova attestazione ai flussi per gli accessi con account di social networking modificando gli elementi TechnicalProfile elencati di seguito.Add the new claim to the flows for social account logins by changing the TechnicalProfiles listed below. Questi due elementi TechnicalProfile vengono usati per gli accessi con account di social networking/federati per scrivere e leggere i dati utente usando alternativeSecurityId come localizzatore dell'oggetto utente.These two TechnicalProfiles are used by social/federated account logins to write and read the user data using the alternativeSecurityId as the locator of the user object.

  <TechnicalProfile Id="AAD-UserWriteUsingAlternativeSecurityId">

  <TechnicalProfile Id="AAD-UserReadUsingAlternativeSecurityId">

È possibile usare gli stessi attributi di estensione tra i criteri predefiniti e personalizzati.Using the same extension attributes between built-in and custom policies. Quando si aggiungono attributi di estensione (noti anche come attributi personalizzati) tramite il portale, gli attributi vengono registrati usando la **b2c-extensions-app presente in ogni tenant b2c.When you add extension attributes (aka custom attributes) via the portal experience, those attributes are registered using the **b2c-extensions-app that exists in every b2c tenant. Per usare questi attributi di estensione nei criteri personalizzati:To use these extension attributes in your custom policy:

  1. All'interno del tenant b2c in portal.azure.com, passare a Azure Active Directory e selezionare Registrazioni dell'appWithin your b2c tenant in portal.azure.com, navigate to Azure Active Directory and select App registrations
  2. Trovare b2c-extensions-app e selezionarloFind your b2c-extensions-app and select it
  3. Nella riga "Essentials" registrare l'ID applicazione e l'ID oggettoUnder 'Essentials' record the Application ID and the Object ID
  4. Includerli nei metadati del profilo tecnico AAD-Common come indicato di seguito:Include them in your AAD-Common Technical profile metadata like as follows:
    <ClaimsProviders>
        <ClaimsProvider>
              <DisplayName>Azure Active Directory</DisplayName>
            <TechnicalProfile Id="AAD-Common">
              <DisplayName>Azure Active Directory</DisplayName>
              <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
              <!-- Provide objectId and appId before using extension properties. -->
              <Metadata>
                <Item Key="ApplicationObjectId">insert objectId here</Item> <!-- This is the "Object ID" from the "b2c-extensions-app"-->
                <Item Key="ClientId">insert appId here</Item> <!--This is the "Application ID" from the "b2c-extensions-app"-->
              </Metadata>

Per mantenere la coerenza con l'esperienza del portale, creare questi attributi tramite l'interfaccia utente del portale prima di usarli nei criteri personalizzati.To keep consistency with the portal experience, create these attributes using the portal UI before you use them in your custom policies. Quando si crea un attributo "ActivationStatus" nel portale, è necessario farvi riferimento, come indicato di seguito:When you create an attribute "ActivationStatus" in the portal, you must refer to it as follows:

extension_ActivationStatus in the custom policy
extension_<app-guid>_ActivationStatus via the Graph API.

riferimentoReference

  • Un profilo tecnico è un tipo di elemento che può essere considerato una funzione che definisce il nome di un endpoint, i relativi metadati, il protocollo e i dettagli dello scambio di attestazioni che deve essere eseguito dal Framework dell'esperienza di gestione delle identità.A Technical Profile (TP) is an element type that can be thought of as a function that defines an endpoint’s name, its metadata, its protocol, and details the exchange of claims that the Identity Experience Framework should perform. Quando questa funzione viene chiamata in un passaggio di orchestrazione o da un altro TechnicalProfile, gli elementi InputClaims e OutputClaims vengono forniti come parametri dal chiamante.When this function is called in an orchestration step or from another TechnicalProfile, the InputClaims and OutputClaims are provided as parameters by the caller.

  • Per una descrizione completa delle proprietà di estensione, vedere l'articolo ESTENSIONI DELLO SCHEMA DELLA DIRECTORY | CONCETTI RELATIVI ALL'API GRAPHFor full treatment on extension properties, see the article DIRECTORY SCHEMA EXTENSIONS | GRAPH API CONCEPTS

Nota

Gli attributi di estensione nell'API Graph vengono denominati usando la convenzione extension_ApplicationObjectID_attributename.Extension attributes in Graph API are named using the convention extension_ApplicationObjectID_attributename. I criteri personalizzati fanno riferimento agli attributi di estensione come extension_attributename, omettendo quindi ApplicationObjectId nel file XMLCustom policies refer to extensions attributes as extension_attributename, thus omitting the ApplicationObjectId in the XML