Microsoft Entra çok faktörlü kimlik doğrulaması ile Azure SQL Veritabanı Bağlan

Şunlar için geçerlidir:Azure SQL Veritabanı

Bu makalede, Azure SQL Veritabanı bağlanan bir C# programı sağlanır. Program, Microsoft Entra Id (eski adıYla Azure Active Directory) kullanarak çok faktörlü kimlik doğrulamasını destekleyen etkileşimli mod kimlik doğrulamasını kullanır.

SQL araçları için çok faktörlü kimlik doğrulaması desteği hakkında daha fazla bilgi için bkz . Microsoft Entra çok faktörlü kimlik doğrulamasını kullanma.

Not

Microsoft Entra Id daha önce Azure Active Directory (Azure AD) olarak biliniyordu.

Azure SQL Veritabanı için çok faktörlü kimlik doğrulaması

Active Directory Interactivekimlik doğrulaması, Azure SQL veri kaynaklarına bağlanmak için Microsoft.Data.SqlClient kullanarak çok faktörlü kimlik doğrulamasını destekler. İstemci C# programında numaralandırma değeri, sistemi Azure SQL Veritabanı bağlanmak için çok faktörlü kimlik doğrulamasını destekleyen Microsoft Entra etkileşimli modunu kullanmaya yönlendirir. Programı çalıştıran kullanıcı aşağıdaki iletişim kutularını görür:

  • Microsoft Entra kullanıcı adını görüntüleyen ve kullanıcının parolasını soran bir iletişim kutusu.

    Kullanıcının etki alanı Microsoft Entra Kimliği ile birleştirilmişse, parola gerekmediğini için iletişim kutusu görünmez.

    Microsoft Entra ilkesi kullanıcıya çok faktörlü kimlik doğrulaması uygularsa, hesabınızda oturum açmak için bir iletişim kutusu görüntülenir.

  • Bir kullanıcı ilk kez çok faktörlü kimlik doğrulamasından geçtiğinde sistem, kısa mesaj göndermek için bir cep telefonu numarası isteyen bir iletişim kutusu görüntüler. Her ileti, kullanıcının sonraki iletişim kutusuna girmesi gereken doğrulama kodunu sağlar.

  • Sistemin bir cep telefonuna gönderdiği çok faktörlü kimlik doğrulama kodunu isteyen bir iletişim kutusu.

Microsoft Entra Id'yi çok faktörlü kimlik doğrulaması gerektirecek şekilde yapılandırma hakkında bilgi için bkz . Bulutta Microsoft Entra çok faktörlü kimlik doğrulamasını kullanmaya başlama.

Bu iletişim kutularının ekran görüntüleri için bkz . Microsoft Entra çok faktörlü kimlik doğrulamasını kullanma.

İpucu

.NET Framework API'lerini .NET API Tarayıcısı araç sayfasıyla arayabilirsiniz.

İsteğe bağlı ?term=<search değer> parametresiyle de doğrudan arama yapabilirsiniz.

Önkoşul

Başlamadan önce, oluşturulmuş ve kullanılabilir bir mantıksal SQL sunucusuna sahip olmanız gerekir.

Sunucunuz için bir Microsoft Entra yöneticisi ayarlama

C# örneğinin çalışması için, mantıksal sunucu yöneticisinin sunucunuz için Microsoft Entra Id'den bir Microsoft Entra yöneticisi ataması gerekir.

Azure portalında, SQL server sayfasında kaynak menüsünden Microsoft Entra Id'yi ve ardından Yöneticiyi ayarla'yı seçin.

Azure SQL Veritabanı için Microsoft Entra yöneticileri ve kullanıcıları hakkında daha fazla bilgi için SQL Veritabanı ile Microsoft Entra kimlik doğrulamasını yapılandırma ve yönetme makalesindeki ekran görüntülerine bakın.

Microsoft.Data.SqlClient

C# örneği Microsoft.Data.SqlClient ad alanına dayanır. Daha fazla bilgi için bkz . SqlClient ile Microsoft Entra kimlik doğrulamasını kullanma.

Not

System.Data.SqlClient , kullanım dışı olan Azure Active Directory Kimlik Doğrulama Kitaplığı'nı (ADAL) kullanır. Microsoft Entra kimlik doğrulaması için System.Data.SqlClient ad alanını kullanıyorsanız, uygulamaları Microsoft.Data.SqlClient'a ve Microsoft Authentication Library'ye (MSAL) geçirin. SqlClient ile Microsoft Entra kimlik doğrulamasını kullanma hakkında daha fazla bilgi için bkz . SqlClient ile Microsoft Entra kimlik doğrulamasını kullanma.

SQL Server Management Studio ile doğrulama

C# örneğini çalıştırmadan önce, SQL Server Management Studio'da (SSMS) kurulum ve yapılandırmalarınızın doğru olup olmadığını denetlemek iyi bir fikirdir. Daha sonra herhangi bir C# programı hatası kaynak koda daraltılabilir.

Sunucu düzeyinde güvenlik duvarı IP adreslerini doğrulama

SSMS'yi aynı bilgisayardan, C# örneğini çalıştırmayı planladığınız aynı binada çalıştırın. Bu test için herhangi bir Kimlik Doğrulama modu Tamam'dır. Sunucunun IP adresinizi kabul etmediğini gösteren bir gösterge varsa yardım için sunucu düzeyinde ve veritabanı düzeyinde güvenlik duvarı kurallarına bakın.

Microsoft Entra çok faktörlü kimlik doğrulamasını doğrulama

SSMS'yi yeniden çalıştırın; bu kez Kimlik Doğrulaması Azure Active Directory - MFA ile Evrensel olarak ayarlandı. Bu seçenek SSMS sürüm 18.6 veya üzerini gerektirir.

Daha fazla bilgi için bkz . Microsoft Entra çok faktörlü kimlik doğrulamasını kullanma.

Not

18.x öncesi SSMS sürümleri için konuk kullanıcıların veritabanı için Microsoft Entra etki alanı adını veya kiracı kimliğini sağlaması gerekir: Seçenekler>AD etki alanı adı veya kiracı kimliği'ni seçin. SSMS 18.x ve üzeri, kiracıyı otomatik olarak tanır.

Azure portalında etki alanı adını bulmak için Microsoft Entra Id>Özel etki alanı adları'nı seçin. C# örnek programında etki alanı adı sağlamak gerekli değildir.

C# kod örneği

Not

.NET Core kullanıyorsanız, Microsoft.Data.SqlClient ad alanını kullanmak istersiniz. Daha fazla bilgi için aşağıdaki bloga bakın.

Bu, C# kaynak kodunun bir örneğidir.


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();

    }
}

 

Bu, C# test çıkışının bir örneğidir.

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

Sonraki adımlar