我如何与南希进行IdentityServer3认证?
有与南希的OpenID身份验证,还有与南希的Active身份验证。有很简单的形式认证与南希。如何与南希进行IdentityServer3认证和授权?
我希望将登录屏幕设置为转到IDSrv3,然后返回一个令牌和声明(角色)。
发布于 2015-11-22 02:26:03
好的,我想我理解得很正确:(请在这篇文章的末尾注意编辑)
IdentityServer3需要期待您的调用,因此您需要注册为客户端。
1.1没有资源的:--如果您只是授权API(通常是通过角色授权)--您所要做的就是使用授权(Roles=“role1,role2")来修饰。调用API时(使用https!)添加TokenBearer,一切都是自动为您完成的。
1.2 With resources:如果您也是根据用户的同意和声明服务资源(通常也是根据用户的角色),您应该使用IdentityServer简单MVC和API步骤槽文档中推荐的AuthorizationManager。
您可以使用access_token调用API(与以前一样),它们反过来返回作用域和声明。
编辑:
事实证明,API要使AuthorizeRoles="roles1,roles2“工作,还需要几个步骤。
要使授权在MVC中工作,您必须创建一个自定义的MyAuthorizeAttribute : AuthorizeAttribute类,检查“角色”类型的声明,或者必须更改身份服务器代码以在用户的角色声明中返回ClaimTypes.Role,并在ScopeType=ID中具有包含ClaimTypes.Role角色的作用域。客户端必须允许请求这个新范围。
然后,您必须在MVC启动类中请求该范围,而不是让索赔转换行将声明转换为一组简单字符串的字典集。
现在,要使API授权工作更加困难:
在调用ui中请求"id_token令牌“响应类型将给出一个没有声明中角色的access_token。这是因为只有一个带有ScopeType=Resource的作用域被附加到access_token。所以:
https://stackoverflow.com/questions/33598457
复制相似问题