AWS Cognito で認証すると、 を含む ID トークンを取得できますcognito:groups { admin, user}
。ASPNetCore Webapi から、ポリシーを使用して承認できます (AWS チュートリアルhttps://www.youtube.com/watch?v=M6qTrI7kmZkに従います)。
services.AddSingleton<IAuthorizationHandler, CognitoGroupAuthorizationHandler>();
services.AddAuthorization(options=> {
options.AddPolicy("admin", p => p.Requirements.Add(
new CognitoGroupAuthorizationRequirement("admin")
));
options.AddPolicy("user", p => p.Requirements.Add(
new CognitoGroupAuthorizationRequirement("user")
));
});
Controller で Policy を宣言するときに機能します[Authorize(Policy = "admin")]
。ただし、私の API は代わりにロールを使用します。
何かいい方法はあり[Authorize(Role = "admin")]
ますか?