Şirket içi JavaScript uygulamalarından Azure kaynaklarında kimlik doğrulaması
Azure dışında çalışan uygulamalar (örneğin şirket içi veya üçüncü taraf veri merkezinde), Azure kaynaklarına erişirken Azure'da kimlik doğrulaması yapmak için bir uygulama hizmet sorumlusu kullanmalıdır. Uygulama hizmeti sorumlusu nesneleri, Azure'da uygulama kayıt işlemi kullanılarak oluşturulur. Uygulama hizmet sorumlusu oluşturulduğunda, uygulamanız için bir istemci kimliği ve istemci gizli dizisi oluşturulur. JavaScript için Azure SDK'sının uygulamanızın çalışma zamanında Azure'da kimliğini doğrulamak için ortam değişkenlerini kullanması için istemci kimliğini, istemci gizli dizisini ve kiracı kimliğinizi ortam değişkenlerinde depolarsınız.
Uygulamanın çalıştığı her ortam (test, aşama, üretim gibi) için farklı bir uygulama kaydı oluşturulmalıdır. Bu, her hizmet sorumlusu için ortama özgü kaynak izinlerinin yapılandırılmasına olanak tanır ve bir ortama dağıtılan bir uygulamanın başka bir ortamın parçası olan Azure kaynaklarıyla konuşmadığından emin olun.
1 - Uygulamayı Azure'a kaydetme
Bir uygulama Azure portalı veya Azure CLI kullanılarak Azure'a kaydedilebilir.
Azure portalında oturum açın ve şu adımları izleyin.
2 - Uygulama hizmet sorumlusuna rol atama
Ardından, uygulamanızın hangi kaynaklar üzerinde hangi rollere (izinlere) ihtiyacı olduğunu belirlemeniz ve bu rolleri uygulamanıza atamanız gerekir. Rollere kaynak, kaynak grubu veya abonelik kapsamında bir rol atanabilir. Bu örnekte, çoğu uygulama tüm Azure kaynaklarını tek bir kaynak grubunda gruplandırdığından kaynak grubu kapsamında hizmet sorumlusu için rollerin nasıl atanacağı gösterilir.
3 - Uygulama için ortam değişkenlerini yapılandırma
Uygulama hizmeti sorumlusu kimlik bilgilerini çalışma zamanında uygulamanızın AZURE_CLIENT_ID
kullanımına açmak için JavaScript uygulamanızı çalıştıran işlem için , AZURE_TENANT_ID
ve AZURE_CLIENT_SECRET
ortam değişkenlerini ayarlamanız gerekir. DefaultAzureCredential
nesnesi, bu ortam değişkenlerinde hizmet sorumlusu bilgilerini arar.
AZURE_CLIENT_ID=<value>
AZURE_TENANT_ID=<value>
AZURE_CLIENT_SECRET=<value>
4 - Uygulamada DefaultAzureCredential uygulama
Azure SDK istemci nesnelerinin kimliğini Azure'da doğrulamak için uygulamanızın DefaultAzureCredential
@azure/kimlik paketindeki sınıfı kullanması gerekir.
İlk olarak uygulamanıza @azure/kimlik paketini ekleyin.
npm install @azure/identity
Ardından, uygulamanızda bir Azure SDK istemci nesnesi oluşturan tüm JavaScript kodları için şunları yapmak istersiniz:
- sınıfını
DefaultAzureCredential
modülden içeri aktarın@azure/identity
. - Bir
DefaultAzureCredential
nesne oluşturun. DefaultAzureCredential
Nesnesini Azure SDK istemci nesnesi oluşturucusna geçirin.
Bunun bir örneği aşağıdaki kod kesiminde 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()
);
Yukarıdaki kod nesnesinin örneğini oluşturduğundaDefaultAzureCredential
, DefaultAzureCredential
ile Azure'a bağlanacak uygulama hizmeti sorumlusu bilgileri için , , AZURE_CLIENT_ID
ve AZURE_CLIENT_SECRET
ortam değişkenlerini AZURE_SUBSCRIPTION_ID
AZURE_TENANT_ID
okur.