Произошла ошибка сервера при использовании B2C на портале разработки управления API Azure

Я хочу добавить возможность входа или регистрации на моем портале разработчиков APIM через любой тип учетной записи Microsoft (личная или корпоративная, рабочая...).

Я загрузил пользовательскую политику SocialAndLocalAccounts из стартового пакета (удалил провайдера Facebook и добавил AADCommon-OpenIdConnect). Эти файлы я прикрепил ниже.

У меня возникают ошибки при попытке зарегистрироваться через локальную учетную запись или учетную запись Microsoft.

Попробуем посмотреть учетную запись Microsoft (мультитенантную)

  1. Нажмите кнопку «Мультитенантное добавление».

  2. Когда вы заполните адрес электронной почты и пароль, вы будете перенаправлены на webPortal.com/signup-oauth#provider=AadB2C&token=eyJhbGciOiJSUzI1NiIsImtpZ...

  3. Вроде все хорошо, но сессия у нас потеряна, а при нажатии кнопки "зарегистрироваться" получаем исключение:

  4. токен JWT

Аналогичное поведение у меня, когда я пытаюсь зарегистрироваться через локальную учетную запись, но на первом этапе - записываем пользователя, созданного в клиенте b2c, а затем мы можем войти по логину и паролю:

  1. Когда я заполнил адрес электронной почты и пароль и подтвердил адрес электронной почты, возникла эта ошибка, код ошибки 401 для конечных точек «/identity» и 403 для конечных точек «/users».

    • Запросы к пользователям и идентификаторам имеют заголовок: Авторизация: AadB2C. id_token="eyJhbGciOiJSUzI1NiIsImtpZC....."
  2. Когда я пытаюсь снова нажать «Учетная запись Microsoft», сервер перенаправляет меня на эту страницу:

  3. JWT из локальной учетной записи следующий:

Итак, арендатор Azure Active Directory B2C имеет:

  • Регистрация приложения — apimb2cdemo с секретным кодом, который я установил Идентификация APIM (учетные записи любого поставщика удостоверений или организации). каталог (для аутентификации пользователей с помощью пользовательских потоков))
  • Пользовательская политика SocialAndLocalAccounts из стартового пакета (Прикреплено)
  • регистрации приложений — ProxyIdentityExperienceFramework — приложение (учетные записи только в этом организационном каталоге (только арендатор — один арендатор))
  • регистрации приложений — IdentityExperienceFramework — приложение (учетные записи в только этот организационный каталог (только арендатор — один арендатор))
  • регистрация приложений — webapp1 — приложение (только для тестирования — jwt.ms) (Учетные записи в любом поставщике удостоверений или каталоге организации (для аутентификации пользователей с помощью пользовательских потоков))

Арендатор портала разработчиков APIM имеет:

  • регистрации приложений — приложение Azure AD B2C с секретным кодом, который у меня есть установлен на мой ClaimsProvider в TrustFrameworkExtensions
  • URL-адрес перенаправления: https://your-b2c-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp

  • (Учетные записи в любом каталоге организации (любой идентификатор Microsoft Entra) арендатор — Мультитенант) и личные учетные записи Microsoft (например, Skype, Xbox)) - Здесь я выбрал другой вариант по сравнению со статьей

  • новый Поставщик удостоверений на портале разработчиков APIM Меню

  • Azure Active Directory B2C — есть ссылка на приложение apimb2cdemo с идентификатором. секретный ключ, имя пользовательской политики и клиентская библиотека — MSAL.

Для этой задачи я использую эти уроки:

https://learn.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-user-flows?pivots=b2c-custom-policy (от 1 до 3 уроков)

https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-aad-b2c

https://learn.microsoft.com/en-us/azure/active-directory-b2c/identity-provider-azure-ad-multi-tenant?pivots=b2c-custom-policy

Здесь я оставил пользовательские политики, которые использую - https://drive.google.com/drive/folders/1F1uBgF1R96dTUVziNOrw2WTH6dd_xCUH?usp=sharing

Я понятия не имею, что произошло и почему я столкнулся с этими проблемами. Не могли бы вы помочь мне с этой проблемой?

Жду любых идей и решений.

Заранее спасибо!

Первым делом настраиваемые политики — посмотрите журналы — Learn.microsoft.com/en-us/azure/active-directory-b2c/…

rbrayb 04.07.2024 00:41

Можете ли вы поделиться сообщением об исключении, которое вы получаете на полной странице регистрации?

Ikhtesam Afrin 04.07.2024 09:28

@IkhtesamAfrin Если вы спрашиваете о запросе к конечной точке «идентификации» в случаях с несколькими арендаторами, я получаю код состояния 401 «Неавторизованный» без каких-либо данных ответа... Перед отправкой запроса на идентификацию у меня есть запрос к Token, и это запрос возвращает ОК. Похоже, мой портал разработки APIM не может управлять AadB2C id_token = "eyJh" в заголовке. Нужно ли мне настраивать AOuth 2.0 или Open Connect ID на портале разработки Azure APIM?

dev 04.07.2024 12:12

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

Ikhtesam Afrin 04.07.2024 12:14

@IkhtesamAfrin Да, я всегда использовал его в режиме инкогнито в Chrome, потому что пытаюсь использовать другой профиль.

dev 04.07.2024 12:16

Обратитесь к этому ТАК stackoverflow.com/questions/78675204/…

Ikhtesam Afrin 04.07.2024 12:19

@IkhtesamAfrin Я перешел на ADAL в браузере в режиме инкогнито, когда я пытаюсь нажать кнопку «Учетная запись Microsoft» - у меня есть следующее исключение: AADB2C90057: предоставленное приложение не настроено для разрешения неявного потока «OAuth». Идентификатор корреляции: f03bf928-63cd-4aed-9c93-bc24b6c2c475 Временная метка: 2024-07-04 10:47:21Z Все приложения имеют токены доступа (используются для неявных потоков) = true и токены идентификатора (используются для неявных и гибридных потоков) = истинный

dev 04.07.2024 12:50

Вы установили флажок Токен доступа и токены идентификатора? Также вы добавили URL-адрес перенаправления?

Ikhtesam Afrin 04.07.2024 12:56

Давайте продолжим обсуждение в чате.

dev 04.07.2024 13:04

@IkhtesamAfrin, спасибо за помощь. Я исправил эту проблему.

dev 26.07.2024 09:18
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
10
67
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Рад сообщить вам, что я исправил эту проблему.

В моем случае: Я перешел на библиотеку ADAL и пропустил утверждение (oid).

Утверждения ObjectID (oid) и субъекта (sub) пользователя в токене AADB2C необходимы APIM для идентификации вызывающего абонента вызова создания пользователя APIM с портала разработчика. Отсутствие любого из этих двух утверждений приведет к проблеме AccessDenied.

Другие вопросы по теме