Брокер веб-аутентификации не возвращает более одной области

#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. Я отредактировал свой исходный пост.