移动应用程序如何通过PKCE来实现授权代码流?

时间:2019-12-11 15:50:46

标签: security authentication xamarin oauth-2.0 authorization

让我们想象一下:

  1. 我已经使用Xamarin(与iOS / Android兼容)开发了一个移动应用
  2. 我希望它支持带有PKCE的OAuth2 + OpenID connect的授权代码流,以便用户凭证永远不会存储在设备上,而是一个访问令牌。令牌授予对用于使整个移动应用程序运行的API的访问权限,这意味着该移动应用程序只是一个前端接口/ UI。
  3. 我的移动应用是否被视为“客户端应用”或“资源所有者”?

第三步使我很难理解这一点。如果将其视为客户端应用程序,那么它将遵循整个代码流程,从而保护我们免受任何伤害,因为大多数事情都是可见的(移动应用程序是公共客户端,没有反向渠道)

如果它被认为是资源所有者,那么这是否意味着我必须掏出一个完整的专用后端,与我的API分开,与我的授权服务器分开,并且只针对移动应用程序(它将是“客户端应用程序”)?

如果有人可以对此有所启发,请告诉我。标题不是很正确,如果可以对其进行编辑以更好地适应这个问题,我将非常感谢。

1 个答案:

答案 0 :(得分:0)

您的移动应用程序是客户端应用程序-在授权服务器中配置了信任条目。 PKCE通过移动应用程序工作,生成用于2条消息的运行时机密:

  • 登录重定向
  • 授权码授予消息

请参阅my write up中的步骤4、7和8,以了解PKCE消息

移动OAuth涉及集成AppAuth库,这并不容易,尽管一旦完成,您将拥有最佳的安全性和可用性。

我有一个示例Android应用程序,并写了一个您可以轻松运行here

iOS上的行为类似-希望这有助于您阐明要求。