Share via


Verbinding maken naar Azure SQL Database met meervoudige verificatie van Microsoft Entra

Van toepassing op: Azure SQL Database

Dit artikel bevat een C#-programma dat verbinding maakt met Azure SQL Database. Het programma maakt gebruik van interactieve modusverificatie, die ondersteuning biedt voor meervoudige verificatie met behulp van Microsoft Entra ID (voorheen Azure Active Directory).

Zie Microsoft Entra-meervoudige verificatie gebruiken voor meer informatie over ondersteuning voor meervoudige verificatie voor SQL-hulpprogramma's.

Notitie

Microsoft Entra-id is de nieuwe naam voor Azure Active Directory (Azure AD). Op dit moment wordt de documentatie bijgewerkt.

Meervoudige verificatie voor Azure SQL Database

Active Directory Interactive verificatie ondersteunt meervoudige verificatie met behulp van Microsoft.Data.SqlClient om verbinding te maken met Azure SQL-gegevensbronnen. In een client C#-programma stuurt de enum-waarde het systeem om de interactieve Modus van Microsoft Entra te gebruiken die ondersteuning biedt voor meervoudige verificatie om verbinding te maken met Azure SQL Database. De gebruiker die het programma uitvoert, ziet de volgende dialoogvensters:

  • Een dialoogvenster met een Microsoft Entra-gebruikersnaam en vraagt om het wachtwoord van de gebruiker.

    Als het domein van de gebruiker is gefedereerd met Microsoft Entra ID, wordt het dialoogvenster niet weergegeven, omdat er geen wachtwoord nodig is.

    Als het Microsoft Entra-beleid meervoudige verificatie voor de gebruiker oplegt, wordt er een dialoogvenster weergegeven om u aan te melden bij uw account.

  • De eerste keer dat een gebruiker meervoudige verificatie doorloopt, wordt in het systeem een dialoogvenster weergegeven waarin wordt gevraagd om een mobiel telefoonnummer om sms-berichten naar te verzenden. Elk bericht bevat de verificatiecode die de gebruiker moet invoeren in het volgende dialoogvenster.

  • Een dialoogvenster waarin wordt gevraagd om een verificatiecode voor meervoudige verificatie, die het systeem naar een mobiele telefoon heeft verzonden.

Zie Aan de slag met Microsoft Entra-verificatie in de cloud voor meer informatie over het configureren van Microsoft Entra-id voor meervoudige verificatie.

Zie Microsoft Entra-meervoudige verificatie gebruiken voor schermopnamen van deze dialoogvensters.

Tip

U kunt .NET Framework-API's zoeken met de hulpprogrammapagina voor .NET API Browser.

U kunt ook rechtstreeks zoeken met de optionele parameter ?term=<search value>.

Vereiste

Voordat u begint, moet er een logische SQL-server zijn gemaakt en beschikbaar zijn.

Een Microsoft Entra-beheerder instellen voor uw server

Om het C#-voorbeeld uit te voeren, moet een beheerder van een logische server een Microsoft Entra-beheerder toewijzen vanuit Microsoft Entra-id voor uw server.

Selecteer in Azure Portal, op de pagina SQL Server, Microsoft Entra-id in het resourcemenu en selecteer Beheerder instellen.

Zie de schermopnamen in Microsoft Entra-verificatie configureren en beheren met SQL Database voor meer informatie over Microsoft Entra-beheerders en -gebruikers voor Azure SQL Database.

Microsoft.Data.SqlClient

Het C#-voorbeeld is afhankelijk van de naamruimte Microsoft.Data.SqlClient . Zie Microsoft Entra-verificatie gebruiken met SqlClient voor meer informatie.

Notitie

System.Data.SqlClient maakt gebruik van de Azure Active Directory Authentication Library (ADAL), die is afgeschaft. Als u de naamruimte System.Data.SqlClient voor Microsoft Entra-verificatie gebruikt, migreert u toepassingen naar Microsoft.Data.SqlClient en de Microsoft Authentication Library (MSAL). Zie Microsoft Entra-verificatie gebruiken met SqlClient voor meer informatie over het gebruik van Microsoft Entra-verificatie met SqlClient.

Verifiëren met SQL Server Management Studio

Voordat u het C#-voorbeeld uitvoert, is het een goed idee om te controleren of uw instellingen en configuraties juist zijn in SQL Server Management Studio (SSMS). Elke C#-programmafout kan vervolgens worden beperkt tot broncode.

IP-adressen op serverniveau controleren

Voer SSMS uit vanaf dezelfde computer, in hetzelfde gebouw, waar u het C#-voorbeeld wilt uitvoeren. Voor deze test is elke verificatiemodus in orde. Als er een indicatie is dat de server uw IP-adres niet accepteert, raadpleegt u firewallregels op server- en databaseniveau voor hulp.

Meervoudige verificatie van Microsoft Entra verifiëren

Voer SSMS opnieuw uit, deze keer met verificatie ingesteld op Azure Active Directory - Universeel met MFA. Voor deze optie is SSMS versie 18.6 of hoger vereist.

Zie Microsoft Entra-meervoudige verificatie gebruiken voor meer informatie.

Notitie

Voor SSMS-versies vóór 18.x moeten gastgebruikers de Microsoft Entra-domeinnaam of tenant-id voor de database opgeven: Selecteer opties>AD-domeinnaam of tenant-id. SSMS 18.x en hoger herkent de tenant automatisch.

Als u de domeinnaam in Azure Portal wilt vinden, selecteert u Aangepaste domeinnamen van Microsoft Entra ID>. In het C#-voorbeeldprogramma is het opgeven van een domeinnaam niet nodig.

Voorbeeld van C#-code

Notitie

Als u .NET Core gebruikt, wilt u de naamruimte Microsoft.Data.SqlClient gebruiken. Zie de volgende blog voor meer informatie.

Dit is een voorbeeld van C#-broncode.


using System;
using Microsoft.Data.SqlClient;

public class Program
{
    public static void Main(string[] args)
    {
        // Use your own server, database, and user ID.
        // Connetion string - user ID is not provided and is asked interactively.
        string ConnectionString = @"Server=<your server>.database.windows.net; Authentication=Active Directory Interactive; Database=<your database>";


        using (SqlConnection conn = new SqlConnection(ConnectionString))

        {
            conn.Open();
            Console.WriteLine("ConnectionString2 succeeded.");
            using (var cmd = new SqlCommand("SELECT @@Version", conn))
            {
                Console.WriteLine("select @@version");
                var result = cmd.ExecuteScalar();
                Console.WriteLine(result.ToString());
            }

        }
        Console.ReadKey();

    }
}

 

Dit is een voorbeeld van de C#-testuitvoer.

ConnectionString2 succeeded.
select @@version
Microsoft SQL Azure (RTM) - 12.0.2000.8
   ...

Volgende stappen