Azure Служба приложений - функция защиты с двумя политиками B2 C - PullRequest
3 голосов
/ 26 февраля 2020

У нас есть функция, работающая в Azure Служба приложений, обрабатывающая аутентифицированные вызовы, через Easyauth для учетных записей пользователей, которые размещены в клиенте Azure AD B2 C.

Эти учетные записи ранее были самостоятельными -обслуживается через встроенную B2 C политику регистрации и входа. Мы переходим к модели только по приглашениям и внедрили пользовательскую политику B2 C SignIn_Only на основе примеров Microsoft.

Мой вопрос касается именно конфигурации службы приложений. В настройках Аутентификация / Авторизация для нашей функции включена аутентификация службы приложений. «Действие, которое необходимо выполнить, когда запрос не аутентифицирован», установлено на «Разрешить анонимные запросы (без действий)». Azure Поставщик Active Directory настроен с идентификатором клиента нашей функции, а целевая аудитория установлена ​​для нашего мобильного приложения. URL-адрес эмитента имеет значение:

https://login.microsoftonline.com/ {OurTenantName} /v2.0/.well-known/openid-configuration?p= {OurBuiltinSignUpSignInPolicy}

При такой конфигурации запросы от пользователей, выполняющих вход с использованием встроенной политики, работают нормально, но пользователи, выполняющие вход с помощью пользовательской политики, возвращаются 401 Несанкционированные ошибки. И наоборот, если мы изменим URL-адрес издателя, чтобы он указывал на новую настраиваемую политику Signin_Only, запросы пользователей, выполняющих вход с использованием новой политики, будут работать нормально, но входы с использованием встроенной политики завершатся неудачно с ошибками 401.

I пробовал использовать конечные точки login.microsoft.com и {ourtenant} .b2clogin.com с одинаковым результатом. Я также проверил токены JWT, и все выглядит хорошо. Конечно, эмитент другой, но все остальное, включая ключи подписи, выглядит правильно.

Можно ли поддерживать вход пользователей через и встроенные и пользовательские политики? Большое спасибо.

1 Ответ

0 голосов
/ 27 февраля 2020

Насколько я знаю, мы не можем использовать встроенные и пользовательские политики в функции Azure. Потому что встроенные и пользовательские политики имеют разные метаданные эмитента. такие как jwk. Поэтому мы получим разную подпись токена доступа с двумя политиками. Однако мы можем просто предоставить одну конечную точку метаданных в функции Azure. Таким образом, функция просто может принять токен доступа с настроенной вами политикой.

Например, Моя встроенная политика jwk enter image description here

Моя пользовательская политика jwk enter image description here

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