AWS Cognito的基于角色的授权

时间:2019-03-19 06:04:06

标签: amazon-web-services asp.net-identity amazon-cognito

感谢新发布的module; AWS Cognito现在是一个ASP.NET Core Identity Provider。

最好通过[Authorize(Roles= "{Role}")]进行基于角色的授权;但是目前它不起作用;部分原因可能是因为认知(组/角色)被映射到cognito:groups声明。

是否有办法使其正常工作? (除了编写自定义政策)

还提交了一个问题:https://github.com/aws/aws-aspnet-cognito-identity-provider/issues/86

其他参考文献:

https://aws.amazon.com/blogs/developer/introducing-the-asp-net-core-identity-provider-preview-for-amazon-cognito/

1 个答案:

答案 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"
};