【问题标题】:Can I Authenticate my Web Api against several OpenID Connect Servers?我可以针对多个 OpenID Connect 服务器验证我的 Web Api 吗?
【发布时间】:2018-08-14 14:53:10
【问题描述】:

我正在使用 IdentityServer4 (OpenID Connect/OAuth2 Server) 来保护 MyApi。客户端是桌面客户端 (exe)。它不是浏览器。我使用以下工作流程请求 MyApi (https://identityserver4.readthedocs.io/en/release/quickstarts/1_client_credentials.html)。

  1. 客户端将其凭据发送到返回令牌的 IdentyServer4
  2. 客户端使用令牌作为 BearerToken
  3. 客户端使用 BearerToken 请求 MyApi
  4. MyApi 知道 IdentityServer4 的地址并验证令牌。之后,它会发回一些数据。

MyApi 是否可以与多个不同的 IdentityServer4(OpenID Connect/OAuth2 服务器)实例一起使用?

我的意思是,如果我打开浏览器并登录 Stackoverflow,我可以选择不同的登录提供程序。我的意思是浏览器处理重定向。如果我有 exe/桌面应用程序,是否有类似的工作流程?

【问题讨论】:

    标签: oauth oauth-2.0 identityserver4 openid-connect


    【解决方案1】:

    您提到的 StackOverflow 和不同的登录选项 - 这些是外部提供程序。您可以将它们添加到 IdentityServer,但是您将只有一个实例,具有不同的提供者。

    只是出于好奇 - 为什么要拥有 2 个 IdentityServer 实例?这真的是您想要的,还是您想要不同的身份验证提供程序?如果是这样 - 那么您需要关注 this,但您需要不同的流程(不是 client_credentials)。

    对于exe 场景 - 您可以使用OidcClient,但如果使用任何类型的外部身份验证(如 Google、Facebook 等其他 OpenID 提供商),它仍需要用户登录

    【讨论】:

    • 如果我添加第二个 IdentityServer IDS2,我会在启动服务器时收到以下异常:“方案已存在:BearerIdentityServerAuthenticationJwt”。你有什么想法可以解决这个问题吗?
    • 我编辑了我的答案 - 第二个 IDS 不是你的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2020-03-07
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    相关资源
    最近更新 更多