SQL Azure Integrated Authentication mit einem Azure Active Directory, das nur in der Cloud verfügbar ist, schlägt fehl.

Ich habe eine Azure-Mandantschaft erstellt und Folgendes konfiguriert:

Azure AD mit:

Ein einfacher benutzerdefinierter Domänenname (weniger als 15 Zeichen). DNS verifiziert etc. Alles gut.Benutzer- und AdministratorengruppenBenutzer in beiden GruppenA VNET und DNS und IP-AdressenEnabled Device ManagementEnabled Domain Services und verbunden mit dem VNET

Beachten Sie, dass es nichts vor Ort gibt, dies alles befindet sich in der Cloud. Mein physischer Laptop wird praktisch nur als Sprungbox verwendet.

Eine SQL Azure-Datenbank und ein Server mit:

Firewall-Regeln offen für alle notwendigen eingehenden VerbindungenEin Active Directory-Administrator, der als Administratorgruppe festgelegt wurde, die ich in Azure AD erstellt habe Die AD-Benutzer, die alle in SQL Azure mit CREATE USER FROM EXTERNAL PROVIDER erstellt wurden.

Ich kann über SSMS auf meinem Laptop eine Verbindung mit der SQL Azure-Datenbank herstellen, indem ich entweder Active Directory Universal Authentication oder Active Directory Password Authentication verwende. In beiden Fällen werde ich erwartungsgemäß aufgefordert, den Benutzernamen und das Passwort einzugeben.

Zielsetzung Ich möchte die integrierte Authentifizierung verwenden können, damit die Identität nahtlos von a) einem Computer, b) einer ASP.NET MVC-Site übertragen werden kann. Ich habe Szenario b ja nicht ausprobiert, also parken wir das. Für Szenario a habe ich Folgendes getan.

Konfigurierte eine Azure-VM:

Standard D2 - Windows 10 vollständig gepatchtVerbunden mit demselben VNET wie die DomäneSQL Server Management Server 2016 (SSMS) installiert (aktuell und gepatcht - 13.0.15700.28)ODBC 13.1 installiert (obwohl ich denke, dass dies nicht relevant ist) ADALMicrosoft Online Services-Anmeldeassistent für IT-Experten RTW

urz gesagt, meine vollständige "Umgebung" besteht aus einem Azure AD, einer SQL Azure-Datenbank und einer Client-V

Problem Ich füge die VM mithilfe von Directory Services meinem Azure Active Directory hinzu, melde mich ab und als gültiger Domänenbenutzer an (gültig in AD und SQL Azure mit den entsprechenden Anmeldungen und Berechtigungen). Wenn ich SSMS öffne, kann ich problemlos eine Verbindung mit Active Directory Universal Authentication oder Active Directory Password Authentication herstellen. Wenn ich jedoch versuche, eine Verbindung mit Active Directory Authenticated Security herzustellen, wird der folgende Fehler angezeigt. Dies passiert auch, wenn ich die VM direkt mit Azure AD verbinde. Meine Bereitstellung besteht zu 100% aus einer Cloud, sodass kein Verbund vorhanden ist.

So habe ich zwei Fragen:

Ich vermisse etwas in meiner Konfiguration oder Vorgehensweise oder gibt es eine Abhilfe? Es könnte ein bestehendes Problem sein - siehe hier Funktioniert diese Konnektivität (Pass-Through), wenn sie in .NET 4.6.2 mit C # codiert und in der Cloud bereitgestellt wird? Möglicherweise mit dem ODBC 13.1-Treiber?

Vielen Dan

==================================

Kann keine Verbindung zu .database.windows.net herstellen.

==================================

Authentifizierung des Benutzers NT Authority \ Anonymous Logon in Active Directory fehlgeschlagen (Authentifizierung = ActiveDirectoryIntegrated). Fehlercode 0xCAA9001F; Status 10 Integrierte Windows-Authentifizierung wird nur im Verbundfluss unterstützt. (.Net SqlClient Data Provider)

------------------------------ Wenn Sie Hilfe benötigen, klicken Sie auf:http: //go.microsoft.com/fwlink? ProdName = Microsoft% 20SQL% 20Server & EvtSrc = MSSQLServer & EvtID = 0 & LinkId = 20476

------------------------------ Servername: .database.windows.net Fehlernummer: 0 Schweregrad: 11 Status: 0 Vorgehensweise: ADALGetAccessToken

------------------------------ Programmspeicherort:

at System.Data.SqlClient.SqlInternalConnectionTds..ctor (DbConnectionPoolIdentity Identität, SqlConnectionString Connection, SqlCredential Berechtigungsnachweis, Objekt Provider, String newPassword, Secure newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, Session reconnectSessionData, DbConnectionPool Pool, String accessToken, Boolean applyTransientFaultHandling) bei System.Data.SqlClient.SqlConnectionFactory.CreateConnection (DbConnectionOptions Optionen, DbConnectionPoolKey poolKey, Objekt poolGroupProviderInfo, DbConnectionPool Pool, DbConnection owningConnection, DbConnectionOptions Useroptions) bei System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection (DbConnection owningConnection, DbConnectionPoolGroup Poolgroup, DbConnectionOptions Useroptions) bei System .Data.ProviderBase.DbConnectionFactory.TryGetConnection (DbConnection besitztConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1 Wiederholung, DbConnectionOptions userOptions) bei System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection (DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource 1 Wiederholung) bei System.Data.SqlClient.SqlConnection.TryOpen (TaskCompletionSource`1 Wiederholung) bei System.Data.SqlClient.SqlConnection.Open () bei Microsoft.SqlServer.Management.SqlStudio.Explorer.ObjectExplorerService.ValidateConnection (UIConnection) IServerType Server) bei Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser ()

Antworten auf die Frage(2)

Ihre Antwort auf die Frage