感谢新发布的module; AWS Cognito现在是一个ASP.NET Core Identity Provider。
最好通过[Authorize(Roles= "{Role}")]
进行基于角色的授权;但是目前它不起作用;部分原因可能是因为认知(组/角色)被映射到cognito:groups
声明。
是否有办法使其正常工作? (除了编写自定义政策)
还提交了一个问题:https://github.com/aws/aws-aspnet-cognito-identity-provider/issues/86
其他参考文献:
答案 0 :(得分:2)
我知道这已经很老了,但是我只是设法在没有自定义授权者的情况下使它正常工作。
我的页面类定义为:
[Authorize(Roles = "admin")]
public class MyClass : PageModel
{
...
}
“ admin”的大小写似乎很重要(注销URL也有类似的问题-发现它必须是小写)。最初,我将其作为“管理员”使用,但没有用。
在“ startup.cs”文件中,设置“ TokenValidationParameters”的地方设置“ RoleClaimType”。
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = authOptions.Value.TokenValidationParameters.ValidateIssuer,
RoleClaimType = "cognito:groups"
};