Aracılığıyla paylaş


JavaScript için Azure Identity istemci kitaplığındaki kimlik bilgileri zincirleri

Azure Identity istemci kitaplığı, Azure Core kitaplığının TokenCredential arabirimini uygulayan genel sınıflar olan kimlik bilgileri sağlar. Kimlik bilgisi, Microsoft Entra Id'den erişim belirteci almak için ayrı bir kimlik doğrulama akışını temsil eder. Bu kimlik bilgileri, denenecek sıralı bir kimlik doğrulama mekanizması dizisi oluşturmak için ayrı ayrı seçilebilir veya zincirlenebilir.

  • Bireysel kimlik bilgileri hız ve kesinlik sağlar. Başarısız olursa kimlik bilgilerinin doğrulanmamış olduğunu bilirsiniz.
  • Zincirler geri dönüşler sağlar. Kimlik doğrulama başarısız olduğunda, zincirdeki bir sonraki kimlik bilgisi denenir.

Kimlik doğrulama akışlarınızı tasarlama

Azure SDK istemci kitaplıklarını kullandığınızda, ilk adım Azure'da kimlik doğrulaması yapmaktır. Geliştirme ekibinde kullanılan araçlar ve IDE'ler, test ve CI/CD gibi otomasyon iş akışları ve Azure App Service gibi barındırma platformları gibi dikkate alınacak kimlik doğrulaması seçenekleri vardır.

Kimlik doğrulama akışınız için aşağıdaki yaygın ilerlemeler arasından seçim yapın:

  • Azure'ye kimlik doğrulamak için geliştiricileri çeşitli IDE'ler ve CLI'ler kullanan ekipleri için 'ı kullanın. Bu, en yüksek esnekliği sağlar. Bu esneklik, performanstan ödün vererek kimlik bilgilerini zincirdeki bir tanesi başarıya ulaşana kadar doğrulama süreci ile sağlanır.

    • Kimlik bilgisinden kimlik bilgilerine geri dönüş, algılanan ortama göre sizin adınıza seçilir.
    • Hangi kimlik bilgilerinin seçildiğini belirlemek içinhata ayıklamayı açın.
  • katı ve kapsamlı bir araç seçimine sahip ekipleri için kullanın. Örneğin, hepsi içinde kimlik doğrulaması yapar ve aynı IDE veya CLI'yı kullanır. Bu, ekibin tam kimlik bilgilerini ve hala daha düşük performans maliyetiyle esneklik sağlayan sırayı seçmesine olanak tanır.

    • Kimlik bilgilerinden kimlik bilgilerine yedek yolu, ortamdan bağımsız olarak seçersiniz.
    • Hangi kimlik bilgisinin seçildiğini belirlemek için hata ayıklamayı açın.
  • Tüm ortamlarda belirli kimlik bilgilerine sahip ekipler için if/else gibi bir denetim akışı deyimi, her ortamda hangi kimlik bilgilerinin seçildiğini öğrenmenizi sağlar.

    • Başka bir kimlik bilgisi türüne yedek yoktur.
    • Hangi kimlik bilgisinin seçildiğini belirlemek için hata ayıklamanız gerekmez çünkü bu zaten belirtilmiştir.

Zincirlenmiş kimlik bilgileri nasıl çalışır?

Çalışma zamanında, kimlik bilgisi zinciri dizinin ilk kimlik bilgilerini kullanarak kimlik doğrulaması yapmaya çalışır. Bu kimlik bilgisi bir erişim belirteci alamazsa, bir erişim belirteci başarıyla alınana kadar dizideki bir sonraki kimlik bilgisi denenir ve bu şekilde devam edilir. Aşağıdaki sıralı diyagramda bu davranış gösterilmektedir:

Azure Kimlik bilgileri sıra akışını gösteren Diyagramı.

Esneklik için DefaultAzureCredential kullanma

DefaultAzureCredential, varsayılan olarak yapılandırılmış ve belirli bir düzeni izleyen bir kimlik bilgileri zinciridir. En yaygın kimlik doğrulama akışları ve geliştirici araçlarının yanı sıra birçok ortamı destekleyecek şekilde tasarlanmıştır. Grafik biçiminde, temel zincir şöyle görünür:

DefaultAzureCredential kimlik doğrulama akışını gösteren Diyagramı.

