Azure Kimlik kitaplığını kullanarak Azure hizmetlerinde JavaScript uygulamalarının kimliğini doğrulama
Bir uygulamanın Depolama, Key Vault veya Bilişsel Hizmetler gibi bir Azure kaynağına erişmesi gerektiğinde, uygulamanın Azure'da kimliği doğrulanmalıdır. Azure'a dağıtılan, şirket içinde dağıtılan veya yerel geliştirici iş istasyonunda geliştirme aşamasında olan tüm uygulamalar için bu durum geçerlidir. Bu makalede, JavaScript için Azure SDK'sını kullanırken Azure'da bir uygulamanın kimliğini doğrulamak için önerilen yaklaşımlar açıklanmaktadır.
Önerilen uygulama kimlik doğrulaması yaklaşımı
Önerilen yaklaşım, uygulamalarınızın Azure kaynaklarında kimlik doğrulaması yaparken bağlantı dizeleri veya anahtarlar yerine
Bir uygulamanın Azure kaynaklarında kimlik doğrulaması yapmak için kullanması gereken belirteç tabanlı kimlik doğrulaması türü, uygulamanın çalıştığı yere bağlıdır ve aşağıdaki diyagramda gösterilmiştir.
Çevre | Kimlik doğrulama |
---|---|
Yerel | Bir geliştirici yerel geliştirme sırasında bir uygulama çalıştırıyorsa - Uygulama, yerel geliştirme için bir uygulama hizmet sorumlusu kullanarak veya geliştiricinin Azure kimlik bilgilerini kullanarak Azure'da kimlik doğrulaması yapabilir. Bu seçeneklerin her biri, yerel geliştirmesırasında kimlik doğrulaması |
Azure | Bir uygulama Azure'da barındırıldığında - Uygulamanın yönetilen kimlik kullanarak Azure kaynaklarında kimlik doğrulaması yapması gerekir. Bu seçenek,sunucu ortamlarında kimlik doğrulaması |
şirket içi | Bir uygulama şirket içinde barındırıldığında ve dağıtıldığında - Uygulamanın bir uygulama hizmet sorumlusu kullanarak Azure kaynaklarında kimlik doğrulaması yapması gerekir. Bu seçenek,sunucu ortamlarında kimlik doğrulaması |
Belirteç tabanlı kimlik doğrulamasının avantajları
Azure için uygulama oluştururken, gizli diziler (bağlantı dizeleri veya anahtarlar) yerine belirteç tabanlı kimlik doğrulaması şiddetle önerilir. Belirteç tabanlı kimlik doğrulaması, DefaultAzureCredentialile sağlanır.
Bağlantı dizelerinin kullanımı, üretim veya hassas verilere erişmeyen ilk kavram kanıtı uygulamaları veya geliştirme prototipleriyle sınırlandırılmalıdır. Aksi takdirde, Azure kaynaklarında kimlik doğrulaması yapılırken Azure Kimlik kitaplığında bulunan belirteç tabanlı kimlik doğrulama sınıfları her zaman tercih edilmelidir.
Aşağıdaki kitaplığı kullanın:
DefaultAzureCredential
Azure Identity kitaplığı tarafından sağlanan DefaultAzureCredential sınıfı, uygulamaların çalıştırıldığı ortama bağlı olarak farklı kimlik doğrulama yöntemleri kullanmasına olanak tanır. Bu davranış, uygulamaların yerel geliştirmeden test ortamlarına, kod değişikliği olmadan üretime yükseltilmesini sağlar. Her ortam için uygun kimlik doğrulama yöntemini yapılandırdığınızda DefaultAzureCredential
bu kimlik doğrulama yöntemini otomatik olarak algılar ve kullanır.
DefaultAzureCredential
kullanımı, farklı ortamlarda farklı kimlik doğrulama yöntemlerini kullanmak için koşullu mantığı veya özellik bayraklarını el ile kodlamak yerine tercih edilmelidir.
DefaultAzureCredential
kullanımıyla ilgili ayrıntılar bölümünde ele alınmıştır. DefaultAzureCredential
ise bir uygulamada nasıl kullanılacağıbölümünde açıklanmıştır.
Sunucu ortamlarında kimlik doğrulaması
Sunucu ortamında barındırırken, her uygulamaya ortam başına benzersiz bir
Yerel geliştirme sırasında kimlik doğrulaması
Yerel geliştirme sırasında bir uygulama geliştiricinin iş istasyonunda çalıştırıldığında, yerel ortamın uygulama tarafından kullanılan tüm Azure hizmetlerinde kimlik doğrulaması yapmaya devam etmesi gerekir.
Uygulamada DefaultAzureCredential kullanma
DefaultAzureCredential, Microsoft Entra ID'de kimlik doğrulaması için belirlenmiş sıralı bir mekanizma dizisidir. Her kimlik doğrulama mekanizması, DefaultAzureCredential
ilk kimlik bilgilerini kullanarak kimlik doğrulamayı dener. 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. Bu şekilde, uygulamanız ortama özgü kod yazmadan farklı ortamlarda farklı kimlik bilgilerini kullanabilir.
DefaultAzureCredentialkullanmak için @azure/identity paketini uygulamanıza ekleyin.
npm install @azure/identity
Daha sonra aşağıdaki kod örneği, bir DefaultAzureCredential
nesnesinin örneğini oluşturma ve bunu Azure SDK hizmeti istemci sınıfıyla (bu örnekte Azure Blob Depolama'ya erişmek için kullanılan bir BlobServiceClient
) nasıl kullanacağınız gösterilmektedir.
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()
);
DefaultAzureCredential
, uygulama için yapılandırılan kimlik doğrulama mekanizmasını otomatik olarak algılar ve uygulamanın Azure'da kimliğini doğrulamak için gerekli belirteçleri alır. Bir uygulama birden fazla SDK istemcisi kullanıyorsa, her SDK istemci nesnesiyle aynı kimlik bilgisi nesnesi kullanılabilir.