Правильный URL для входа в Azure AD B2C - PullRequest
0 голосов
/ 22 мая 2018

Я настроил свое приложение для использования Azure AD B2C.В приложении есть общедоступная страница, которая разрешает анонимный доступ, и здесь у меня есть ссылка для входа на страницу входа Azure AD B2C.Я получаю URL-адрес этой ссылки из следующего места на портале Azure в моем Sign up or Sign in policies: enter image description here

Я просто нажимаю кнопку «Копировать», обведенную кружком, и вставляю еев мою ссылку на моей общедоступной странице.

Странно то, что если я щелкаю ссылку на общедоступной странице, я перехожу на страницу входа Azure AD B2C, где я вхожу, но когда меня перенаправляют обратно в мое приложение,по какой-то причине ему это не нравится, и он снова отправляет меня на страницу входа.

Однако, если я просто пытаюсь перейти в защищенную область в моем приложении напрямую, т.е. http://localhost:49065/member, я автоматически получаюперенаправляется на страницу входа в Azure AD B2C, и после входа в систему он перенаправляет меня обратно в мое приложение, и все работает нормально.

Так что, похоже, URL-адрес, который я использую в своей ссылке, мне не нравится.Любая идея, где я могу получить правильный URL-адрес для входа в Azure AD B2C, который я могу использовать на своей общедоступной странице?

ОБНОВЛЕНИЕ:

Вот два URL-адреса.Первый не работает, а второй работает.Между ними есть некоторые различия.

Первый - тот, который я получил с портала Azure - см. Изображение выше.Этот на самом деле НЕ работает, потому что он снова возвращает меня к входу в систему:

https://login.microsoftonline.com/myb2ctenant.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_MyApp_SignUp_SignIn&client_id=aed18b8d-cc45-a612-82b3-5128f414d22d&nonce=defaultNonce&redirect_uri=http%3A%2F%2Flocalhost%3A49065%2Fmember&scope=openid&response_type=id_token&prompt=login

Этот генерируется MSAL.js.Это URL-адрес, который я получаю при перенаправлении на страницу входа в Azure AD B2C, если я пытаюсь перейти непосредственно в защищенную область своего приложения.Этот работает хорошо:

https://login.microsoftonline.com/te/myb2ctenant.onmicrosoft.com/b2c_1_myapp_signup_signin/oauth2/v2.0/authorize?response_type=id_token&scope=https%3A%2F%2Fmyb2ctenant.onmicrosoft.com%2Fwebclient%2Fopenid%20openid%20profile&client_id=aed18b8d-cc45-a612-82b3-5128f414d22d&redirect_uri=http%3A%2F%2Flocalhost%3A49065%2Fmember&state=c3088fbf-a895-43c7-8f9b-4f0351631323&nonce=26b3cb5c-7cc5-40c9-935f-654735d4c9b1&client_info=1&x-client-SKU=MSAL.JS&x-client-Ver=0.1.5&client-request-id=3b769d57-3c6d-45bb-bd83-f126ab525218&prompt=select_account&response_mode=fragment

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

1 Ответ

0 голосов
/ 24 мая 2018

Запрос проверки подлинности, созданный «Выполнить сейчас», используется для проверки политики Azure AD B2C.

Разница между запросом проверки подлинности, созданным MSAL.js и запросом «Выполнить сейчас», является MSAL.js генерирует одноразовое значение, прежде чем отправляет запрос аутентификации в Azure AD B2C, а затем проверяет одноразовое значение после получения ответа на аутентификацию от Azure AD B2C.Если он действителен, то ответ аутентификации принимается.Если он отсутствует или недействителен, то ответ аутентификации отклоняется.Значение nonce смягчает атаку повторного воспроизведения.

Это означает, что ссылка для входа в систему должна инициировать запрос аутентификации, либо вызвав MSAL.js, либо перенаправив на защищенную страницу, которая его вызывает.

...