【发布时间】:2015-07-30 06:43:30
【问题描述】:
我试图了解如何在以下用例中使用 OpenId Connect。假设我们只有以下 3 个组件:
- 具有公开 API(Service Provider aka SP)的 Web 应用。
- 单独的身份验证服务器(Identify Provider aka IDP)用于 使用上述 SP 进行 SSO。
- 最终用户使用的本机客户端应用程序。此客户端应用程序使用 SP 的 API。
所有流量都将通过 HTTPS。以下是我设想的 OpenID Connect 流程的工作方式:
- 本机应用程序将向 SP 请求“令牌”。
- SP 会看到用户未通过身份验证并要求 来自受信任的 IDP 的验证。
- 将用户凭据提供给 IDP 后,IDP 将 将 ID 令牌和访问令牌返回给 SP。
- SP 将验证 ID 令牌并将访问令牌提供给 用于对 API 的所有后续请求的本机客户端应用。
这是在这种情况下使用 OpenID Connect 的推荐方法吗?任何明显的安全问题?我看到的唯一一个是本机客户端应用程序可以使用访问令牌访问 IDP 的用户信息端点。
【问题讨论】:
标签: authentication single-sign-on openid openid-connect