web-dev-qa-db-ja.com

5.0.0へのアップグレード後にTokenValidationParametersが機能しなくなった

System.IdentityModel.Tokens.Jwt、Version = 4.0.20622.1351を使用していたときに機能していた次のコードがあります

private static void ConfigureAzureAD(IAppBuilder appBuilder)
{
    appBuilder.UseWindowsAzureActiveDirectoryBearerAuthentication(
        new WindowsAzureActiveDirectoryBearerAuthenticationOptions
        {
            Tenant = ConfigurationManager.AppSettings["ida:Tenant"],
            TokenValidationParameters = new System.IdentityModel.Tokens.TokenValidationParameters
            {
                ValidAudience = ConfigurationManager.AppSettings["ida:Audience"]
            }
        });
}

ただし、このパッケージを バージョン5 の最新のパッケージにアップグレードするとすぐに、System.IdentityModel.Token.Jwtで定義されていると主張する 'TokenValidationParameters'型への参照をコンパイルしなくなりましたが、できませんでした見つけられた。

また、次のコンパイラを試してみると、オーディエンスは廃止されたという警告が表示されます:

 private static void ConfigureAzureAD(IAppBuilder appBuilder)
    {
        appBuilder.UseWindowsAzureActiveDirectoryBearerAuthentication(
            new WindowsAzureActiveDirectoryBearerAuthenticationOptions
            {
                Tenant = ConfigurationManager.AppSettings["ida:Tenant"],
                Audience = ConfigurationManager.AppSettings["ida:Audience"]
            });
    }

このDLLを再度ダウングレードし、バージョン4.0.20622.1351を使用してコンパイルを開始しました。

Azure Active Directoryの構成に関する構文の変更はありますか?

Githubでは、最新のパッケージ5.0.0を使用している単一のプロジェクトを見つけることができず、それらはすべて以前のパッケージ4.0.20622.1351を使用しています。誰でも最新のSystem.IdentityModel.Tokens.Jwt 5.0.0を使用してこれに光を当てることができますか、最新のパッケージを使用してGithubのいくつかのプロジェクトに私を導くことができます?

53
MHOOS

TokenValidationParametersはアセンブリにあります:Microsoft.IdentityModel.Tokens

Katana(asp.net OWINオファリングの最初のバージョン)を使用しているようです。 Katanaは5.0.0をサポートしていません。 4.xに固執する必要があります。

Asp.netの最新バージョンは、S.IM.xxおよびM.IM.xxx 5.0に依存しています。 https://github.com/aspnet

29
Brent Schmaltz

短いバージョン:Microsoft.Owinなどのバージョン4.0以降のMicrosoft.Owinパッケージを使用していることを確認してください.Security.Jwt


他の回答で述べたように、バージョン4.0から5.0で System.IdentityModel.Tokens.Jwt に重大な変更がありました。 Microsoft.IdentityModel.Protocols などの一部のパッケージはバージョン5.0に依存していたため、これにより問題が発生しましたが、 Microsoft.Owinのような古いKatana/OWINパッケージ.Security.Jwt はまだバージョン4.0に依存するようにハードコードされていました。

幸いなことに、これは新しいKatana 4.0リリースでは being fixed です。 4.0パッケージ( Jwt および Cookies など)は、プレリリースパッケージとしてNuGetに公開されており、利用可能になります。すぐに安定したパッケージとして。

16
Nate Barbettini

これがいつ、いつ修正されるかはわかりませんが、そうなることを願っています。これらの問題は、AAD拡張機能の Githubサイト および Katanaサイト に既に掲載しています。これらのサイトでの議論や進捗状況をフォローすることができます。気になる場合は、このアドレスを確認することへの関心をいつでも投稿できます。

これがリリース前の問題とはみなされていなかったことがわかりません。 「.Net Coreへのアップグレード」は合理的なソリューションではありません。私のアプリは、大部分の重要なプロジェクトがそうであるように、しばらくの間それを行う機会がありません。

7
ChrisW

ですから、今日も同じ問題を経験しています。その下を見下ろした後、私は答えを知っていると思います。

要するに、Katanaプロジェクト( http://katanaproject.codeplex.com/ )がWindows Azure Active Directory IdentityModel Extensions for .Netの現在の変更に準拠していないという問題です( https://github.com/AzureAD/Azure-activedirectory-identitymodel-extensions-for-dotnet

詳細については、TokenValidationParametersはSystem.IdentityModel.Tokens.Jwt Assembly verion 4.0にありましたが、バージョン5.0では削除されました。新しいホームは現在、アセンブリMicrosoft.IdentityModel.Tokensにあります。

申し訳ありませんが、カタナのコードベースを大幅にリファクタリングする必要がある設計変更であるため、修正を提供できません。

5
Thuc Nguyen

Katanaは現在、IdentityModelの5.xバージョンでは動作しません。 https://github.com/AzureAD/Azure-activedirectory-identitymodel-extensions-for-dotnet

ただし、これを修正する作業が進行中です。タイムラインはまだ設定されていません。

0
Brent Schmaltz