identityserver3 - 一个 id 服务器颁发的访问令牌可以与另一个 id 服务器一起使用吗?
identityserver3 - can an access token issued by one id server be used with another id server?
我一直在试用 IdentityServer3 并观看了视频,然后浏览了在线文档,下载了示例,我的示例都运行良好。
我设置了两个独立的身份服务器,一个用于保护 Web api,另一个用于保护 MVC 应用程序。我已经这样做了,而不是为两者都使用一个 id 服务器,因为这两个应用程序本质上是为两个不同的客户服务的,只有少数用户是共同的。
但是,我确实希望能够从 mvc 应用程序(mvc_B、idsvr_B) 对于某些用户(单点登录)。
我发现如果我在两端使用相同的 idsvr 就可以正常工作,但我认为我应该能够让 mvc_B 从 idsvr_B 获取访问令牌,添加它请求调用 api_A 并让 idsvr_A 对令牌中的声明采取行动?
我发现 idsvr_A 不理解(?)来自 idsvr_B 的标记,当我尝试在 [=] 的断点中检查 context.Principal 上的声明列表时34=] 它是空的,主体未设置为来自 idsvr_B 的身份:
例如在派生自 ResourceAuthorizationManager 的 class 中,
中的上下文
CheckAccessAsync(ResourceAuthorizationContext 上下文)
方法以 context.Principal 上的空声明列表结束。
我需要做些什么来将声明从一个 idsvr 转换为另一个吗?还是我没有正确设置?我认为由于访问令牌格式是标准的,所以令牌可以在 ID 服务器之间互换?
我真的想确认这个 应该 工作,然后再进行进一步调试以确保正确传递和接收令牌。
大概这两个身份服务器将具有不同的颁发者名称和不同的签名证书 - 所以不 - 除非您为每个身份服务器添加一个验证中间件,否则网络 api 不会接受两者。
API 信任多个发行人的情况并不常见,但技术上是可行的。
我一直在试用 IdentityServer3 并观看了视频,然后浏览了在线文档,下载了示例,我的示例都运行良好。
我设置了两个独立的身份服务器,一个用于保护 Web api,另一个用于保护 MVC 应用程序。我已经这样做了,而不是为两者都使用一个 id 服务器,因为这两个应用程序本质上是为两个不同的客户服务的,只有少数用户是共同的。
但是,我确实希望能够从 mvc 应用程序(mvc_B、idsvr_B) 对于某些用户(单点登录)。
我发现如果我在两端使用相同的 idsvr 就可以正常工作,但我认为我应该能够让 mvc_B 从 idsvr_B 获取访问令牌,添加它请求调用 api_A 并让 idsvr_A 对令牌中的声明采取行动?
我发现 idsvr_A 不理解(?)来自 idsvr_B 的标记,当我尝试在 [=] 的断点中检查 context.Principal 上的声明列表时34=] 它是空的,主体未设置为来自 idsvr_B 的身份:
例如在派生自 ResourceAuthorizationManager 的 class 中,
中的上下文CheckAccessAsync(ResourceAuthorizationContext 上下文)
方法以 context.Principal 上的空声明列表结束。
我需要做些什么来将声明从一个 idsvr 转换为另一个吗?还是我没有正确设置?我认为由于访问令牌格式是标准的,所以令牌可以在 ID 服务器之间互换?
我真的想确认这个 应该 工作,然后再进行进一步调试以确保正确传递和接收令牌。
大概这两个身份服务器将具有不同的颁发者名称和不同的签名证书 - 所以不 - 除非您为每个身份服务器添加一个验证中间件,否则网络 api 不会接受两者。
API 信任多个发行人的情况并不常见,但技术上是可行的。