Authentication 对于这个用例,这是OpenID Connect的正确用法吗?
我试图理解在下面的用例中如何使用OpenId Connect。假设我们只有以下3个组件:Authentication 对于这个用例,这是OpenID Connect的正确用法吗?,authentication,single-sign-on,openid,openid-connect,Authentication,Single Sign On,Openid,Openid Connect,我试图理解在下面的用例中如何使用OpenId Connect。假设我们只有以下3个组件: 具有公开API的Web应用程序(服务提供商又名SP) 一个单独的身份验证服务器(Identification Provider又名IDP),用于 使用上述SP进行SSO 最终用户使用的本机客户端应用程序。此客户端应用程序使用 SP的API 所有流量都将通过HTTPS。以下是我对OpenID连接过程的设想: 本机应用程序将从SP请求“令牌” SP将看到用户未通过身份验证并请求 来自可信IDP的验证 将用户
- 具有公开API的Web应用程序(服务提供商又名SP)
- 一个单独的身份验证服务器(Identification Provider又名IDP),用于 使用上述SP进行SSO
- 最终用户使用的本机客户端应用程序。此客户端应用程序使用 SP的API
在这种情况下,这是使用OpenID Connect的推荐方法吗?有什么明显的安全问题吗?我唯一看到的是,本机客户端应用程序可以使用访问令牌访问IDP上的用户信息端点。关于第1-4点:
希望它有用。要详细介绍您对OIDC+OAuth2处理此用例的评论,这可能是一个更好的解决方案。SP不会与本机应用共享访问令牌。SP将仅用于访问IDP上的用户信息端点。然后SP将生成自己的OAuth令牌,以提供给本机应用程序进行后续调用。基本上使用OIDC对用户进行身份验证,并使用OAuth对本机应用程序进行会话跟踪。这将提供更好的分离。我不确定我是否理解它如何提供更好的分离(这有什么意义?)。任何OP(OIDC)提供程序都隐式地是OAuth2提供程序。没有OAuth2,OIDC就不可能存在。所以OP应该处理所有的身份验证和授权逻辑,包括会话管理。SP如何生成自己的OAuth令牌?从哪里来?此外,SP是数据提供商,因此,除了提供数据之外,您为什么还要赋予它安全责任呢。希望它有用,尽管我可能会误解。