Öğretici: Yönetilen kimlik ve SQL bağlamalarıyla bir işlev uygulamasını Azure SQL'e bağlama

Azure İşlevleri, Azure SQL Veritabanı ve diğer Azure hizmetlerine erişimin güvenliğini sağlamaya yönelik anahtar teslimi bir çözüm olan yönetilen kimlik sağlar. Yönetilen kimlikler, bağlantı dizesi kimlik bilgileri gibi uygulamanızdaki gizli dizileri ortadan kaldırarak uygulamanızı daha güvenli hale getirir. Bu öğreticide, Azure SQL bağlamalarını kullanan bir Azure İşlevine yönetilen kimlik ekleyeceksiniz. TODo arka uç örneğinde SQL bağlamalarına sahip örnek bir Azure İşlevi projesi mevcuttur.

Bu öğreticiyi tamamladığınızda, Azure İşleviniz kullanıcı adı ve parola gerekmeden Azure SQL veritabanına bağlanır.

Atabileceğiniz adımlara genel bakış:

Microsoft Entra kullanıcısına veritabanı erişimi verme

İlk olarak bir Microsoft Entra kullanıcısını sunucunun Active Directory yöneticisi olarak atayarak SQL veritabanına Microsoft Entra kimlik doğrulamasını etkinleştirin. Bu kullanıcı, Azure aboneliğinize kaydolmak için kullandığınız Microsoft hesabından farklıdır. Oluşturduğunuz, içeri aktardığınız, eşitlediğiniz veya Microsoft Entra Id'ye davet ettiğiniz bir kullanıcı olmalıdır. İzin verilen Microsoft Entra kullanıcıları hakkında daha fazla bilgi için bkz . SQL veritabanındaKi Microsoft Entra özellikleri ve sınırlamaları.

Microsoft Entra kimlik doğrulamasını etkinleştirme işlemi Azure portalı, PowerShell veya Azure CLI aracılığıyla tamamlanabilir. Azure CLI yönergeleri aşağıdadır ve Azure portal ve PowerShell aracılığıyla bunu tamamlayan bilgiler Microsoft Entra kimlik doğrulamasıyla ilgili Azure SQL belgelerinde bulunabilir.

  1. Microsoft Entra kiracınızın henüz bir kullanıcısı yoksa, Microsoft Entra Id kullanarak kullanıcı ekleme veya silme adımlarını izleyerek bir kullanıcı oluşturun.

  2. ve kullanıcı-asıl-adını kullanarak Microsoft Entra kullanıcısının az ad user list nesne kimliğini bulun.<> Sonuç bir değişkene kaydedilir.

    Azure CLI 2.37.0 ve daha yeni sürümler için:

    azureaduser=$(az ad user list --filter "userPrincipalName eq '<user-principal-name>'" --query [].id --output tsv)
    

    Azure CLI'nın eski sürümleri için:

    azureaduser=$(az ad user list --filter "userPrincipalName eq '<user-principal-name>'" --query [].objectId --output tsv)
    

    İpucu

    Microsoft Entra Id içindeki tüm kullanıcı asıl adlarının listesini görmek için komutunu çalıştırın az ad user list --query [].userPrincipalName.

  3. Cloud Shell'de komutunu kullanarak az sql server ad-admin create bu Microsoft Entra kullanıcısını Active Directory yöneticisi olarak ekleyin. Aşağıdaki komutta sunucu adını sunucu adıyla> değiştirin <(sonek olmadan.database.windows.net).

    az sql server ad-admin create --resource-group myResourceGroup --server-name <server-name> --display-name ADMIN --object-id $azureaduser
    

Active Directory yöneticisi ekleme hakkında daha fazla bilgi için bkz . Sunucunuz için Microsoft Entra yöneticisi sağlama

Azure İşlevi'ne sistem tarafından atanan yönetilen kimliği etkinleştirme

