Definir atributos personalizados no Azure Ative Directory B2C

Antes de começar, use o seletor Escolha um tipo de política para escolher o tipo de política que você está configurando. O Azure Ative Directory B2C oferece dois métodos para definir como os usuários interagem com seus aplicativos: por meio de fluxos de usuário predefinidos ou por meio de políticas personalizadas totalmente configuráveis. As etapas exigidas neste artigo são diferentes para cada método.

No artigo Adicionar declarações e personalizar a entrada do usuário usando políticas personalizadas, você aprenderá a usar atributos de perfil de usuário internos. Neste artigo, você habilita um atributo personalizado no diretório do Azure Ative Directory B2C (Azure AD B2C). Mais tarde, você pode usar o novo atributo como uma declaração personalizada em fluxos de usuário ou políticas personalizadas simultaneamente.

O diretório do Azure AD B2C inclui um conjunto de atributos interno. No entanto, muitas vezes você precisa criar seus próprios atributos para gerenciar seu cenário específico, por exemplo, quando:

  • Um aplicativo voltado para o cliente precisa persistir um atributo loyaltyId .
  • Um provedor de identidade tem um identificador de usuário exclusivo, uniqueUserGUID, que deve ser persistido.
  • Uma jornada de usuário personalizada precisa persistir o estado do usuário, migrationStatus, para que outra lógica possa operar.

Os termos propriedade extension, atributo personalizado e declaração personalizada referem-se à mesma coisa no contexto deste artigo. O nome varia dependendo do contexto, como aplicativo, objeto ou política.

O Azure AD B2C permite estender o conjunto de atributos armazenados em cada conta de usuário. Você também pode ler e gravar esses atributos usando a API do Microsoft Graph.

Pré-requisitos

Criar um atributo personalizado

  1. Inicie sessão no portal do Azure como administrador global do inquilino do Azure AD B2C.
  2. Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para seu locatário do Azure AD B2C no menu Diretórios + assinaturas .
  3. Escolha Todos os serviços no canto superior esquerdo do portal do Azure, procure e selecione Azure AD B2C.
  4. Selecione Atributos de usuário e, em seguida, selecione Adicionar.
  5. Forneça um Nome para o atributo personalizado (por exemplo, "ShoeSize")
  6. Escolha um tipo de dados. Apenas String, Booleano e Int estão disponíveis.
  7. Opcionalmente, insira uma Descrição para fins informativos.
  8. Selecione Criar.

O atributo personalizado agora está disponível na lista de atributos de usuário e para uso em seus fluxos de usuário. Um atributo personalizado só é criado na primeira vez que é usado em qualquer fluxo de usuário, e não quando você o adiciona à lista de atributos de usuário.

Usar um atributo personalizado em seu fluxo de usuário

  1. Em seu locatário do Azure AD B2C, selecione Fluxos de usuário.
  2. Selecione sua política (por exemplo, "B2C_1_SignupSignin") para abri-la.
  3. Selecione Atributos de usuário e, em seguida, selecione o atributo personalizado (por exemplo, "ShoeSize"). Selecione Guardar.
  4. Selecione Declarações de aplicativo e, em seguida, selecione o atributo personalizado.
  5. Selecione Guardar.

Depois de criar um novo usuário usando o fluxo de usuário, você pode usar o recurso Executar fluxo de usuário no fluxo de usuário para verificar a experiência do cliente. Agora você deve ver o ShoeSize na lista de atributos coletados durante a jornada de inscrição e vê-lo no token enviado de volta ao seu aplicativo.

Aplicativo de extensões do Azure AD B2C

Os atributos de extensão só podem ser registrados em um objeto de aplicativo, mesmo que possam conter dados para um usuário. O atributo extension é anexado ao aplicativo chamado b2c-extensions-app. Não modifique este aplicativo, pois ele é usado pelo Azure AD B2C para armazenar dados do usuário. Você pode encontrar este aplicativo em Azure AD B2C, registros de aplicativos.

