如何解决Web身份验证代理返回的范围不只一个
我正在构建UWP应用程序,并使用Web身份验证代理进行登录。我将Azure B2C与另一个AD用作身份提供者。
请求授权码时,如果scope参数为:scope = openid,它将始终返回一个代码。 如果将其更改为:scope = openid offline_access,它将不会返回到应用程序。它挂在空白窗口上。
我已经检查了Web Auth事件,它已成功完成,并带有授权码,但没有返回到应用程序。我已经通过复制该代码并请求访问代码来对其进行了测试,并且每次都可以使用。
当我查找了此类问题时,建议使用的重定向为:ms-app:// xxxx或urn:ietf:wg:oauth:2.0:oob。两者都会导致StatusCode:0x800C000D错误
这里是否缺少我的问题?
编辑:
这是请求。请注意,这里的两个endUris似乎都是随机工作的,然后在重新安装该应用程序后将不再工作。当它确实起作用时,使用auth代码获得令牌就不再是问题。
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>&response_type=code&response_mode=fragment&scope=openid offline_access&redirect_uri=" + endUri;
Uri startUri = new Uri(startUrl);
var webAuthenticationResult = await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.None,startUri,endUri);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。