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

时间:2016-09-28 11:07:30

标签: azure-active-directory adal

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

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

Screenshot

翻译:

  

授权概念证明

     

概念证明
  该应用程序的发布者网站:nathexperimental.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()

我不确定它尝试重定向到的非HTTPS网址是什么,但我最好的猜测是它是本机客户端的重定向URI,我设置为hook://login的意图是实现一个自定义协议处理程序,看看做了什么调用。

这似乎可以通过以下事实得到证实:当我将重定向URI更改为https://codegolf.stackexchange.com时(它是第一个启用HTTPS的网站...),行为发生了变化。但不是我想象的方式。现在,当我第一次以新用户身份登录时,它会跳过整个“授权概念证明”页面。

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

1 个答案:

答案 0 :(得分:2)

Trident webview中的Javascript代码在ADAL中被视为非https网址。该问题已经提交,Adal.NET正在审核提交。 https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/issues/544