#authentication #uwp #azure-ad-b2c #msal
#аутентификация #uwp #azure-ad-b2c #msal
Вопрос:
Я создаю приложение UWP и использую брокер веб-аутентификации для входа. Я использую Azure B2C с другим AD в качестве поставщика удостоверений.
При запросе кода авторизации он всегда будет возвращать код, когда параметр области действия равен: scope=OpenID Если я изменю это на: scope=openid offline_access , он не вернется в приложение. Он зависает в пустом окне.
Я проверил события веб-аутентификации, и они успешно завершаются с кодом авторизации, но не возвращаются в приложение. Я протестировал этот код, скопировав его и запросив с ним токен доступа, и это работает каждый раз.
Когда я просматривал подобные проблемы, рекомендуемые для использования перенаправления: ms-app:// xxxx или urn:ietf:wg: oauth: 2.0:oob. Оба они приводят к ошибке с кодом состояния: 0x800C000D
Есть ли проблема, которую я здесь упускаю?
Редактировать:
Вот запрос. Обратите внимание, что оба ENDURI здесь работали, по-видимому, случайным образом, затем не будут работать снова после переустановки приложения. Когда это работает, получение токена с использованием кода аутентификации никогда не было проблемой.
Uri endUri = new Uri("urn:ietf:wg:oauth:2.0:oob");
//Uri endUri = new Uri("https://<tenantName>.b2clogin.com/tfp/oauth2/nativeclient");
string startUrl = $"https://<tenantName>.b2clogin.com/<tenantName>.onmicrosoft.com/B2C_1_signIn_SignUp_V2/oauth2/v2.0/authorize?client_id=<clientId>amp;response_type=codeamp;response_mode=fragmentamp;scope=openid offline_accessamp;redirect_uri=" endUri;
Uri startUri = new Uri(startUrl);
var webAuthenticationResult = await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.None, startUri, endUri);
Комментарии:
1. Можете ли вы предоставить полный
https
запрос?2. Я отредактировал свой исходный пост.