Определение настраиваемых атрибутов в Azure Active Directory B2C

Для начала с помощью селектора Choose a policy type (Выбрать тип политики) выберите тип пользовательской политики. Azure Active Directory B2C предлагает два метода определения способа взаимодействия пользователей с вашими приложениями: с помощью предопределенных потоков пользователей или полностью настраиваемых пользовательских политик. Действия, которые необходимо выполнить, отличаются для каждого метода.

В статье "Добавление утверждений" и настройка входных данных пользователей с помощью настраиваемых политик вы узнаете, как использовать встроенные атрибуты профиля пользователя. В этой статье описана активация настраиваемого атрибута в каталоге Azure Active Directory B2C (Azure AD B2C). Позже вы сможете использовать новый атрибут в качестве настраиваемого утверждения в пользовательских потоках или пользовательских политиках одновременно.

Каталог Azure AD B2C прилагается ко встроенному набору атрибутов. Однако часто приходится создавать собственные атрибуты для управления конкретной ситуацией, например:

  • Приложению, ориентированному на клиента, необходимо сохранить атрибут LoyaltyId.
  • Поставщик удостоверений имеет уникальный идентификатор пользователя, uniqueUserGUID, который необходимо сохранить.
  • Настраиваемый путь взаимодействия пользователя должен сохранить состояние пользователя migrationStatus для выполнения другой логики.

В контексте этой статьи свойство расширения, настраиваемый атрибут и пользовательское утверждение подразумевают одно и то же. Имя изменяется в зависимости от контекста, например приложения, объекта, политики.

Azure AD B2C позволяет расширить набор атрибутов, хранящихся в каждой учетной записи пользователя. Эти атрибуты можно также считывать и записывать с помощью Microsoft API Graph.

Необходимые компоненты

Создание настраиваемого атрибута

  1. Войдите на портал Azure с правами глобального администратора клиента Azure AD B2C.
  2. Если у вас есть доступ к нескольким клиентам, выберите значок Параметры в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню каталогов и подписок.
  3. Выберите Все службы в левом верхнем углу окна портала Azure, найдите службу Azure AD B2C и выберите ее.
  4. Выберите Атрибуты пользователя, а затем щелкните Добавить.
  5. Введите Имя настраиваемого атрибута (например, ShoeSize).
  6. Выберите Тип данных. Здесь доступны только варианты String, Boolean и Int.
  7. При желании введите Описание, которое используется только в информационных целях.
  8. Выберите Создать.

Теперь настраиваемый атрибут доступен в списке Атрибуты пользователя и может использоваться в ваших потоках пользователей. Настраиваемый атрибут создается только при первом использовании в любом потоке пользователя, а не при добавлении его в список атрибутов пользователя.

Использование настраиваемого атрибута в потоке пользователя

  1. В клиенте Azure AD B2C выберите Потоки пользователей.
  2. Откройте политику (например B2C_1_SignupSignin), щелкнув ее.
  3. Выберите Атрибуты пользователя, а затем — настраиваемый атрибут (например, ShoeSize). Выберите Сохранить.
  4. Щелкните Утверждения приложения и выберите настраиваемый атрибут.
  5. Выберите Сохранить.

После создания нового пользователя с помощью потока пользователя можно применить функцию запуска потока пользователя, чтобы проверить взаимодействие потока пользователя с клиентом. Теперь вы увидите ShoeSize в списке атрибутов, собираемых в процессе регистрации, а также в токене, возвращаемом в приложение.

Azure AD B2C: приложение расширений

Атрибуты расширения можно зарегистрировать только в объекте приложения, даже если они могут содержать данные для пользователя. Атрибут расширения прикрепляется к приложению b2c-extensions-app. Не изменяйте это приложение, так как оно используется Azure AD B2C для хранения пользовательских данных. Это приложение находится в разделе регистрации приложений Azure AD B2C.

Получение идентификатора приложения расширений

  1. Войдите на портал Azure.
  2. Если у вас есть доступ к нескольким клиентам, выберите значок Параметры в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню каталогов и подписок.
  3. В меню слева выберите Azure AD B2C. Либо щелкните Все службы, а затем найдите и выберите Azure AD B2C
  4. Нажмите App registrations (Регистрации приложения) и выберите All applications (Все приложения).
  5. Выберите приложение b2c-extensions-app. Do not modify. Used by AADB2C for storing user data..
  6. Скопируйте идентификатор приложения. Пример: 11111111-1111-1111-1111-111111111111.

Получение свойств приложения расширений

  1. Войдите на портал Azure.
  2. Если у вас есть доступ к нескольким клиентам, выберите значок Параметры в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню каталогов и подписок.
  3. В меню слева выберите Azure AD B2C. Либо щелкните Все службы, а затем найдите и выберите Azure AD B2C
  4. Нажмите App registrations (Регистрации приложения) и выберите All applications (Все приложения).
  5. Выберите b2c-extensions-app. Не изменяйте его. Используется AADB2C для хранения пользовательских данных. приложение.
  6. Скопируйте следующие идентификаторы в буфер обмена и сохраните их:
    • Идентификатор приложения. Пример: 11111111-1111-1111-1111-111111111111.
    • Идентификатор объекта. Пример: 22222222-2222-2222-2222-222222222222.

Изменение настраиваемой политики

