Aracılığıyla paylaş


Azure Kimlik kitaplığını kullanarak Azure kaynaklarda Azure'da barındırılan JavaScript uygulamalarının kimliğini doğrulama

Bir uygulama Azure'da barındırıldığında (Azure App Service, Azure İşlevleri veya Azure Container Apps gibi bir hizmeti kullanarak), uygulamanızın Azure kaynaklarında güvenli bir şekilde kimliğini doğrulamak için yönetilen kimlik kullanabilirsiniz.

Yönetilen kimlik, uygulamanız için bir gizli dizi (bağlantı dizesi veya anahtar gibi) kullanmaya gerek kalmadan diğer Azure kaynaklarına bağlanmasına olanak sağlayan bir kimlik sağlar. Azure, dahili olarak uygulamanızın kimliğini tanır ve uygulamanın hangi kaynaklara erişim yetkisine sahip olduğunu bilir. Azure, uygulama için Microsoft Entra belirteçlerini otomatik olarak almak ve kimlik doğrulama gizli dizilerini yönetmenize (oluşturmanıza veya döndürmenize) gerek kalmadan diğer Azure kaynaklarına bağlanmasına olanak sağlamak için bu bilgileri kullanır.

Yönetilen kimlik türleri

İki tür yönetilen kimlik vardır:

  • Sistem tarafından atanan yönetilen kimlikler - tek Azure kaynağı
  • Kullanıcı tarafından atanan yönetilen kimlikler - birden çok Azure kaynağı

Bu makale, bir uygulama için sistem tarafından atanan yönetilen kimliği etkinleştirme ve kullanma adımlarını kapsar. Kullanıcı tarafından atanan yönetilen kimlik kullanmanız gerekiyorsa, kullanıcı tarafından atanan yönetilen kimliğin nasıl oluşturulacağını görmek için Kullanıcı tarafından atanan yönetilen kimlikleri yönetme makalesine bakın.

Tek kaynak için sistem tarafından atanan yönetilen kimlikler

Sistem tarafından atanan yönetilen kimlikler tarafından sağlanır ve doğrudan bir Azure kaynağına bağlanır. Bir Azure kaynağında yönetilen kimliği etkinleştirdiğinizde, bu kaynak için sistem tarafından atanan bir yönetilen kimlik alırsınız. Yönetilen kimlik, Azure kaynağının yaşam döngüsüne bağlıdır. Kaynak silindiğinde Azure sizin için kimliği otomatik olarak siler. Tek yapmanız gereken kodunuzu barındıran Azure kaynağı için yönetilen kimliği etkinleştirmek olduğundan, bu kimlik türü kullanılacak en kolay yönetilen kimlik türüdür.

Birden çok kaynak için kullanıcı tarafından atanan yönetilen kimlikler

Kullanıcı tarafından atanan yönetilen kimlik tek başına bir Azure kaynağıdır. Bu kimlik türü en sık, çözümünüzde aynı kimliği ve aynı izinleri paylaşması gereken birden çok Azure kaynağı üzerinde çalışan birden çok iş yükü olduğunda kullanılır. Örneğin, çözümünüzün birden çok App Service ve sanal makine örneğinde çalışan uygulamalar içerdiğini varsayalım. Tüm uygulamaların aynı Azure kaynakları kümesine erişmesi gerekir. Bu kaynaklar arasında kullanıcı tarafından atanan yönetilen kimlik oluşturmak ve kullanmak en iyi tasarım seçimidir.

1 - Barındırılan uygulamada sistem tarafından atanan yönetilen kimliği etkinleştirme

İlk adım, uygulamanızı barındıran Azure kaynağında yönetilen kimliği etkinleştirmektir. Örneğin, Azure App Service kullanarak bir Express.js uygulaması barındırlıyorsanız, bu App Service web uygulaması için yönetilen kimliği etkinleştirmeniz gerekir. Uygulamanızı barındırmak için vm kullanıyorsanız, VM'nizin yönetilen kimliği kullanmasını sağlarsınız.

Yönetilen kimliğin Azure portalı veya Azure CLI kullanarak Bir Azure kaynağı için kullanılmasını etkinleştirebilirsiniz.

Yönergeler Ekran görüntüsü
Azure portalında uygulama kodunuzu barındıran kaynağa gidin.

Örneğin, sayfanın üst kısmındaki arama kutusuna kaynağınızın adını yazabilir ve iletişim kutusunda seçerek kaynağınıza gidebilirsiniz.
Azure portalındaki üst arama çubuğunu kullanarak Azure'daki bir kaynağı bulma ve bu kaynağa gitme adımlarını gösteren ekran görüntüsü.
Kaynağınızın sayfasında sol taraftaki menüden Kimlik menü öğesini seçin.

Yönetilen kimliği destekleyebilecek tüm Azure kaynakları, menünün düzeni biraz farklılık gösterse bile bir Kimlik menü öğesine sahip olur.
Azure kaynağının sol tarafındaki menüde Kimlik menü öğesinin konumunu gösteren ekran görüntüsü.
Kimlik sayfasında:
  1. Durum kaydırıcısını Açık olarak değiştirin.
  2. Kaydet'i seçin.
Bir onay iletişim kutusu, hizmetiniz için yönetilen kimliği etkinleştirmek istediğinizi doğrular. Azure kaynağı için yönetilen kimliği etkinleştirmek için Evet yanıtını verin.
Kaynağın Kimlik sayfasında bir Azure kaynağı için yönetilen kimliğin nasıl etkinleştirildiğini gösteren ekran görüntüsü.

