Vil*_*lx- 6 delegation oauth-2.0 openid-connect
我不确定是否有一种“正确”的方法,但是在我将自己的不兼容的实现整合在一起之前,也许所有标准中都有一些可以满足我的需要的东西?
情况是这样的:苹果公司已经声明其手机上的应用程序必须包含所有标准功能。不再有带有网页内容的 iframe!如果您需要显示来自网络的内容,请打开系统浏览器(Safari)!不幸的是,我们需要显示来自网络的内容,所以我们开始......
现在,该应用程序需要用户之前已完成的身份验证。我们存储我们需要的任何令牌。当打开浏览器时,我们不想强迫用户重新进行身份验证。我们需要以某种方式将访问凭据传递给浏览器,并且最好安全地执行此操作。此外,浏览器中的网页需要从我们的 OpenID Connect 服务器获取令牌。
不幸的是,应用程序和浏览器之间的唯一通信点是 URL,因此我们提供的所有内容都将在那里,一目了然。我知道 OAuth 非常担心这一点,以至于他们无法仅使用屏幕上可见的内容来拦截身份验证,而是使用一次性中间代码、反向通道和 PKCE 之类的东西。
不幸的是,我看不到任何方法来使用“开箱即用”的默认流程来实现我的需要。我可以考虑对那些可以做到这一点的流程进行修改,但我不是安全专家,所以我宁愿采用经过专家审查的标准。
设想
这是一个很好的问题,因为许多公司希望在移动应用程序中以安全的方式显示现有的网页内容,并避免额外的登录。
通过断开连接的浏览器实现 WEB + 移动集成解决方案?
理想情况下,您想要做的是将移动应用程序的 JWT 通过 HTTP 标头传递给外部 Web 内容。然而,iOS API(例如 openURL)可能不支持此功能。
您可能必须在查询字符串中传递 JWT,在这种情况下,我会尝试遵循签名的请求模型,尽管这并不简单。我已经使用了 SalesForce 签名的请求,但我自己没有实施完整的解决方案。
您将希望防止将原始令牌写入 Web 服务器日志。我相信这种类型的 pf 解决方案的建议是使用一次性密钥,如上面的链接中所述。当然,网络会话会有一些限制,例如静默令牌更新不起作用。
通过 WKWEBVIEW 的 WEB + 移动集成解决方案
过去,我通过使 Web UI 从移动应用程序获取访问令牌来管理移动应用程序中的安全 Web 内容。这可以实现集成的 UX,并且您可以使用“尽可能标准”的 OAuth 解决方案。
有效使用网络视图?
在大多数情况下,Web 视图可能不是一个好的长期解决方案。我知道,如果应用程序出现以下任何行为, Apple 很可能会在 2020 年拒绝这些应用程序:
我怀疑负责任且合理地使用 WKWebView 会被接受。但我可能是错的,所以请不要相信我的话。
更新
出于兴趣,有一种随机数模式可以潜在地用于在 Web 和移动应用程序之间共享数据,尽管更简单的选择通常只是使用 API 共享数据,并多次写入视图。
| 归档时间: |
|
| 查看次数: |
3776 次 |
| 最近记录: |