如何处理移动应用程序的重定向 url - 使用 PKCE 的 OAuth 2.0 授权代码流

San*_*jay 0 openid oauth-2.0 okta okta-api

我们正在尝试构建一个将 OAuth 2.0 授权代码流与 PKCE 一起使用的 Android 移动应用程序。
在阅读有关此内容的更多信息时,我发现我们必须传递重定向 URL,它将返回一个code. 对于 Web 应用程序,重定向 URL 是有意义的,但是我们如何将它用于移动应用程序。
一些同事建议使用可以完成这项工作的应用内浏览器。但我根本不想在我的应用程序中使用浏览器。

有人可以建议实现这一点的最佳方法。

Tak*_*aki 5

过去,开发人员使用自定义方案(例如myapp://)来捕获302 Found客户端的重定向响应(即)。

但是,恶意开发人员找到了从自定义方案调用过程中窃取授权代码的方法。它被称为“授权码拦截攻击”。RFC 7636,又名 PKCE,已被开发作为攻击的对策。有关技术说明,请参阅本文

BCP 212 中推荐的一种新方法是Claimed https Scheme URI Redirection。有关详细信息,请参阅第 7.2 节

无供应商解决方案是 AppAuth-*(例如AppAuth-iOSAppAuth-Android),可从https://github.com/openid/ 获得

最后,请注意应用内浏览器将不再适用于 OAuth。禁止应用内浏览器的背景见本文