Dela via


Ansluta till Azure SQL Database med Microsoft Entra multifaktorautentisering

gäller för:Azure SQL DatabaseSQL-databas i Fabric

Den här artikeln innehåller ett C#-program som ansluter till Azure SQL Database. Programmet använder interaktiv lägesautentisering, som stöder multifaktorautentisering med hjälp av Microsoft Entra-ID (tidigare Azure Active Directory).

Mer information om stöd för multifaktorautentisering för SQL-verktyg finns i Använda Microsoft Entra multifaktorautentisering.

Note

Microsoft Entra ID tidigare kallades Azure Active Directory (Azure AD).

Multifaktorautentisering för Azure SQL Database

Active Directory Interactive-autentisering stöder multifaktorautentisering med hjälp av Microsoft.Data.SqlClient för att ansluta till Azure SQL-datakällor. I ett klientprogram i C# anvisar uppräkningsvärdet systemet att använda Microsoft Entras interaktiva läge som stöder multifaktorautentisering för att ansluta till Azure SQL Database. Användaren som kör programmet ser följande dialogrutor:

  • En dialogruta som visar ett Microsoft Entra-användarnamn och frågar efter användarens lösenord.

    Om användarens domän är federerad med Microsoft Entra-ID visas inte dialogrutan eftersom inget lösenord behövs.

    Om Microsoft Entra-principen tillämpar multifaktorautentisering på användaren visas en dialogruta för att logga in på ditt konto.

  • Första gången en användare genomgår multifaktorautentisering visar systemet en dialogruta som ber om ett mobiltelefonnummer att skicka sms till. Varje meddelande innehåller verifieringskod som användaren måste ange i nästa dialogruta.

  • En dialogruta som ber om en verifieringskod för multifaktorautentisering som systemet har skickat till en mobiltelefon.

Information om hur du konfigurerar Microsoft Entra-ID för att kräva multifaktorautentisering finns i Komma igång med Microsoft Entra multifaktorautentisering i molnet.

Skärmbilder av dessa dialogrutor finns i Using Microsoft Entra multifactor authentication.

Tips

Du kan söka i .NET Framework-API:er med verktygssidan .NET API Browser.

Du kan också söka direkt med valfria ?term=<sökvärde> parametern.

Förutsättning

Innan du börjar bör du ha en logisk SQL-server skapad och tillgänglig.

Ange en Microsoft Entra-administratör för servern

För att C#-exemplet ska kunna köras, måste en logisk server administratör tilldela en Microsoft Entra-administratör från Microsoft Entra ID för din server.

På sidan SQL Server i Azure-portalen väljer du Microsoft Entra-ID på resursmenyn och väljer sedan Ange administratör.

Mer information om Microsoft Entra-administratörer och användare för Azure SQL Database finns i skärmbilderna i Konfigurera och hantera Microsoft Entra-autentisering med SQL Database.

Microsoft.Data.SqlClient

C#-exemplet förlitar sig på Microsoft.Data.SqlClient namnområde. Mer information finns i Använda Microsoft Entra-autentisering med SqlClient.

Not

System.Data.SqlClient använder Azure Active Directory Authentication Library (ADAL), som är inaktuellt. Om du använder System.Data.SqlClient namnområde för Microsoft Entra-autentisering migrerar du program till Microsoft.Data.SqlClient och Microsoft Authentication Library (MSAL). Mer information om hur du använder Microsoft Entra-autentisering med SqlClient finns i Använda Microsoft Entra-autentisering med SqlClient.

Verifiera med SQL Server Management Studio

Innan du kör C#-exemplet är det en bra idé att kontrollera att konfigurationerna är korrekta i SQL Server Management Studio (SSMS). Eventuella C#-programfel kan sedan begränsas till källkod.

Verifiera IP-adresser för brandvägg på servernivå

Kör SSMS från samma dator, i samma byggnad, där du planerar att köra C#-exemplet. För det här testet är alla autentiseringslägen OK. Om det finns något som tyder på att servern inte accepterar din IP-adress kan du läsa brandväggsregler på servernivå och databasnivå om du behöver hjälp.

Verifiera Microsoft Entra multifaktorautentisering

Kör SSMS igen, den här gången med Authentication inställt på Azure Active Directory – Universal med MFA. Det här alternativet kräver SSMS version 18.6 eller senare.

För mer information, se Använda Microsoft Entra multifaktorautentisering.

Not

För SSMS-versioner före 18.x måste gästanvändare ange Microsoft Entra-domännamnet eller klient-ID:t för databasen: Välj Alternativ>AD-domännamn eller klient-ID. SSMS 18.x och senare identifierar klientorganisationen automatiskt.

Om du vill hitta domännamnet i Azure-portalen väljer du Microsoft Entra-ID>anpassade domännamn. I C#-exempelprogrammet är det inte nödvändigt att ange ett domännamn.

C#-kodexempel

Not

Om du använder .NET Core vill du använda namnområdet Microsoft.Data.SqlClient. Mer information finns i följande blogg.

Det här är ett exempel på C#-källkod.


using System;
using Microsoft.Data.SqlClient;

public class Program
{
    public static void Main(string[] args)
    {
        // Use your own server, database, and user ID.
        // Connection 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();

    }
}

 

Det här är ett exempel på C#-testutdata.

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

Nästa steg