Azure B2C — ссылка IdentityProvider на UserFlow вызывает 403 с помощью Graph API

#azure #microsoft-graph-api #azure-ad-b2c

#azure #microsoft-graph-api #azure-ad-b2c

Вопрос:

Я пытаюсь использовать Microsoft Graph API для настройки экземпляра Azure B2C. В частности, мне нужно создать UserFlows и IdentityProviders. Для этой цели я создал AppRegistration с IdentityProvider.ReadWrite .Все и IdentityUserFlow.ReadWrite.Все разрешения приложений API для Microsoft Graph. Я могу без проблем вызывать API для создания новых пользовательских потоков и поставщиков удостоверений, но я не могу связать потоки с поставщиком удостоверений. Всякий раз, когда я использую какой-либо из связующих API, я получаю сообщение об ошибке:

AADB2C (авторизация пользователя: доступ запрещен)

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

 GET https://graph.microsoft.com/beta/identity/b2cUserFlows/B2C_1_{flowId}/identityProviders
  

Ответом на этот запрос является 403 с

 {
  "error": {
    "code": "AADB2C",
    "message": "User Authorization: Access is denied.",
    "innerError": ...
  }
}
  

Я использую бета-API, как описано в документации здесь: https://learn.microsoft.com/en-us/graph/api/b2cuserflows-list-identityproviders?view=graph-rest-betaamp;tabs=http. Я получаю ошибку samme при попытке связать поток пользователей с поставщиком удостоверений, как описано в документации здесь: https://learn.microsoft.com/en-us/graph/api/b2cuserflows-update-identityprovider?view=graph-rest-betaamp;tabs=http

Есть идеи, почему я продолжаю получать этот блок авторизации?

Обновление: я попытался расширить .IdentityProviders присваивает свойство userflow при чтении его из graph api. Это не дает 403, но список поставщиков удостоверений в возвращаемом пользовательском потоке пуст, даже если поставщики были добавлены в поток вручную на портале Azure.

Комментарии:

1. Пожалуйста, укажите идентификатор запроса или корреляции, а также временную метку или дату.

2. @AlfredoR.-MSFTIdentity Вот идентификатор корреляции из запроса, в котором 403 пытается перечислить поставщиков удостоверений для пользовательского потока: 49557e54-296d-4115-9cf2-e555afee5474 (Дата: 2020-09-21T18:59:52)

3. Убедитесь, что вы нажали «предоставить согласие администратора». См. i.stack.imgur.com/WlwBo.png . Если у вас все еще есть эта проблема, вы можете декодировать свой токен доступа в jwt.io чтобы узнать, включает ли оно IdentityUserFlow.ReadWrite.All разрешение приложения. Но, хотя у меня нет ошибки 403, у меня есть другая ошибка Resource not found for the segment 'identityProviders'. , похоже, что эта конечная точка недоступна, хотя в официальном документе уже упоминалось.

4. @AllenWu Я дал согласие администратора на разрешение API, и я могу использовать другие API, для которых требуется это разрешение. Что касается ошибки сегмента, которую вы видите. Вы уверены, что получаете доступ graph.microsoft.com/beta/identity **b2cUserFlows**/{id}/identityProviders и не graph.microsoft.com/beta/identity/UserFlows {id}/Идентификаторы?

5. Спасибо за напоминание! Я их перепутал. Я протестирую его и вернусь, когда у меня будет новое обновление. Кстати, используете ли вы поток учетных данных клиента для получения токена доступа?

Ответ №1:

Пожалуйста, убедитесь, что соблюдаете это:

Учетная запись work или school должна принадлежать одной из следующих ролей:

Глобальный администратор Внешняя идентификация Администратор потока пользователей