【发布时间】:2017-12-09 08:51:34
【问题描述】:
我在试图了解如何调用受 IdentityServer4 保护的 API 时感到很困惑。
基本上,我有以下网站: - 一个 IdentityServer 应用程序, - 一个网络 API 和 - 客户端 Web 应用程序。
我的设置就像 IdentityServer 示例 here。
我定义了一个代表我的客户端 Web 应用程序的 Client 和一个代表我的 Web Api 的 APIResource。
在我的客户端 Web 应用程序中,我想对 WebAPI 进行 HTTP 调用,但我想看起来好像我是登录用户,所以我想让“电子邮件”范围对 Web Api 可用。
我在 Web 应用程序中的做法是获取“access_token”,并将其传递给 Web API:
var accessToken = await httpContextAccessor.HttpContext.Authentication.GetTokenAsync($"access_token");
var client = new HttpClient();
client.SetBearerToken(accessToken);
这允许我调用客户端,因此授权步骤正在运行,但 Web Api 上的用户声明没有适当的范围。
我是不是做错了什么?
【问题讨论】:
标签: identityserver4