Служба приложений Azure Easy Auth с учетными данными клиента Поток предоставления в AAD B2C - PullRequest
0 голосов
/ 15 декабря 2018

Можно ли защитить веб-API в службе приложений в Azure, используя встроенные параметры проверки подлинности / авторизации, и в то же время получить к нему доступ с помощью потока предоставления учетных данных клиента OAuth?

У меня естьпроверка подлинности службы приложения с помощью Azure AD B2C.В этом арендаторе B2C у меня зарегистрировано веб-приложение / API, и аутентификация работает нормально для использования веб-приложения.Я добавил область в разделе Опубликованные области этого приложения AD B2C, а также добавил URI идентификатора приложения для этой области.Затем я создал другое приложение (ClientApp) в клиенте для представления другой службы, которой я хочу предоставить доступ к первому API.Я сгенерировал для него Секретный ключ, а также в разделе доступа к API добавил область, созданную в другом приложении.

Затем в почтальоне я получаю токен, используя следующий

  • Тип предоставления: учетные данные клиента
  • URL-адрес токена доступа: https://login.microsoftonline.com/mytenantname.onmicrosoft.com/oauth2/v2.0/token (по какой-то причине мне приходится использовать login.microsoftonline, поскольку домен b2clogin для этого не работает)
  • КлиентИдентификатор: идентификатор, который появляется в приложении, зарегистрированном для ClientApp
  • Секрет клиента: секрет, сгенерированный в ClientApp
  • Область действия: URI идентификатора приложения Я добавил регистрацию веб-приложения.

Я успешно получил токен, но когда я пытаюсь получить доступ к веб-сайту, используя токен на предъявителя с почтальоном, я просто получаю 401.

Ответы [ 2 ]

0 голосов
/ 05 августа 2019

Не поддерживается использование потока client_credentials для регистрации приложений AAD B2C.Поэтому вместо этого вам нужно создать регистрацию приложения с помощью обычного блейда AD Azure.
https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-apps#current-limitations

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

Вместо этого вам нужно использовать библиотеку, которая может принимать токены от нескольких органов.Вот пример:
Использовать множественную аутентификацию на носителе JWT

0 голосов
/ 05 августа 2019

Не уверен, правильно ли я понимаю, но кажется, что вы используете URL в качестве области.Это работает, если вы задаете область для идентификатора приложения службы приложений (вы можете найти корпоративное приложение с именем службы приложения в Azure AD) вместо использования URL-адреса.(формат: /.default)

Я все еще пытаюсь выяснить, можно ли использовать URL в качестве области действия ...

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