Чтобы включить пользовательские атрибуты в политике, укажите идентификатор приложения и идентификатор объекта приложения в метаданных технического профиля AAD-Common. Технический профиль AAD-Common* находится в базовом техническом профиле идентификатора Microsoft Entra ID и обеспечивает поддержку управления пользователями Microsoft Entra. Другие технические профили Идентификатора Записи Майкрософт включают AAD-Common для использования его конфигурации. Переопределите технический профиль AAD-Common в файле расширения.

  1. Откройте файл расширения политики. Например, SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  2. Найдите элемент ClaimsProviders. Добавьте нового поставщика утверждений в элемент ClaimsProviders.

  3. Вставьте ранее записанный идентификатор приложения между открывающим <Item Key="ClientId"> и закрывающим </Item> элементами.

  4. Вставьте ранее записанный идентификатор объекта приложения между открывающим <Item Key="ApplicationObjectId"> и закрывающим </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> -->
    

Отправка настраиваемой политики

  1. Войдите на портал Azure.
  2. Если у вас есть доступ к нескольким клиентам, выберите значок Параметры в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню каталогов и подписок.
  3. Выберите Все службы в левом верхнем углу окна портала Azure, а затем найдите и выберите Регистрация приложений.
  4. Выберите Инфраструктура процедур идентификации.
  5. Выберите Upload Custom Policy (Отправить пользовательскую политику) и отправьте файл политики TrustFrameworkExtensions.xml, который вы изменили.

Примечание.

При первом техническом профиле идентификатора Microsoft Entra id сохраняется утверждение в каталоге, оно проверка, существует ли пользовательский атрибут. Если это не так, он создает пользовательский атрибут.

Создание настраиваемого атрибута с помощью портала Azure

Одинаковые атрибуты расширения общие для встроенных и пользовательских политик. При добавлении атрибутов пользовательских атрибутов на портал они регистрируются с помощью приложения b2c-extensions-app, содержащегося в каждом клиенте B2C.

Вы можете создать эти атрибуты с помощью пользовательского интерфейса портала, до или после их использования в пользовательских политиках. При создании атрибута loyaltyId на портале необходимо обратиться к нему следующим образом.

Имя. Используется в
extension_loyaltyId Настраиваемая политика
extension_<b2c-extensions-app-guid>_loyaltyId API Microsoft Graph

Примечание.

При использовании настраиваемого атрибута в настраиваемых политиках, необходимо добавить extension_ в качестве префикса к идентификатору типа утверждения, чтобы обеспечить правильное сопоставление данных в каталоге Azure AD B2C.

В следующем примере показано использование настраиваемых атрибутов в определении утверждения настраиваемой политики 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>

В следующем примере демонстрируется использование настраиваемого атрибута в Azure AD B2C настраиваемой политики в техническом профиле, вводе, выходе и сохраненных утверждениях.

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

Управление атрибутами расширения с помощью Microsoft Graph

Вы можете использовать Microsoft Graph для создания пользовательских атрибутов и управления ими, а затем задать их значения для пользователя. Атрибуты расширения также называются расширениями каталога или Microsoft Entra.

Для именования пользовательских атрибутов (расширений каталога) в Microsoft API Graph используется соглашение extension_{appId-without-hyphens}_{extensionProperty-name},где {appId-without-hyphens} обозначает чередуемую версию appId (идентификатора клиента на портале Azure AD B2C) для b2c-extensions-app, в котором допускаются только символы 0-9 и A-Z. Например, если идентификатор appIdb2c-extensions-app приложения и 25883231-668a-43a7-80b2-5685c3f874bc имя атрибута имеет значение loyaltyId, то пользовательский атрибут называется extension_25883231668a43a780b25685c3f874bc_loyaltyId.

Узнайте, как управлять атрибутами расширения в клиенте Azure AD B2C с помощью API Microsoft Graph.

Удаление атрибута расширения

В отличие от встроенных атрибутов, настраиваемые атрибуты можно удалить. Значения атрибутов расширения также можно удалить.

Важно!

Прежде чем удалить настраиваемый атрибут, для каждой учетной записи в каталоге задайте значение null для атрибута расширения. Таким образом, вы явно удалите значения атрибута расширения. Затем перейдите к удалению самого атрибута расширения. Пользовательские атрибуты можно запрашивать с помощью API Microsoft Graph.

Чтобы удалить настраиваемый атрибут из потока пользователя в клиенте, выполните следующие действия.

  1. Войдите на портал Azure с правами глобального администратора клиента Azure AD B2C.
  2. Убедитесь, что вы используете каталог, содержащий клиент Azure AD B2C:
    1. На панели инструментов портала выберите значок Каталоги и подписки.
    2. На странице Настройки портала | Каталоги и подписки в списке "Имя каталога" найдите свой каталог Azure AD B2C и выберите Переключить
  3. Выберите Все службы в левом верхнем углу окна портала Azure, найдите службу Azure AD B2C и выберите ее.
  4. Выберите Атрибуты пользователя, а затем — атрибут, который хотите удалить.
  5. Выберите Удалить, а затем — Да для подтверждения вашего выбора.

Используйте API Microsoft Graph для управления настраиваемыми атрибутами.

Следующие шаги

Узнайте, как добавлять утверждения и настраивать входные данные пользователей с помощью пользовательских политик. В этом образце используется встроенное утверждение "city". Чтобы использовать настраиваемый атрибут, замените "city" на собственные настраиваемые атрибуты.