如果对问题的上下文不感兴趣,可以跳到该问题
我刚刚使用clientId和PKCE(对于公共客户端)组合为本机应用程序实现了oauth2流,它将用户重定向到他们进行身份验证的Web视图,然后oauth2服务器将使用令牌。 (已根据许多搜索结果的建议实施,并了解了为什么这是gmail,Outlook和许多其他应用程序使用的推荐方法)
但是还有一个我仍然无法回答的问题:
问题 我正在查看针对Facebook,Twitter,LinkedIn的本机应用程序,他们不使用Web视图重定向进行身份验证,而是要求用户在应用程序中直接输入用户名,密码,因此看起来他们在使用“密码授权”进行带有凭证的发帖请求并作为响应接收令牌。
实际问题:
这些实现如何确保某些第三方应用程序不使用“密码授予”流程?如果他们使用一对clientId和client secret来确保它是完全受信任的应用程序正在发出请求,那么他们如何将其安全地存储在设备上,因为它可能会泄漏?
我正在开发的应用程序也是完全受信任的客户端,同一组织拥有该后端和应用程序,并且正在考虑使用密码授予,但无法弄清楚这些组织如何做到这一点而不损害安全性。
任何反馈将不胜感激。