Obter o ID do aplicativo de extensões

  1. Inicie sessão no portal do Azure.
  2. Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para seu locatário do Azure AD B2C no menu Diretórios + assinaturas .
  3. No menu à esquerda, selecione Azure AD B2C. Ou, selecione Todos os serviços e procure e selecione Azure AD B2C.
  4. Selecione Registos de aplicações e, em seguida, selecione Todas as aplicações.
  5. Selecione a aplicação b2c-extensions-app. Do not modify. Used by AADB2C for storing user data..
  6. Copie o ID da Aplicação. Exemplo: 11111111-1111-1111-1111-111111111111.

Obter propriedades do aplicativo de extensões

  1. Inicie sessão no portal do Azure.
  2. Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para seu locatário do Azure AD B2C no menu Diretórios + assinaturas .
  3. No menu à esquerda, selecione Azure AD B2C. Ou, selecione Todos os serviços e procure e selecione Azure AD B2C.
  4. Selecione Registos de aplicações e, em seguida, selecione Todas as aplicações.
  5. Selecione o b2c-extensions-app. Não modificar. Usado pelo AADB2C para armazenar dados do usuário. aplicação.
  6. Copie os seguintes identificadores para a área de transferência e salve-os:
    • ID da Aplicação. Exemplo: 11111111-1111-1111-1111-111111111111.
    • ID do objeto. Exemplo: 22222222-2222-2222-2222-222222222222.

Modificar sua política personalizada

Para habilitar atributos personalizados em sua política, forneça a ID do Aplicativo e a ID do Objeto do Aplicativo nos metadados do perfil técnico AAD-Common. O perfil técnico AAD-Common* é encontrado no perfil técnico base do Microsoft Entra ID e fornece suporte para o gerenciamento de usuários do Microsoft Entra. Outros perfis técnicos do Microsoft Entra ID incluem AAD-Common para usar sua configuração. Substitua o perfil técnico AAD-Common no arquivo de extensão.

  1. Abra o arquivo de extensões da sua política. Por exemplo, SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  2. Encontre o elemento ClaimsProviders. Adicione um novo ClaimsProvider ao elemento ClaimsProviders.

  3. Insira o ID do aplicativo que você gravou anteriormente, entre os elementos de abertura <Item Key="ClientId"> e fechamento</Item>.

  4. Insira o Application ObjectID que você gravou anteriormente, entre os elementos de abertura <Item Key="ApplicationObjectId"> e fechamento </Item> .

    <!-- 
    <ClaimsProviders> -->
      <ClaimsProvider>
        <DisplayName>Azure Active Directory</DisplayName>
        <TechnicalProfiles>
          <TechnicalProfile Id="AAD-Common">
            <Metadata>
              <!--Insert b2c-extensions-app application ID here, for example: 11111111-1111-1111-1111-111111111111-->  
              <Item Key="ClientId"></Item>
              <!--Insert b2c-extensions-app application ObjectId here, for example: 22222222-2222-2222-2222-222222222222-->
              <Item Key="ApplicationObjectId"></Item>
            </Metadata>
          </TechnicalProfile>
        </TechnicalProfiles> 
      </ClaimsProvider>
    <!-- 
    </ClaimsProviders> -->
    

Carregue a sua política personalizada

  1. Inicie sessão no portal do Azure.
  2. Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para seu locatário do Azure AD B2C no menu Diretórios + assinaturas .
  3. Escolha Todos os serviços no canto superior esquerdo do portal do Azure e, em seguida, procure e selecione Registos de aplicações.
  4. Selecione Identity Experience Framework.
  5. Selecione Carregar política personalizada e, em seguida, carregue os arquivos de política TrustFrameworkExtensions.xml que você alterou.

Nota

Na primeira vez que o perfil técnico do Microsoft Entra ID persiste a declaração para o diretório, ele verifica se o atributo personalizado existe. Se isso não acontecer, ele criará o atributo personalizado.

Criar um atributo personalizado através do portal do Azure

Os mesmos atributos de extensão são compartilhados entre políticas internas e personalizadas. Quando você adiciona atributos personalizados por meio da experiência do portal, esses atributos são registrados usando o b2c-extensions-app que existe em cada locatário B2C.

Você pode criar esses atributos usando a interface do usuário do portal antes ou depois de usá-los em suas políticas personalizadas. Quando você cria um atributo loyaltyId no portal, você deve se referir a ele da seguinte maneira:

