アイデンティティサーバー4とASP.NETアイデンティティを統合する際の説明をお願いしたいと思います。ASP.NETコアIDとアイデンティティサーバー4 - [役割、クレームとアイデンティティリソース]
私は2つのデータベースコンテキストで作業しています。 Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityDbContext<IdentityUser>
およびIdentityServer4.EntityFramework.DbContexts.ConfigurationDbContext
。
Identity Server 4はAspNetIdentity .AddAspNetIdentity<IdentityUser>()
を使用しています。
したがってIdentityUser
にはIdentityUserClaims
が割り当てられており、成功した認証後にJWTトークンに正しく反映されます。
ここで、IdentityServer4 ConfigurationDbContext
のIdentityResource
とIdentityClaim:UserClaim
とは何ですか?現在、クレームはaspnetアイデンティティから使用されているため、このエンティティはまったく使用されていません。私は正しい?
もう1つの質問はどうですか?ApiScopeClaims
は現在ゲームになっていますか?それらはトークンが発行されるApiScope
のためにIdentity Serverによって引き続き使用されます。右?しかし、異なるdb文脈からのものであることを今まででは同期ApiScopeClaim
とIdentityUserClaim
に任せておきます。
最後の質問はとIdentityRoleClaims
で、IdentityUserClaims
と同じではありません。何の背後にある考えですか?私の考えでは、ロールは特定のビジネスロールに対するクレームをグルーピングして管理しやすいため、ロールは新しいクレームを定義すべきではなく、IdentityUserClaims
のリファレンスセットを定義すべきです。さらに、ユーザーに割り当てられたロールを作成しました。スコープと結果に割り当てられた対応するクレームタイプは - ロールに割り当てられたクレームとこのロールを持つユーザーはJWTには含まれません。どうして?
ありがとうございました。
「IdentityRoleClaims」はどうですか?それらは 'AspNetIdentity'の一部ですが、IdentityServer4が発行するJWTトークンに含まれていますか?私はそれを試みましたが、彼らは含まれていないか、役割の主張はそこにありません。 –
APIリソースでクレーム "ロール"が必要な場合、ロールには適切な値が含まれています。しかし、どのようにロールクレームも含まれていますか? –
「openid」アイデンティティリソースに「role」クレームタイプを追加してください。 –