我目前正在实施一个新的OAuth 2服务器(计划使用Ory Hydra),这将是我们开发人员门户的授权服务器,在该门户中,开发人员创建了一个被授予client_id
的应用程序, client_secret
,并将其用于令牌交换,还用于用户填写其凭据(用户名和密码)的移动应用程序。
login
,logout
,forgot password
等将位于其他服务器中。
问题是,有没有办法防止将同意屏幕作为授权码授予+ PKCE的一部分?通过移动应用程序,用户可以通过身份验证从其他服务访问他们自己的信息,而我对授权码授予的理解是,第三方应用程序将使用它来获取对用户信息的访问权限。
我知道还有其他授予类型,但是根据this和this,似乎授权代码+ PKCE是推荐给本地移动应用的授予
谢谢!
答案 0 :(得分:1)
使用Ory Hydra,您可以控制用户界面,以便决定何时显示同意屏幕和何时不显示同意屏幕。
因此,这取决于您如何构建应用。
基本选择Implementing Login, Consent & Logout UI教程中概述的默认同意类型。
然后仅跳过在您的应用程序中显示该同意UI。
答案 1 :(得分:0)
同意
通常,显示同意屏幕是OAuth客户端的属性,尽管这在提供商之间有所不同。
在某些不使用个人资产并且消息对用户无意义的情况下,这可能很有意义。例如,由管理员配置的公司应用。
移动
您使用PKCE是正确的-这是当今所有UI流程的标准-并在OAuth 2.1 Updates中得到推荐。
有趣的是,同意屏幕对于使密码自动填充适用于移动应用程序非常有用,因此您可能还需要考虑这个角度。
ORY
这看起来是一个非常有趣的项目-我将仔细研究。
矿山资源
移动流程难以实现。如果有用,我的博客上有一些关于该主题的可视化iOS和Android帖子: