首页 > 解决方案 > OAuth 2.0 的本机登录有什么不安全的地方?

问题描述

我正在开发一个原生 Swift iOS 应用程序。我最近阅读了很多关于 OAuth 2.0 的内容,包括这个答案、相当多的 RFC 6749 以及其他几个教程。有很多关于如何使用嵌入式 webview 并不理想的评论,因为 cookie 无法保持安全,因此SFSafariViewControllerASWebAuthenticationSession.

但是我没有看到太多关于没有 webview/浏览器的登录、通过UIView表单收集用户凭据、使用资源所有者密码凭据授予以及直接使用URLRequest. 我正在使用我自己的资源服务器和我自己的身份验证服务器(或使用类似 Auth0 的东西)构建自己的应用程序,它只处理对我的应用程序受保护资源的访问。所以这里的一切都是“高度信任的”。但是我看到了类似以下关于资源所有者密码凭据授予的通知(来自此处):

授权服务器在启用此授权类型时应特别小心,并且仅在其他流程不可行时才允许它。

从技术上讲,使用另一个流程是“可行的”——我可以构建它。在这种情况下,是否使用外部用户代理,SFSafariViewController或者ASWebAuthenticationSession 仍然提供无法与本机登录匹配的安全优势?

标签: iosmobileoauth-2.0native

解决方案


我想到的使用外部用户代理的一个好处是升级到一般的两因素或多因素身份验证。


推荐阅读