【发布时间】:2018-11-01 00:32:15
【问题描述】:
我有一个使用 ODIC 授权代码流的移动应用。我们的服务器实现使用的是 Identity Server 4。
移动应用程序打开一个浏览器窗口,我可以很好地登录到第 3 方提供商,然后它重定向到我们身份服务器上的 /signin-adfs,它设置了一些 idsrv.external cookie 并向 /External/Callback 返回一个 302。浏览器重定向到/External/Callback,但不发送任何idsrv.external cookie,因此Identity Server 抛出异常,因为HttpContext.AuthenticateAsync 的结果不成功。
我有点卡在这一点上,因为我不是移动开发人员。我在其他领域部署并稍微定制了 Identity Server,但不是这部分代码。
我相信移动应用正在打开一个 Safari 会话来进行身份验证。这是浏览器不喜欢的 cookie(域、路径、https、安全)的问题吗?或者是其他东西? cookie 大小被分块为 4KB。我不确定是什么导致了这个问题。
让事情变得更奇怪...如果刷新浏览器 (/External/Callback),那么请求就会起作用,并且 iOS 应用程序会获取代码并可以发出后续请求以获取令牌。
【问题讨论】:
-
您可以检查cookie中的内容。检查
NSHTTPCookieStorage。
标签: ios asp.net-identity identityserver4