Bu adımda Azure İşlevi'ne sistem tarafından atanan bir kimlik ekleyeceğiz. Sonraki adımlarda bu kimliğe SQL veritabanına erişim verilecektir.

Azure portalında sistem tarafından atanan yönetilen kimliği etkinleştirmek için:

  1. Portalda normalde yaptığınız gibi bir Azure İşlevi oluşturun. Portalda bu sayfaya gidin.
  2. Ekranı aşağı kaydırarak sol gezinti bölmesindeki Ayarlar grubuna gelin.
  3. Kimlik öğesini seçin.
  4. Sistem tarafından atanan sekmesinde Durum'a Açık olarak geçin. Kaydet'e tıklayın.

Durum'un Açık olarak ayarlandığını gösteren işlev uygulamasının ekran görüntüsü.

Azure CLI veya PowerShell aracılığıyla sistem tarafından atanan yönetilen kimliği etkinleştirme hakkında daha fazla bilgi için Azure İşlevleri ile yönetilen kimlikleri kullanma hakkında daha fazla bilgi edinin.

İpucu

Kullanıcı tarafından atanan yönetilen kimlik için Kullanıcı Tarafından Atanan sekmesine geçin. Ekle'ye tıklayın ve yönetilen kimlik seçin. Kullanıcı tarafından atanan yönetilen kimlik oluşturma hakkında daha fazla bilgi için bkz . Kullanıcı tarafından atanan yönetilen kimlikleri yönetme.

YÖNETILEN kimliğe SQL veritabanı erişimi verme

Bu adımda SQL veritabanına bir Microsoft Entra kullanıcı hesabıyla bağlanacak ve yönetilen kimliğe veritabanına erişim izni vereceğiz.

  1. Tercih ettiğiniz SQL aracını açın ve bir Microsoft Entra kullanıcı hesabıyla (yönetici olarak atadığımız Microsoft Entra kullanıcısı gibi) oturum açın. Bu, Cloud Shell'de SQLCMD komutuyla gerçekleştirilebilir.

    sqlcmd -S <server-name>.database.windows.net -d <db-name> -U <aad-user-name> -P "<aad-password>" -G -l 30
    
  2. İstediğiniz veritabanının SQL isteminde, işlevinize izin vermek için aşağıdaki komutları çalıştırın. Örneğin,

    CREATE USER [<identity-name>] FROM EXTERNAL PROVIDER;
    ALTER ROLE db_datareader ADD MEMBER [<identity-name>];
    ALTER ROLE db_datawriter ADD MEMBER [<identity-name>];
    GO
    

    <identity-name> , Microsoft Entra Id içindeki yönetilen kimliğin adıdır. Kimlik sistem tarafından atanmışsa, ad her zaman İşlev uygulamanızın adıyla aynıdır.

Azure İşlevi SQL bağlantı dizesi yapılandırma

Son adımda Azure İşlevi SQL bağlantı dizesi Microsoft Entra yönetilen kimlik kimlik doğrulamasını kullanacak şekilde yapılandıracağız.

bağlantı dizesi ayar adı, İşlevler kodumuzda SQL giriş bağlama özniteliklerinde ve ek açıklamalarında görüldüğü gibi "ConnectionStringSetting" bağlama özniteliği olarak tanımlanır.

İşlev Uygulamamızın uygulama ayarlarında SQL bağlantı dizesi ayarı şu biçimi izleyecek şekilde güncelleştirilmelidir:

Server=demo.database.windows.net; Authentication=Active Directory Managed Identity; Database=testdb

testdb , bağlandığımız veritabanının adıdır ve demo.database.windows.net bağlandığımız sunucunun adıdır.

İpucu

Kullanıcı tarafından atanan yönetilen kimlik için kullanın Server=demo.database.windows.net; Authentication=Active Directory Managed Identity; User Id=ClientIdOfManagedIdentity; Database=testdb.

Sonraki adımlar