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

时间:2019-08-19 12:21:32

标签: oauth-2.0 openid okta okta-api

我们正在尝试构建一个可通过PKCE使用OAuth 2.0授权代码流的android移动应用程序。
在阅读有关此内容的更多信息时,我发现我们必须传递重定向URL,以使其返回19[0-9]{2} - "19" and exactly 2 numbers that range 0 - 9 (1900 - 1999) | - OR 20[01][0-9] - "20" and either a 0 or 1 and another number that ranges 0 - 9 (2000 - 2019) | - OR 202[0-3] - "202" and one number in a range 0 - 3 (2020 - 2023) 。 对于Web应用程序,应该具有重定向URL,但是对于移动应用程序,我们应该如何使用它。
一些同事建议使用应用内浏览器来完成这项工作。 但我根本不想在应用程序中使用浏览器。

有人可以建议实现此目的的最佳方法吗?

2 个答案:

答案 0 :(得分:1)

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

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

BCP 212中推荐的一种新方法是声明的https方案URI重定向。有关详细信息,请参见Section 7.2

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

最后,请注意,应用内浏览器将不再适用于OAuth。有关禁止应用内浏览器的背景信息,请参见this article

答案 1 :(得分:0)

您可以使用Okta Android SDK创建自己的UI进行登录。 https://github.com/okta/okta-oidc-android#Sign-in-with-your-own-UI