2 - Yönetilen kimliğe rol atama

Ardından, uygulamanızın hangi rollere (izinlere) ihtiyacı olduğunu belirlemeniz ve yönetilen kimliği Azure'daki bu rollere atamanız gerekir. Yönetilen kimliğe kaynak, kaynak grubu veya abonelik kapsamında roller atanabilir. Bu örnekte, çoğu uygulama tüm Azure kaynaklarını tek bir kaynak grubunda gruplandırdığından kaynak grubu kapsamında rollerin nasıl atandığı gösterilmektedir.

Yönergeler Ekran görüntüsü
Azure portalının üst kısmındaki arama kutusunu kullanarak kaynak grubu adını arayarak uygulamanızın kaynak grubunu bulun.

İletişim kutusundaki Kaynak Grupları başlığının altındaki kaynak grubu adını seçerek kaynak grubunuza gidin.
Azure portalındaki üst arama çubuğunu kullanarak Azure'da bir kaynak grubunu bulma ve bu gruba gitme adımlarını gösteren ekran görüntüsü.
Kaynak grubunun sayfasında sol taraftaki menüden Erişim denetimi (IAM) öğesini seçin. Azure kaynak grubunun sol tarafındaki menüde Erişim denetimi (I A M) menü öğesinin konumunu gösteren ekran görüntüsü.
Erişim denetimi (IAM) sayfasında:
  1. Rol atamaları sekmesini seçin.
  2. Üst menüden + Ekle'yi seçin ve ardından açılan menüden Rol ataması ekle'yi seçin.
Rol atamaları sekmesine ve bir kaynak grubuna rol atamaları eklemek için kullanılan düğmenin konumunu gösteren ekran görüntüsü.
Rol ataması ekle sayfasında, kaynak grubu için atanabilecek tüm roller listelenir.
  1. Listeyi daha yönetilebilir bir boyuta filtrelemek için arama kutusunu kullanın. Bu örnekte Depolama Blobu rolleri için filtreleme gösterilmektedir.
  2. Atamak istediğiniz rolü seçin.
    Sonraki ekrana gitmek için İleri'yi seçin.
Kaynak grubuna eklenecek rol atamalarını filtrelemeyi ve seçmeyi gösteren ekran görüntüsü.
Sonraki Rol ataması ekle sayfası, rolü hangi kullanıcıya atayabileceğinizi belirtmenize olanak tanır.
  1. Erişim ata'nın altında Yönetilen kimlik'i seçin.
  2. Üyeler'in altında + Üyeleri seç'i seçin
Azure portalının sağ tarafında bir iletişim kutusu açılır.
Rol atamaları ekleme sayfasında rolü (izin) atamak istediğiniz kullanıcı türü olarak yönetilen kimliğin nasıl seçildiğini gösteren ekran görüntüsü.
Yönetilen kimlikleri seçin iletişim kutusunda:
  1. Yönetilen kimlik açılan listesi ve Seç metin kutusu, aboneliğinizdeki yönetilen kimliklerin listesini filtrelemek için kullanılabilir. Bu örnekte App Service seçilerek yalnızca App Service ile ilişkili yönetilen kimlikler görüntülenir.
  2. Uygulamanızı barındıran Azure kaynağının yönetilen kimliğini seçin.
Devam etmek için iletişim kutusunun alt kısmındaki Seç'i seçin.
Rolün atanacak yönetilen kimliği filtrelemek ve seçmek için yönetilen kimlikleri seç iletişim kutusunun nasıl kullanılacağını gösteren ekran görüntüsü.
Yönetilen kimlik, Rol ataması ekle ekranında seçili olarak gösterilir.

Son sayfaya gitmek için Gözden geçir + ata'yı seçin ve ardından işlemi tamamlamak için Gözden geçir + yeniden ata'yı seçin.
Bir kullanıcının rol atamasını sonlandırmak için Gözden Geçir + Ata düğmesini seçmesi gereken rol ataması son ekleme ekranının ekran görüntüsü.

3 - Uygulamanızda DefaultAzureCredential uygulama

DefaultAzureCredential, yönetilen kimliğin kullanıldığını otomatik olarak algılar ve yönetilen kimliği kullanarak diğer Azure kaynaklarında kimlik doğrulaması yapar. JavaScript kimlik doğrulaması için Azure Kimlik kitaplığına genel bakış makalesinde açıklandığı gibi, DefaultAzureCredential birden çok kimlik doğrulama yöntemini destekler ve çalışma zamanında kullanılan kimlik doğrulama yöntemini belirler. Bu şekilde uygulamanız, ortama özgü kod uygulamadan farklı ortamlarda farklı kimlik doğrulama yöntemleri kullanabilir.

İlk olarak uygulamanıza @azure/kimlik paketini ekleyin.

npm install @azure/identity

Ardından, uygulamanızda Azure SDK istemci nesnesi oluşturan tüm JavaScript kodları için şunları yapmak istiyorsunuz:

  1. sınıfını DefaultAzureCredential modülden içeri aktarın @azure/identity .
  2. Bir DefaultAzureCredential nesne oluşturun.
  3. DefaultAzureCredential Nesnesini Azure SDK istemci nesnesi oluşturucusna geçirin.

Aşağıdaki kod kesiminde bu adımlara bir örnek gösterilmiştir.

// connect-with-default-azure-credential.js
import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';
import 'dotenv/config'

const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
if (!accountName) throw Error('Azure Storage accountName not found');

const blobServiceClient = new BlobServiceClient(
  `https://${accountName}.blob.core.windows.net`,
  new DefaultAzureCredential()
);