Identityserver3——一个id服务器发出的访问令牌可以与另一个id服务器一起使用吗?

本文关键字:id 服务器 一起 另一个 访问令牌 一个 Identityserver3 | 更新日期: 2023-09-27 18:17:24

我一直在尝试IdentityServer3,并观看了视频,随后通过在线文档,下载了样本,我已经得到了所有工作良好的样本。

我已经设置了两个独立的身份服务器,一个用于保护web api,一个用于保护MVC应用程序。我已经这样做了,而不是有一个id服务器,因为这两个应用程序本质上是两个不同的客户,只有少数用户将是共同的。

然而,我确实希望能够调用web api (api_A, idsvr_A)从mvc应用程序(mvc_B, idsvr_B)为一些用户(单点登录)。

我发现,如果我在两端使用相同的idsvr,这工作得很好,但我认为我应该能够让mvc_B从idsvr_B获得访问令牌,将其添加到调用api_A的请求中,并让idsvr_A对令牌中的声明采取行动?

我发现idsvr_A不理解(?)来自idsvr_B的令牌,当我试图检查上下文上的索赔列表时。在api_A的断点中,Principal是空的&主体未设置为idsvr_B中的身份:

。在从ResourceAuthorizationManager派生的类中,

中的上下文

CheckAccessAsync (ResourceAuthorizationContext上下文)

方法在上下文中以一个空的声明列表结束。

我需要做些什么来把索赔从一个idsvr翻译成另一个idsvr吗?还是我设置错了?我认为,由于访问令牌格式是标准的令牌将在id服务器之间互换?

我真的要求确认这个应该工作,在我做进一步的调试以确保令牌被正确传递和接收之前。

Identityserver3——一个id服务器发出的访问令牌可以与另一个id服务器一起使用吗?

假设两个身份服务器将有不同的颁发者名称和不同的签名证书-所以不- web api将不会接受这两个,除非你为每个身份服务器添加一个验证中间件。

一个API信任多个发行者是不常见的,但在技术上是可能的。