DefaultAzureCredential kimlik bilgilerini deneme sırası aşağıdadır.

Sipariş Kimlik Açıklama
1 Ortam Uygulama hizmet sorumlusunun (uygulama kullanıcısı) uygulama için yapılandırılıp yapılandırılmadığını belirlemek için ortam değişkenlerinden oluşan bir koleksiyonu okur. Bu durumda, DefaultAzureCredential uygulamanın Kimliğini Azure'da doğrulamak için bu değerleri kullanır. Bu yöntem genellikle sunucu ortamlarında kullanılır, ancak yerel olarak geliştirirken de kullanılabilir.
2 İş Yükü Kimliği Uygulama İş Yükü Kimliği etkinleştirilmiş bir Azure konağına dağıtıldıysa bu hesabın kimliğini doğrula.
3 Yönetilen Kimlik Uygulama Yönetilen Kimlik etkinleştirilmiş bir Azure konağına dağıtılırsa, bu Yönetilen Kimliği kullanarak uygulamanın kimliğini Azure'da doğrularsınız.
4 Azure CLI Geliştirici Azure CLI'nın az login komutunu kullanarak Azure'da kimlik doğrulaması yaptıysa, aynı hesabı kullanarak uygulamanın kimliğini Azure'da doğrular.
5 Azure PowerShell Geliştirici Azure PowerShell'in Connect-AzAccount cmdlet'ini kullanarak Azure'da kimlik doğrulaması yaptıysa, aynı hesabı kullanarak uygulamanın kimliğini Azure'da doğrulayın.
6 Azure Geliştirici CLI Geliştirici, Azure Geliştirici CLI'sının azd auth login komutunu kullanarak Azure'da kimlik doğrulaması yaptıysa, bu hesapla kimlik doğrulamasından geçin.

En basit haliyle, DefaultAzureCredential parametresiz sürümünü aşağıdaki gibi kullanabilirsiniz:

import { DefaultAzureCredential } from "@azure/identity";
import { BlobServiceClient } from "@azure/storage-blob";

// Acquire a credential object
const credential = new DefaultAzureCredential();

const blobServiceClient = new BlobServiceClient(
    "https://<my_account_name>.blob.core.windows.net",
    credential
);

Kimlik bilgileri ortamda evrenseldir

belirli ortam değişkenlerinin varlığını denetler. Birinin konak makinede sistem düzeyinde bu ortam değişkenlerini eklemesi veya değiştirmesi mümkündür. Bu değişiklikler genel olarak uygulanır ve bu nedenle bu makinede çalışan herhangi bir uygulamada çalışma zamanında DefaultAzureCredential davranışını değiştirir.

Ayrıntı düzeyi için ChainedTokenCredential kullanma

ChainedTokenCredential, uygulamanızın gereksinimlerine uygun kimlik bilgileri eklediğiniz boş bir zincirdir. Örneğin, aşağıdaki örnek bir ManagedIdentityCredential örneği ve ardından bir AzureCliCredential örneği ekler.

import { 
    ChainedTokenCredential, 
    ManagedIdentityCredential, 
    AzureCliCredential 
} from "@azure/identity";

const credential = new ChainedTokenCredential(
    new ManagedIdentityCredential({ clientId: "<YOUR_CLIENT_ID>" }),
    new AzureCliCredential()
);

Yukarıdaki kod örneği, iki kimlik bilgisi içeren uyarlanmış bir kimlik bilgisi zinciri oluşturur. İlk olarak ManagedIdentityCredential kullanıcı tarafından atanan yönetilen kimlik değişkeni denendi, ardından gerekirse AzureCliCredential. Grafik biçiminde zincir şöyle görünür:

Azure CLI ve yönetilen kimlik için Azure Kimlik doğrulama zincirini gösteren Diyagramı.

Bahşiş

İyileştirilmiş performans için üretim ortamınız için kimlik bilgileri sıralamasını optimize edin. Yerel geliştirme ortamında kullanılmak üzere tasarlanan kimlik bilgileri en son eklenmelidir.

Zincirlenmiş kimlik bilgisinde hata ayıklama

Kimlik bilgisi zincirinde hata ayıklamak için Azure SDK günlüğünüetkinleştirin.

Diğer kaynaklar