Azure AD B2C: невозможно получить токен с кодом авторизации - PullRequest
0 голосов
/ 03 мая 2019

В настоящее время я следую этому руководству по настройке авторизации для функции Azure.В настоящее время я пытаюсь протестировать часть аутентификации в fiddler отдельно от моего веб-приложения, чтобы убедиться, что я могу получить действительный токен.Я могу успешно получить код авторизации, однако после этого мне нужно опубликовать некоторые данные, чтобы обменять код авторизации на токен.При попытке сделать это мне возвращается 502 с сообщением: DNS Lookup for "mytenantname.onmicrosoft.com" failed. System.Net.Sockets.SocketException No such host is known, как будто хост вообще не существует.Мое сообщение для конечной точки выглядит следующим образом, где B2C_1_FunctionsPlaygroundSignInRegister - это имя моего пользовательского потока:

POST https://mytenantname.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_FunctionsPlaygroundSignInRegister HTTP/1.1

User-Agent: Fiddler

Content-Type: application/x-www-form-urlencoded

Host: mytenantname.onmicrosoft.com

Body:grant_type=authorization_code&client_id=MyApplicationIdForTheAzure-AD-B2C-ap-here&code=myCodeHere&redirect_uri=jwt.ms

Для справки: рабочий запрос get, который я отправляю, чтобы я мог набрать его в браузере и получить приглашениес экраном входа / регистрации, и после входа в систему вам будет возвращен код авторизации:

https://mytenantname.b2clogin.com/tfp/mytenantname.onmicrosoft.com/B2C_1_FunctionsPlaygroundSignInRegister/oauth2/v2.0/authorize?client_id=yApplicationIdForTheAzure-AD-B2C-ap-here&nonce=2&redirect_uri=https://functionapi.azurewebsites.net/.auth/login/aad/callback&scope=https://mytenantname.onmicrosoft.com/api/read&response_type=code 

Может кто-нибудь указать, где я здесь не так?Сейчас я потратил много времени на эту проблему, и у меня нет идей.

1 Ответ

1 голос
/ 03 мая 2019

Ваш URL POST и заголовок хоста неверны.

См. Этот раздел -

Поток кода авторизации OAuth 2.0 в Azure Active Directory B2C

POST fabrikamb2c.onmicrosoft.com/oauth2/v2.0/token?p=b2c_1_sign_in HTTP/1.1
Host: https://fabrikamb2c.b2clogin.com

Обратите внимание на заголовок Host.Это означает, что ваш запрос Fiddler должен выглядеть примерно так:

POST https://mytenantname.b2clogin.com/mytenantname.onmicrosoft.com/oauth2/v2.0/token?p=...
Host: mytenantname.b2clogin.com

PS Это намного лучше, чем Fiddler, для того, что вы пытаетесь сделать - https://oauthdebugger.com/

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