ASP.NET Core2およびIdentityServer4での役割の欠落の主張

ミニ開発1

このコード行を使用したカスタムクレームのマッピングについて、https://leastprivilege.com/2017/11/15/missing-claims-in-the-asp-net-core-2-openid-connect-handler/を読みました

options.ClaimActions.MapUniqueJsonKey("website", "website");

ロールをマップする必要があり、「ユーザー」のようなロールが1つだけになるまで機能します

options.ClaimActions.MapUniqueJsonKey("role", "role");

問題は、「User」や「Superadmin」のような複数のロールがある場合です。そのコード行は例外をスローします。

InvalidCastException: Cannot cast Newtonsoft.Json.Linq.JArray to Newtonsoft.Json.Linq.JToken.

誰かアイデアがありますか?私は何か間違っていますか、それともバグである可能性がありますか?

リチャード

ここにこの問題の議論があります:

https://github.com/aspnet/Security/issues/1383

同じ問題で、役割に関する問題の潜在的な解決策は次のとおりです。

https://github.com/aspnet/Security/issues/1383#issuecomment-361505163

oidcOptions.Events = new OpenIdConnectEvents()
{
  OnUserInformationReceived = async context =>
  {
    // IDS4 returns multiple claim values as JSON arrays, which break the authentication handler
    if (context.User.TryGetValue(JwtClaimTypes.Role, out JToken role))
    {
      var claims = new List<Claim>();
      if (role.Type != JTokenType.Array) {
        claims.Add(new Claim(JwtClaimTypes.Role, (string)role));
      }
      else  {
        foreach (var r in role)
          claims.Add(new Claim(JwtClaimTypes.Role, (string)r));
      }
      var id = context.Principal.Identity as ClaimsIdentity;
      id.AddClaims(claims);
    }
  ...
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ASP.NET Core Identity、IdentityServer4、およびパスワードの変更

分類Dev

ASP.NET Core2アプリケーションでidentityserver4のOpenIdConnect認証をサインアウトできません

分類Dev

ASP.NET Core2 +のILoggerとDependencyInjection

分類Dev

ASP.NET Core2のweb.config

分類Dev

ASP.NETコアIDの役割、クレーム、およびユーザー

分類Dev

HerokuでのEntityFramework、ASP.NET MVC Core、およびPostgreSQLの使用

分類Dev

ASP.Net Core 2.0 IdentityServer4

分類Dev

asp net core2でのDataAnnotationsのローカリゼーション

分類Dev

Asp.Net Core2でのトークンベースの認証

分類Dev

ASP.Net Core2複数のコントローラー

分類Dev

ASP.Net Core2のグローバル変数

分類Dev

ASP.NET CORE2のBootstrap + SASSをGulpで更新しましたか?

分類Dev

ASP.NET Core2でSteam用のOpenIDConnectを構成するにはどうすればよいですか?

分類Dev

IdentityServer4、Angularおよび.NET CORE Api

分類Dev

ASP.NET CORE MVC C#でのGETおよびPOSTの問題

分類Dev

ASP.NET Identity2の階層的な役割

分類Dev

ASP.NET Core2での同じタイプの複数のインスタンスの依存性注入

分類Dev

ASP.NET Core2のさまざまな領域の認証とLoginPath

分類Dev

ASP.NET Core2の構成オプションの問題

分類Dev

Asp.Net Core2のRoleManagerを使用したロールのシード

分類Dev

IdentityServer4とASP.NETWebアプリケーション(.NET Framework)の使用

分類Dev

ASP.NET Core2のlayout.cshtmlでのLessファイルの使用とルーティング

分類Dev

ASP.netおよびC#でのjqueryの使用

分類Dev

asp.netコア2.0でidentityserver4を使用する場合の無限の認証ループ

分類Dev

ASP.NET Core2のフォルダーを除外します

分類Dev

ASP.NET CORE2から現在のユーザーを取得する

分類Dev

Asp.Net Core2ベアラートークンの検証

分類Dev

IdentityServer4、Asp.Net Core Identity、およびEntityFrameworkを使用しないカスタムプロバイダーを使用したBlazorWebAssembly認証

分類Dev

ASP.NETのUWPAPI

Related 関連記事

  1. 1

    ASP.NET Core Identity、IdentityServer4、およびパスワードの変更

  2. 2

    ASP.NET Core2アプリケーションでidentityserver4のOpenIdConnect認証をサインアウトできません

  3. 3

    ASP.NET Core2 +のILoggerとDependencyInjection

  4. 4

    ASP.NET Core2のweb.config

  5. 5

    ASP.NETコアIDの役割、クレーム、およびユーザー

  6. 6

    HerokuでのEntityFramework、ASP.NET MVC Core、およびPostgreSQLの使用

  7. 7

    ASP.Net Core 2.0 IdentityServer4

  8. 8

    asp net core2でのDataAnnotationsのローカリゼーション

  9. 9

    Asp.Net Core2でのトークンベースの認証

  10. 10

    ASP.Net Core2複数のコントローラー

  11. 11

    ASP.Net Core2のグローバル変数

  12. 12

    ASP.NET CORE2のBootstrap + SASSをGulpで更新しましたか?

  13. 13

    ASP.NET Core2でSteam用のOpenIDConnectを構成するにはどうすればよいですか?

  14. 14

    IdentityServer4、Angularおよび.NET CORE Api

  15. 15

    ASP.NET CORE MVC C#でのGETおよびPOSTの問題

  16. 16

    ASP.NET Identity2の階層的な役割

  17. 17

    ASP.NET Core2での同じタイプの複数のインスタンスの依存性注入

  18. 18

    ASP.NET Core2のさまざまな領域の認証とLoginPath

  19. 19

    ASP.NET Core2の構成オプションの問題

  20. 20

    Asp.Net Core2のRoleManagerを使用したロールのシード

  21. 21

    IdentityServer4とASP.NETWebアプリケーション(.NET Framework)の使用

  22. 22

    ASP.NET Core2のlayout.cshtmlでのLessファイルの使用とルーティング

  23. 23

    ASP.netおよびC#でのjqueryの使用

  24. 24

    asp.netコア2.0でidentityserver4を使用する場合の無限の認証ループ

  25. 25

    ASP.NET Core2のフォルダーを除外します

  26. 26

    ASP.NET CORE2から現在のユーザーを取得する

  27. 27

    Asp.Net Core2ベアラートークンの検証

  28. 28

    IdentityServer4、Asp.Net Core Identity、およびEntityFrameworkを使用しないカスタムプロバイダーを使用したBlazorWebAssembly認証

  29. 29

    ASP.NETのUWPAPI

ホットタグ

アーカイブ