AWS Cognito 基于角色的授权

Role-based authorization for AWS Cognito

感谢新发布module; AWS Cognito 现在是 ASP.NET 核心身份提供商。

通过[Authorize(Roles= "{Role}")]进行基于角色的授权会很好;但是目前它不起作用;部分原因可能是因为认知 (groups/roles) 被映射到 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/

我知道这是旧的,但我只是在没有自定义授权者的情况下设法让它工作。

我的页面 class 定义为:

[Authorize(Roles = "admin")]
public class MyClass : PageModel
{
...
}

“admin”的大小写似乎很重要(注销也有类似问题 URL - 发现它必须是小写)。最初我将其设置为“管理员”,但没有用。

在您设置“TokenValidationParameters”的“startup.cs”文件中,您设置了“RoleClaimType”。

options.TokenValidationParameters = new TokenValidationParameters
{
  ValidateIssuer = authOptions.Value.TokenValidationParameters.ValidateIssuer,
  RoleClaimType = "cognito:groups"
};