在Xamarin中构建移动应用程序时,我遇到了通过ADFS进行身份验证的问题。我在VPS上运行AD和ADFS,我希望移动应用程序通过那里进行身份验证以访问Web Api。我在应用程序中安装了Active Directory身份验证库(ADAL),当我使用https://login.windows.net/common
作为权限时,它似乎工作正常。
但是当我尝试使用自己的域https://www.example.com/adfs
作为权限时,ADAL请求始终返回The authorization server returned an invalid response
。
我尝试通过浏览器执行手动请求,如下所示:
https://www.example.com/adfs/oauth2/authorize?response_type=code&client_id=xxxxxxx&redirect_uri=xxxxxx&resource=xxxxxxxx
此请求正常,因为它向我显示登录页面,但在成功登录后,它会重定向到重定向uri,并显示一般错误消息。我必须转到服务器的ADFS日志才能找到以下错误:Unsupported token type
。
我是否遗漏了ADFS配置或ADAL实现中的内容?
答案 0 :(得分:1)
ADAL使用OAuth而非WS-Fed或SAML。
ADFS 3.0的OAuth支持非常有限 - 要获得全面支持,您需要ADFS 4.0。
This article描述了您需要做的事情。
https://login.windows.net/common是Azure AD,并且完全支持,因此可以使用。
请注意,您需要使用PowerShell根据文章配置RP。