使用 Azure Active Directory 的 AAD 集成身份验证失败

时间:2021-07-30 13:31:12

标签: azure adfs

我们在其中一台 Azure 虚拟机上完成了 ADFS 设置,并且在 azure 门户中创建了一个 Sql 托管实例。 我们已联合我们的域并通过来自 SSMS 的 AAD 集成身份验证成功连接到“Sql 托管实例”。 我们的问题是,当我们尝试使用 AAD 集成的身份验证方法从 IIS 应用程序连接此 Sql 托管实例时

(string ConnectionString = @"Data Source=XXXXXXXXX; Authentication=Active Directory Integrated; Initial Catalog=testdb;")

,我们在屏幕上看到以下错误:

Message - > One or more errors occurred. Inner Exception -> System.AggregateException: One or more errors occurred. ---> AdalException: MSIS7069: The specified request failed. at ADALNativeWrapper.ADALGetAccessToken(String username, IntPtr password, String stsURL, String servicePrincipalName, ValueType correlationId, String clientId, Boolean* fWindowsIntegrated, Int64& fileTime) at System.Data.SqlClient.ActiveDirectoryNativeAuthenticationProvider.<>c__DisplayClass2_0.b__0() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.Execute() --- End of inner exception stack trace --- at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at System.Data.SqlClient.SqlInternalConnectionTds.<>c__DisplayClass134_1.b__0() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.Execute() ---> (Inner Exception #0) AdalException: MSIS7069: The specified request failed. at ADALNativeWrapper.ADALGetAccessToken(String username, IntPtr password, String stsURL, String servicePrincipalName, ValueType correlationId, String clientId, Boolean* fWindowsIntegrated, Int64& fileTime) at System.Data.SqlClient.ActiveDirectoryNativeAuthenticationProvider.<>c__DisplayClass2_0.b__0() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.Execute()<---

我们还检查了 ADFS 记录的问题并记录了以下错误,如下所示:

Log Name: AD FS/Admin
Source: AD FS
Date: 7/29/2021 12:26:45 PM
Event ID: 111
Task Category: None
Level: Error
Keywords: AD FS
User: Domain\testuser
Computer: Name of our adfs server(Not mentioned the exact name due to sensitive data)
Description:
The Federation Service encountered an error while processing the WS-Trust request.
Request type: http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue
Additional Data
Exception details:
Microsoft.IdentityServer.Service.SecurityTokenService.ADAccountValidationException: MSIS3173: Active Directory account validation failed. ---> Microsoft.IdentityServer.ClaimsPolicy.Engine.AttributeStore.Ldap.AttributeStoreDSGetDCFailedException: Exception of type 'Microsoft.IdentityServer.ClaimsPolicy.Engine.AttributeStore.Ldap.AttributeStoreDSGetDCFailedException' was thrown.

我们在整个过程中是否遗漏了什么?

编辑 1: 我对联合域有一个困惑。我们在客户端计算机中使用的域必须是 Azure 活动目录中的主域,还是只能位于 Azure 活动目录中的自定义域列表中?

编辑 2: 最后,我们成功地通过 AAD 集成身份验证连接到我们的 IIS 应用程序。我们刚刚将应用程序池的身份从 ApplicationPoolIdentity(默认选项)更改为我们的域用户,瞧,它就像一个魅力。希望有人能从中受益。

0 个答案:

没有答案