gpt4 book ai didi

authentication - 对于这个用例,这是 OpenID Connect 的正确使用吗?

转载 作者:行者123 更新时间:2023-12-02 03:25:57 24 4
gpt4 key购买 nike

我试图了解如何在以下用例中使用 OpenId Connect。假设我们只有以下 3 个组件:

  • 具有公开 API(服务提供商又名 SP)的 Web 应用。
  • 一个单独的身份验证服务器(Identify Provider aka IDP)用于使用上述 SP 进行单点登录。
  • 最终用户使用的 native 客户端应用程序。此客户端应用程序使用SP 的 API。

所有流量都将通过 HTTPS。以下是我设想的 OpenID Connect 进程的工作方式:

  1. native 应用会向 SP 请求“ token ”。
  2. SP 会看到用户未通过身份验证并要求来自受信任的 IDP 的验证。
  3. 将用户的凭据提供给 IDP 后,IDP 会将 ID token 和访问 token 返回给 SP。
  4. SP 将验证 ID token 并将访问 token 提供给用于 API 的所有后续请求的 native 客户端应用程序。

在这种情况下,这是使用 OpenID Connect 的推荐方式吗?任何明显的安全问题?我唯一看到的是 native 客户端应用程序可以使用访问 token 访问 IDP 的用户信息端点。

最佳答案

关于第 1 - 4 点:

  1. 从 IDP 而非 SP 请求的 token 。 (通常 IDP 托管在单独的子域上)。我喜欢 STS 术语(安全 token 服务)而不是 IDP,它很容易描述 OIDC 服务器的作用:发行 token 的软件。

  2. 我更愿意说:从 native 应用到 SP 的每个 protected (非匿名)请求都必须由 STS/IDP 验证。将 IDP 视为 protected 资源/API/SP 和 native 应用程序/RP/客户端之间的防火墙。

  3. IDP 响应取决于所使用的流(代码、隐式、混合、资源所有者、客户端凭据)。这个要点可能有助于快速理解流程:OIDC and OAuth2 Flows

  4. ID token 旨在供客户端/RP/ native 应用程序使用。

我认为所描述的用例很常见,可以由 OpenIDConnect+OAuth2 处理。关于访问用户信息端点,它完全取决于您的 IDP 配置和 RP/Client/NativeApp 配置。

例子:我用 IdentityServer3作为 IDP/STS(其官方认证的 OpenID Connect 提供商):在 IdentityServer3 中,我可以通过配置禁用任何端点并限制 RP 范围。

总结一下:我认为用例是推荐的,就像你总结的那样。唯一的问题是我在上面强调的一些误解。但最重要的是不要选择错误的流程或通过错误配置滥用标准。

希望有用。

关于authentication - 对于这个用例,这是 OpenID Connect 的正确使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30308667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com