Nome Utilizado em
extension_loyaltyId Política personalizada
extension_<b2c-extensions-app-guid>_loyaltyId Microsoft Graph API

Nota

Ao usar um atributo personalizado em políticas personalizadas, você deve prefixar a ID do tipo de declaração com extension_ para permitir que o mapeamento de dados correto ocorra no diretório B2C do Azure AD.

O exemplo a seguir demonstra o uso de atributos personalizados em uma definição de declaração de política personalizada do Azure AD B2C.

<BuildingBlocks>
  <ClaimsSchema>
    <ClaimType Id="extension_loyaltyId">
      <DisplayName>Loyalty Identification</DisplayName>
      <DataType>string</DataType>
      <UserHelpText>Your loyalty number from your membership card</UserHelpText>
      <UserInputType>TextBox</UserInputType>
    </ClaimType>
  </ClaimsSchema>
</BuildingBlocks>

O exemplo a seguir demonstra o uso de um atributo personalizado na política personalizada do Azure AD B2C em um perfil técnico, entrada, saída e declarações persistentes.

<InputClaims>
  <InputClaim ClaimTypeReferenceId="extension_loyaltyId"  />
</InputClaims>
<PersistedClaims>
  <PersistedClaim ClaimTypeReferenceId="extension_loyaltyId" />
</PersistedClaims>
<OutputClaims>
  <OutputClaim ClaimTypeReferenceId="extension_loyaltyId" />
</OutputClaims>

Gerenciar atributos de extensão por meio do Microsoft Graph

Você pode usar o Microsoft Graph para criar e gerenciar os atributos personalizados e, em seguida, definir os valores para um usuário. Os atributos de extensão também são chamados de extensões de diretório ou Microsoft Entra.

Os atributos personalizados (extensões de diretório) na API do Microsoft Graph são nomeados usando a convenção extension_{appId-without-hyphens}_{extensionProperty-name} onde é a versão removida do appId (chamada ID do Cliente no portal do Azure AD B2C) para o b2c-extensions-app com apenas caracteres 0-9 e {appId-without-hyphens} A-Z. Por exemplo, se o appId do aplicativo for 25883231-668a-43a7-80b2-5685c3f874bc e o nome do b2c-extensions-app atributo for loyaltyId, o atributo personalizado será chamado extension_25883231668a43a780b25685c3f874bc_loyaltyId.

Saiba como gerenciar atributos de extensão em seu locatário do Azure AD B2C usando a API do Microsoft Graph.

Remover atributo de extensão

Ao contrário dos atributos internos, os atributos personalizados podem ser removidos. Os valores dos atributos de extensão também podem ser removidos.

Importante

Antes de remover o atributo personalizado, para cada conta no diretório, defina o valor do atributo extension como null. Dessa forma, você remove explicitamente os valores do atributo de extensão. Em seguida, continue a remover o próprio atributo de extensão. Os atributos personalizados podem ser consultados usando a API do Microsoft Graph.

Use as seguintes etapas para remover um atributo personalizado de um fluxo de usuário em seu locatário:

  1. Inicie sessão no portal do Azure como administrador global do inquilino do Azure AD B2C.
  2. Verifique se você está usando o diretório que contém seu locatário do Azure AD B2C:
    1. Selecione o ícone Diretórios + assinaturas na barra de ferramentas do portal.
    2. Nas configurações do Portal | Página Diretórios + assinaturas , localize seu diretório do Azure AD B2C na lista Nome do diretório e selecione Alternar
  3. Escolha Todos os serviços no canto superior esquerdo do portal do Azure, procure e selecione Azure AD B2C.
  4. Selecione Atributos de usuário e, em seguida, selecione o atributo que deseja excluir.
  5. Selecione Excluir e, em seguida, selecione Sim para confirmar.

Use a API do Microsoft Graph para gerenciar os atributos personalizados.

Próximos passos

Saiba como adicionar declarações e personalizar a entrada do usuário usando políticas personalizadas. Este exemplo usa uma declaração interna 'cidade'. Para usar um atributo personalizado, substitua 'cidade' por seus próprios atributos personalizados.