虽然您已经正确地配置了 有空标识资源(标准和自定义) ,但是您还需要显式地定义 调用 api 时哪些是必需的资源。为了定义这个参数,您必须转到 ExampleIdentityServer项目上的 Config.cs类,并提供第三个参数,就像在 new ApiResouirce构造函数上一样。只有这些将包括在 access_token
// scopes define the API resources in your system
public static IEnumerable<ApiResource> GetApiResources()
{
return new List<ApiResource>
{
new ApiResource("api1", "My API", new[] { JwtClaimTypes.Subject, JwtClaimTypes.Email, JwtClaimTypes.Phone, etc... })
};
}
实际上,这意味着我为我的组织配置了我的身份声明,但是可能涉及到不止一个 API,而且并非所有的 API 都使用所有可用的配置文件声明。这也意味着这些将存在于您的 ClaimsPrincipal中,所有其余的内容仍然可以通过“ userinfo”端点作为普通的 http 调用访问。