我目前正在编写一个角度应用程序,首先进行身份验证,认为纹理identityserver3。 这工作正常,我收到持票人令牌没有任何问题。 当我在对我的API的调用中使用我的令牌时,我已通过身份验证。我可以看到我的用户名,但已经失去了我的声明(用户名,角色......)。 对于使用我的令牌传输我的声明或从身份服务器获取角色,我需要做些什么?身份服务器声明asp.net API
0
A
回答
1
您可以通过将声明添加到您的API的范围,告诉Identity Server将特定声明包含在访问令牌中。
实施例:
var apiScope = new Scope {
Name = "myApi",
DisplayName = "My API",
Type = ScopeType.Resource,
Claims = new List<ScopeClaim> {
new ScopeClaim("myClaimType")
}
};
还可以使用的ScopeClaim
的AlwaysIncludeInIdToken
属性包括在身份令牌以及访问令牌的权利要求。
有关更多信息,请参阅https://identityserver.github.io/Documentation/docsv2/configuration/scopesAndClaims.html。
0
我们正在使用MS Web API 2和Thinktecture Identity Server v3做类似的事情。
要验证用户的声明,我们创建了一个身份验证过滤器,然后直接调用身份服务器以获取用户的声明。不记名令牌只授予认证,并由API分别获取权利要求。
protected override bool IsAuthorized(HttpActionContext actionContext)
{
string identityServerUrl = WebConfigurationManager.AppSettings.Get("IdentityServerUrl") + "/connect/userinfo";
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Authorization = actionContext.Request.Headers.Authorization;
var response = httpClient.GetAsync(identityServerUrl).Result;
if (response.IsSuccessStatusCode)
{
string responseString = response.Content.ReadAsStringAsync().Result;
Dictionary<string, string> claims = JsonConvert.DeserializeObject<Dictionary<string, string>>(responseString.ToLower());
... Do stuff with your claims here ...
}
}
}
相关问题
- 1. 使用App Engine开发服务器向Google API声明身份
- 2. WSO2身份服务器API
- 3. WSO2身份服务器不返回OAuth/OpenID的角色声明
- 4. 服务器端声明缓存与Owin身份验证
- 5. ASP.NET身份声明和登录
- 6. ASP.NET核心标识和身份服务器4 - [角色,声明和身份资源]
- 7. 如何在ASP.NET REST API中从身份服务器获取JWT的身份
- 8. 身份服务器3 - Asp.net站点
- 9. 服务器的Google API身份验证
- 10. 为WSO2身份服务器
- 11. ASP.Net Windows身份验证 - 用户身份登录到服务器
- 12. ASP.net的资源授权使用身份服务器的WEP API
- 13. Instagram api服务器端身份验证asp.net mvc
- 14. WSO2身份服务器身份验证
- 15. 身份服务器 - 身份/资源范围 - 客户端如何获取关于用户的资源声明
- 16. 身份服务器本身的API控制器访问令牌
- 17. Web Api Asp.Net身份
- 18. 针对WCF RESTful服务的基于声明的身份验证
- 19. Azure移动服务 - 自定义身份验证声明问题
- 20. 使用基于声明的身份验证调用WCF服务
- 21. WCF服务和添加自定义身份声明
- 22. 声明身份验证 - STS
- 23. 与Oauth2一起使用时,未从WSO2身份服务器(v5.1.0)接收声明
- 24. 使用资源所有者密码在身份服务器中获取声明
- 25. Jmeter和身份服务器
- 26. WSO2身份服务器
- 27. 身份验证服务器
- 28. WSO2身份服务器 - PAP
- 29. WCF服务和Thinktecture身份服务器
- 30. Asp.net web API 2身份验证身份