Azure active directory AAD/ADAL:了解应用程序的用户授权和;“显示详细信息”;链接

Azure active directory AAD/ADAL:了解应用程序的用户授权和;“显示详细信息”;链接,azure-active-directory,adal,Azure Active Directory,Adal,我正在使用Azure Active Directory和一个本机客户端进行概念验证,以获取用于验证web应用程序的OpenID令牌。本机客户端使用Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireTokenAsync。我的原生客户端应用程序称为“概念验证”,web应用程序称为“PoC服务器” 用户首次登录时,ADAL打开的嵌入式浏览器要求用户使用以下页面授权应用程序: 翻译: 授权概念证明

我正在使用Azure Active Directory和一个本机客户端进行概念验证,以获取用于验证web应用程序的OpenID令牌。本机客户端使用Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireTokenAsync。我的原生客户端应用程序称为“概念验证”,web应用程序称为“PoC服务器”

用户首次登录时,ADAL打开的嵌入式浏览器要求用户使用以下页面授权应用程序:

翻译:

授权概念证明

概念证明
应用程序发布者的网站:Nathat.onmicrosoft.com

概念验证需要获得以下许可:

  • 访问PoC服务器(PoC服务器)
  • 登录并阅读您的个人资料
您已以以下身份登录:test2@nathexperimental.onmicrosoft.com

显示细节

[接受][取消]

如果现在单击“显示详细信息”链接,则会引发异常:

Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException: Non-HTTPS url redirect is not supported in webview
   en Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenInteractiveHandler.VerifyAuthorizationResult()
   en Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenInteractiveHandler.<PreTokenRequest>d__8.MoveNext()
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
   en System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   en System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   en Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenHandlerBase.<RunAsync>d__55.MoveNext()
Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException:webview中不支持非HTTPS url重定向
en Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenInteractiveHandler.VerifyAuthorizationResult()
en Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenInteractiveHandler.d_u8.MoveNext()
---除此之外,在生产过程中,还需对前一阶段的ubicación项目进行管理---
en System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务)
en System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务)
en Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenHandlerBase.d_u55.MoveNext()
我不确定它试图重定向到的非HTTPS URL是什么,但我最好的猜测是它是本机客户端的重定向URI,我已将其设置为
hook://login
旨在实现自定义协议处理程序,并查看进行了哪些调用

当我将重定向URI更改为
https://codegolf.stackexchange.com
(这是我想到的第一个启用HTTPS的站点…),行为发生了变化。但不是我想象的那样。现在,当我作为新用户首次登录时,它跳过了整个“授权概念证明”页面


发生什么事了?用户需要在什么条件下授权应用程序?他们必须授权的场景是否允许我提供“更多详细信息”页面?

Trident webview中的Javascript代码在ADAL中被视为非https url。该问题已经提交,Adal.NET正在审查该承诺。

奇怪!我会找人调查这个例外。对于使用
/common
端点的多租户应用程序,如果用户/租户之前未同意该应用程序,您应该看到“授权”(又称同意)屏幕。它不应该与所使用的
重定向uri有任何关系。我怀疑在Azure AD尝试显示同意屏幕之前返回了其他错误。@dstrockis,我没有使用
/common
端点(或者,至少不是故意的)。我正在传递本机客户端应用程序的客户端ID。如果您愿意,我可以明天发布一些详细的日志输出。