AWS Cognito 基于角色的授权

Nei*_*eil 2 amazon-web-services asp.net-identity amazon-cognito

感谢新发布的模块;AWS Cognito 现在是 ASP.NET Core 身份提供商。

通过以下方式进行基于角色的授权会很好[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/

小智 9

我知道这已经很旧了,但是我只是设法在没有自定义授权者的情况下使其正常工作。

我的页面类定义为:

[Authorize(Roles = "admin")]
public class MyClass : PageModel
{
...
}
Run Code Online (Sandbox Code Playgroud)

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

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

options.TokenValidationParameters = new TokenValidationParameters
{
  ValidateIssuer = authOptions.Value.TokenValidationParameters.ValidateIssuer,
  RoleClaimType = "cognito:groups"
};
Run Code Online (Sandbox Code Playgroud)