Не удается восстановить пароль учетной записи B2 C через API Graph - PullRequest
0 голосов
/ 25 апреля 2020

Надеясь, что кто-то может пролить свет на следующее:

Я получил базовое веб-API Angular &. Net, которое использует Azure B2 C для аутентификации пользователей. Учетные записи пользователей создаются самими пользователями с помощью настраиваемой политики входа / регистрации, или администратор может создавать учетные записи с помощью приложения с помощью API Graph.

В соответствии с требованиями, приложение использует имена пользователей (в отличие от адресов электронной почты) для входа в приложение. До сих пор мне удалось заставить все работать, кроме следующего сценария:

Когда учетная запись создается с помощью API Graph, владелец этой учетной записи не может сбросить пароль учетной записи. Ошибка: «Не удалось найти учетную запись для предоставленного идентификатора пользователя».

Это не относится к учетным записям, которые создаются с помощью настраиваемой политики регистрации, поэтому я провел некоторое сравнение и обнаружил, что для этой учетной записи при создании через API Graph отсутствует электронная почта (ее можно найти в разделе «Пользователь -> Методы аутентификации»). Я посмотрел на заполнение этого поля, но кажется, что атрибут «Почта» является «только для чтения» (в любом случае я не уверен, является ли этот атрибут правильным).

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

Заранее благодарен за вашу помощь

Ответы [ 3 ]

1 голос
/ 27 апреля 2020

Так что мне удалось заставить это работать, используя подход, изложенный Jas Suri. Это шаги, которые я прошел

  1. Создание собственного атрибута в моем клиенте B2 C для хранения адреса электронной почты учетной записи
  2. Включение типа утверждения настраиваемого атрибута (extension_emailAddress) как а также strongAuthenticationEmailAddress в TrustFrameworkBase. xml
  3. Обновлены пользовательские политики моих приложений, чтобы включить технический профиль для обнаружения локальной учетной записи. Я просто скопировал необходимые фрагменты из здесь
  4. Обновил обнаружение локальной учетной записи, чтобы выполнить сравнение с extenstion_emailAddres вместо strongAuthenticationEmailAddress.
  5. Добавлен дополнительный шаг в Зарегистрируйте поездку пользователя, чтобы значение в strongAuthenticationEmailAddress было скопировано в extension_emailAddress
  6. Обновлена ​​функция веб-API / Graph API «Создать пользователя», так что она устанавливает extension_appidguid_emailAddress

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

рад предоставить дополнительную информацию, если кто-либо сталкивается с этим.

0 голосов
/ 26 апреля 2020

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

0 голосов
/ 26 апреля 2020
Атрибут

Mail не совпадает с атрибутом Email в разделе «Методы аутентификации», и в настоящее время нет такого графа API для установки значения Email в разделе «Методы аутентификации».

enter image description here

Кстати, для пользователя не нужно создавать Azure AD B2 C, поскольку пользователи могут зарегистрироваться самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...