我可以针对多个OpenID Connect服务器验证我的Web Api吗?

时间:2018-03-06 16:52:19

标签: oauth oauth-2.0 identityserver4 openid-connect oidc

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

  1. 客户端将其凭据发送到IdentyServer4,后者返回一个令牌
  2. 客户使用令牌作为BearerToken
  3. 客户端使用BearerToken
  4. 请求MyApi
  5. MyApi知道IdentityServer4的地址并验证令牌。之后它会发回一些数据。
  6. MyApi是否可以与多个不同的IdentityServer4(OpenID Connect / OAuth2服务器)实例配合使用?

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

1 个答案:

答案 0 :(得分:0)

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

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

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