I created an Azure rental and configured the following:
Azure AD with:
- Simple user domain (less than 15 characters). DNS checked, etc. Things are good.
- Groups of users and administrators.
- Users of both groups
- VNET, DNS, and IP Addresses
- Device Management Enabled
- Enable Domain Services and Connect to VNET
Please note that there is nothing in the package, it's all in the cloud. My physical laptop is effectively used as a leap.
Azure SQL Database and Server with:
- Firewall rules are open to all necessary inbound connections.
- Active Directory Administrator installed as a group of Admins I created in Azure AD
- AD users created in SQL Azure using CREATE USER FROM EXTERNAL PROVIDER;
SQL Azure SSMS , Active Directory Active Directory. , .
:
, : a) , b) ASP.NET MVC. b , . a .
Azure VM:
- D2 - Windows 10
- VNET,
- SQL Server Server 2016 (SSMS) ( - 13.0.15700.28)
- ODBC 13.1 ( , )
- ADAL
- Microsoft Online Services - RTW
, "" Azure AD, SQL Azure VM.
:
Azure Active Directory, , ( AD SQL Azure ). SSMS, Active Directory Universal Authentication Active Directory Password Authentication, Active Directory, . , Azure AD. - 100% , .
:
- - ? - .
- () , .net 4.6.2 # ? , ODBC 13.1?
===================================
.database.windows.net.
===================================
NT Authority\ Active Directory (Authentication = ActiveDirectoryIntegrated). 0xCAA9001F; state 10 Windows . ( Net SqlClient)
------------------------------ : http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=0&LinkId=20476
------------------------------ :.database.windows.net : 0 : 11 : 0 : ADALGetAccessToken
------------------------------ :
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity , SqlConnectionString connectionOptions, SqlCredential , Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool, String accessToken, Boolean applyTransientFaultHandling) System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions , DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool , DbConnection owningConnection, DbConnectionOptions userOptions) System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection ownConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection ownConnection, TaskCompletionSource 1 retry, DbConnectionOptions
userOptions, DbConnectionInternal oldConnection, DbConnectionInternal&
connection) at
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection
outerConnection, DbConnectionFactory connectionFactory,
TaskCompletionSource 1 retry, DbConnectionOptions userOptions) System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection externalConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1 retry, DbConnectionOptions userOptions) at
System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource 1 ) System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 ) System.Data.SqlClient.SqlConnection.Open() at Microsoft.SqlServer.Management.SqlStudio.Explorer.ObjectExplorerService.ValidateConnection(UIConnectionInfo ci, IServerType) Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()