Asp.Net Core 2.0 API、Identity Server、WPFアプリでプロジェクトを完了しました。 ログインした後、WPFからAPIにアクセスできます。
現在、特定のユーザーだけがAPIにアクセスできるようにロールを実装しようとしています。
Config.csで、クライアントを宣言し、スコープに追加しています:
new Client
{
AllowedScopes =
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile,
IdentityServerConstants.StandardScopes.Email,
IdentityServerConstants.StandardScopes.OfflineAccess,
"fiver_auth_api",
"role"
},
AlwaysIncludeUserClaimsInIdToken=true
}
TestUserの宣言:
return new List<TestUser>
{
new TestUser
{
SubjectId = "", Username = "", Password = "",
Claims = new List<Claim>
{
new Claim(JwtClaimTypes.Email, "AliceSmith@email.com"),
new Claim(JwtClaimTypes.EmailVerified, "true", ClaimValueTypes.Boolean),
new Claim(JwtClaimTypes.Role, "Admin"),
new Claim(JwtClaimTypes.Scope, "openid offline_access fiver_auth_api")
}
}
}
そして、私が使用しているコントローラーで:
[Authorize(Roles = "Admin")]
トークンにユーザークレームを取得できないのはなぜですか?
興味のある人のために、私がそれを修正した方法があります: 構成ファイルに、役割のリストを追加します。