asp.net核心Identity Server身份验证客户端到api到api的问题

时间:2020-01-30 19:06:54

标签: asp.net-core identityserver4

这是我的问题:

我的窗口客户端调用一个安全的API身份服务器4,现在被调用的API需要调用另一个也由身份服务器4保护的API。我的第一个API是它自己的apiName,可以以某种方式用于发送到第二个api作为凭据

还是我需要创建一个新的客户端ID来访问第二个API?

2 个答案:

答案 0 :(得分:1)

简而言之,是的,您的API将需要它自己的client_id才能访问第二个API。

每个需要访问受保护资源的客户端都必须具有唯一的client_id和密码。

在您的示例中,您有3个元素在起作用: 1. Windows client 2. Secure API A 3. Secure API B

您的windows client有一个client_id和secret,用于获取承载令牌以与受保护的资源Secure API A通信。

Secure API A既是受保护的资源,也是客户端。为了与Secure API B通信,它将需要有一个client_id和secret来接收承载令牌。

答案 1 :(得分:1)

有两种可能的情况,但是它们都需要您的第一个api的客户端ID和客户端密钥:

1。委派流程:

前端客户端使用通过交互流(例如,混合流)获取的令牌调用中间层API。现在,该中间层API(API 1)希望代表交互式用户调用后端API(API 2)。有关文档和代码流,请参见here

2。客户凭证流

您的第一个api使用其凭据(客户端ID和密码)来获取用于访问第二个api的访问令牌,无论您如何在客户端应用程序中获取第一个api的访问令牌。有关文档和代码流,请参见here