私たちのチームは、FIPS が有効になっているサーバーで ADAL 2.12 を使用する際に問題が発生していることを確認しています\。スローされる例外は次のとおりです。
System.Reflection.TargetInvocationException: 呼び出しのターゲットによって例外がスローされました。---> System.InvalidOperationException: この実装は、Windows プラットフォーム FIPS 検証済み暗号化アルゴリズムの一部ではありません。System.Security.Cryptography.SHA256Managed..ctor() で --- 内部例外スタック トレースの終わり --- Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.RunAsyncTask[T](Task`1 タスク) で Microsoft.IdentityModel .Clients.ActiveDirectory.AuthenticationContext.AcquireToken(文字列リソース、ClientCredential clientCredential)
また、デバッガーで元の例外をキャプチャしたところ、次の詳細なスタック トレースが見つかりました。
mscorlib.dll!System.Security.Cryptography.SHA256Managed.SHA256Managed() + 0xcf バイト
[Managed Transition にネイティブ]
mscorlib.dll!System.Security.Cryptography.CryptoConfig.CreateFromName(string name, object[] args) + 0x46b バイト mscorlib .dll!System.Security.Cryptography.SHA256.Create(string hashName) + 0xb バイト
Microsoft.IdentityModel.Clients.ActiveDirectory.dll!Microsoft.IdentityModel.Clients.ActiveDirectory.PlatformSpecificHelper.CreateSha256Hash(文字列入力) + 0x41 バイト
Microsoft.IdentityModel .Clients.ActiveDirectory.dll!Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenHandlerBase.LogReturnedToken(Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationResult 結果) + 0x91 バイト
Microsoft.IdentityModel.Clients.ActiveDirectory.dll!Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenHandlerBase.PostRunAsync(Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationResult 結果) + 0x32 バイト
Microsoft.IdentityModel.Clients.ActiveDirectory.dll!Microsoft.IdentityModel. Clients.ActiveDirectory.AcquireTokenHandlerBase.RunAsync.MoveNext() + 0xdf6 バイト
mscorlib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start(ref Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenHandlerBase.RunAsync stateMachine) + 0x161 バイト
Microsoft.IdentityModel.Clients .ActiveDirectory.dll!Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenHandlerBase.RunAsync() + 0x13a バイト
Microsoft.IdentityModel.Clients.ActiveDirectory.dll!Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireTokenForClientCommonAsync.MoveNext() + 0x130 バイト mscorlib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start(ref Microsoft.IdentityModel.Clients.ActiveDirectory .AuthenticationContext.AcquireTokenForClientCommonAsync stateMachine) + 0x171 バイト
Microsoft.IdentityModel.Clients.ActiveDirectory.dll!Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireTokenForClientCommonAsync (文字列リソース、Microsoft.IdentityModel.Clients.ActiveDirectory.ClientKey clientKey、bool callSync) + 0x17eバイト
Microsoft.IdentityModel.Clients.ActiveDirectory.dll!Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireToken(文字列リソース、Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential clientCredential) + 0x7d バイト
これを回避する方法はありますか?リフレクターを通してコードを見ると、これを修正するには ADAL ライブラリ自体を更新する必要があるようです。