简体   繁体   English

需要FIPS时ADAL失败

[英]ADAL fails when FIPS is required

Our team is seeing an issue using ADAL 2.12 in our servers which have FIPS enabled\\required. 我们的团队发现在启用了FIPS的服务器中使用ADAL 2.12的问题\\必需。 Here is the exception thrown: 这是引发的异常:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. System.Reflection.TargetInvocationException:调用的目标引发了异常。 ---> System.InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms. ---> System.InvalidOperationException:此实现不是Windows平台FIPS验证的加密算法的一部分。 at System.Security.Cryptography.SHA256Managed..ctor() --- End of inner exception stack trace --- at Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.RunAsyncTask[T](Task`1 task) at Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireToken(String resource, ClientCredential clientCredential) 在System.Security.Cryptography.SHA256Managed..ctor()-内部异常堆栈跟踪的结尾-在Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.RunAsyncTask [T](任务1任务)在Microsoft.IdentityModel .Clients.ActiveDirectory.AuthenticationContext.AcquireToken(字符串资源,ClientCredential clientCredential)

I also captured the original exception in a debugger and found this more detailed stack trace: 我还捕获了调试器中的原始异常,并找到了以下更详细的堆栈跟踪:

mscorlib.dll!System.Security.Cryptography.SHA256Managed.SHA256Managed() + 0xcf bytes mscorlib.dll!System.Security.Cryptography.SHA256Managed.SHA256Managed()+ 0xcf字节
[Native to Managed Transition] [从本地过渡到托管过渡]
mscorlib.dll!System.Security.Cryptography.CryptoConfig.CreateFromName(string name, object[] args) + 0x46b bytes mscorlib.dll!System.Security.Cryptography.SHA256.Create(string hashName) + 0xb bytes mscorlib.dll!System.Security.Cryptography.CryptoConfig.CreateFromName(字符串名称,对象[]参数)+ 0x46b字节mscorlib.dll!System.Security.Cryptography.SHA256.Create(字符串hashName)+ 0xb字节
Microsoft.IdentityModel.Clients.ActiveDirectory.dll!Microsoft.IdentityModel.Clients.ActiveDirectory.PlatformSpecificHelper.CreateSha256Hash(string input) + 0x41 bytes 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 result) + 0x91 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 result) + 0x32 bytes 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 bytes 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 bytes 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 bytes 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 bytes mscorlib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start(ref Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireTokenForClientCommonAsync stateMachine) + 0x171 bytes 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.dll! .AuthenticationContext.AcquireTokenForClientCommonAsync stateMachine)+ 0x171字节
Microsoft.IdentityModel.Clients.ActiveDirectory.dll!Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireTokenForClientCommonAsync(string resource, Microsoft.IdentityModel.Clients.ActiveDirectory.ClientKey clientKey, bool callSync) + 0x17e bytes 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(string resource, Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential clientCredential) + 0x7d bytes Microsoft.IdentityModel.Clients.ActiveDirectory.dll!Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireToken(字符串资源,Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential clientCredential)+ 0x7d字节

Is there any way to get around this? 有什么办法可以解决这个问题? From looking at code through a reflector, it seems the ADAL library itself needs to be updated to fix this. 从通过反射器看代码,似乎ADAL库本身需要更新以解决此问题。

Thanks for reporting this. 感谢您举报。 We opened a bug for it and will address it in our next servicing release which would be out in a few days. 我们为此打开了一个错误,并将在几天后发布的下一个服务版本中予以解决。 This is the bug on GitHub: 这是GitHub上的错误:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM