Authentication OAuth2.0/OIDC公共客户机:对于身份验证和;在没有第三方参与的情况下,scopes是否同意? 上下文

Authentication OAuth2.0/OIDC公共客户机:对于身份验证和;在没有第三方参与的情况下,scopes是否同意? 上下文,authentication,mobile,oauth-2.0,scopes,browser-tab,Authentication,Mobile,Oauth 2.0,Scopes,Browser Tab,我正在开发一个解决方案 两个客户,一个移动客户和一个水疗中心 我控制的授权服务器 资源服务器/标识提供程序,通过API提供用户数据和功能 我之所以使用OAuth2.0,是因为它可以提供诸如允许第三方应用程序轻松地与我的Auth server/IdP集成等功能,无论是访问用户数据还是API功能。它还将允许客户与其他IDP集成,并最终将其数据迁移到矿山 OAuth流 认证 在OAuth流期间,有一个重定向来验证授权服务器上的用户。此时,用户输入凭据并同意客户端要访问的范围/声明。对于第三方客户端

我正在开发一个解决方案

  • 两个客户,一个移动客户和一个水疗中心
  • 我控制的授权服务器
  • 资源服务器/标识提供程序,通过API提供用户数据和功能
我之所以使用OAuth2.0,是因为它可以提供诸如允许第三方应用程序轻松地与我的Auth server/IdP集成等功能,无论是访问用户数据还是API功能。它还将允许客户与其他IDP集成,并最终将其数据迁移到矿山

OAuth流 认证 在OAuth流期间,有一个重定向来验证授权服务器上的用户。此时,用户输入凭据并同意客户端要访问的范围/声明。对于第三方客户端应用程序,我理解:

  • 移动:最新的移动应用推荐浏览器自定义选项卡
  • SPAs:基于浏览器,这里有一个简单的重定向
但这是一个第三方客户端应用程序,将身份验证和帐户管理委托给我的IdP系统。这确保了移动应用程序无法窥探用户的凭据(并最终利用IdP的sso解决方案,因此无需输入凭据)

就我而言,我拥有客户和其他人

我的第一个问题是:由于我拥有应用程序,无论是移动应用程序还是web应用程序,我是否需要实现重定向到我的IdP上托管的UI?或者我可以直接将表单作为移动/web应用程序的一部分,并通过REST对用户进行身份验证(然后按照OAuth流的其余部分为OIDC提供AccessToken+IdToken)

范围 当它是第三方客户端应用程序时,我知道我们必须向最终用户显示客户端希望访问的数据(范围/声明)。用户必须给出明确的同意,并知道应用程序将使用哪些数据

但在我的情况下,既然我拥有应用程序,我就不能拥有一个用户批准使用应用程序的条款和条件页面,并跳过OAuth流程中的范围/声明批准吗?


简而言之,在没有第三方参与的情况下,最佳做法是什么?为什么?

hmmm…这是个好问题hmmm…这是个好问题