0

我们的团队在启用了 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 task) 在 Microsoft.IdentityModel .Clients.ActiveDirectory.AuthenticationContext.AcquireToken(字符串资源,ClientCredential clientCredential)

我还在调试器中捕获了原始异常,并找到了更详细的堆栈跟踪:

mscorlib.dll!System.Security.Cryptography.SHA256Managed.SHA256Managed() + 0xcf 字节
[本机到托管转换]
mscorlib.dll!System.Security.Cryptography.CryptoConfig.CreateFromName(string name, object[] args) + 0x46b 字节 mscorlib .dll!System.Security.Cryptography.SHA256.Create(string hashName) + 0xb bytes
Microsoft.IdentityModel.Clients.ActiveDirectory.dll!Microsoft.IdentityModel.Clients.ActiveDirectory.PlatformSpecificHelper.CreateSha256Hash(string input) + 0x41 bytes
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(参考 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 库本身来解决此问题。

4

1 回答 1

1

感谢您报告此事。我们为它打开了一个错误,并将在几天后发布的下一个服务版本中解决它。这是 GitHub 上的错误:

https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/issues/132

于 2014-12-09T20:55:48.133 回答