Azure Identity eklentisi aracılı authentication için

Bu paket, JavaScript için Azure Identity kütüphanesine (@azure/identity) bir eklenti sağlar ve WAM gibi bir kimlik doğrulama aracı kullanılmasını sağlar.

Kimlik doğrulama aracısı, kullanıcının makinesinde çalışan ve bağlı hesaplar için kimlik doğrulama el sıkışmalarını ve belirteç bakımını yöneten bir uygulamadır. Şu anda yalnızca Windows authentication broker Web Account Manager (WAM) desteklenmektedir.

Kaynak kodu | Samples | API referans dokümantasyonu | Microsoft Entra ID dokümantasyon

Başlarken

import { useIdentityPlugin } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

Önkoşullar

Not: ile yerel geliştirme @azure/identity-brokeriçin ek araçlar yüklemeniz gerekebilir. node-gyp , sistem API'lerine erişmek için eklentileri derlemek için kullanılır. Kurulum gereksinimleri node-gyp README'de listelenmiştir.

Linux'ta kitaplık kullanır libsecret , bu nedenle yüklemeniz gerekebilir. Dağıtımınıza bağlı olarak, aşağıdaki komutu çalıştırmanız gerekecektir:

  • Debian/Ubuntu: sudo apt-get install libsecret-1-dev
  • Red Hat tabanlı: sudo yum install libsecret-devel
  • Arch Linux: sudo pacman -S libsecret

Uyarı

Aracılı kimlik doğrulama şu anda yalnızca Windows ve Linux'ta desteklenmektedir. macOS henüz desteklenmiyor.

Paketi yükleme

Bu paket, JavaScript için Azure Identity ile kullanılmak üzere tasarlanmıştır. @azure/identitykullanarak hem npm hem de bu paketi yükleyin:

npm install --save @azure/identity
npm install --save @azure/identity-broker

Desteklenen ortamlar

Azure JavaScript için Identity eklentileri, v20'den itibaren stabil (çift numaralı) Node.js sürümlerini destekler. Eklentiler diğer Node.js sürümlerde çalıştırılabilir ancak destek garanti değildir. @azure/identity-broker tarayıcı ortamlarını desteklemez.

Temel kavramlar

Eğer veya Microsoft Entra ID kullanıyorsanız, önce ile Microsoft Entra ID okumanızı öneririz. Bu belge, platformu daha derinlemesine anlamanızı ve Azure hesabınızı nasıl doğru şekilde yapılandırmanızı sağlayacak.

Üst pencere tutamaçları

InteractiveBrowserCredentialaracılığıyla aracıyla kimlik doğrulaması yaparken, kimlik doğrulama iletişim kutusunun istekte bulunan pencere üzerinde doğru gösterildiğinden emin olmak için bir üst pencere tutamacı gerekir. Cihazlardaki grafik kullanıcı arabirimleri bağlamında pencere tutamacı, işletim sisteminin her pencereye atamış olduğu benzersiz bir tanımlayıcıdır. Windows işletim sistemi için bu tutuk, belirli bir pencereye referans olarak hizmet veren tam sayı değeridir.

Microsoft hesabı (MSA) geçişi

Microsoft hesapları (MSA), kullanıcıların Microsoft hizmetleri'e erişmek için oluşturduğu kişisel hesaplardır. MSA geçişi, kullanıcıların normalde MSA oturum açma bilgilerini kabul etmeyen kaynaklara belirteçler almasına olanak tanıyan eski bir yapılandırmadır. Bu özellik yalnızca birinci taraf uygulamalar tarafından kullanılabilir. MSA geçişini kullanmak üzere yapılandırılmış bir uygulamayla kimlik doğrulaması kullanan kullanıcılar, bu kişisel hesapların WAM tarafından listelenebilmesi için legacyEnableMsaPassthroughtrue içinde InteractiveBrowserCredentialNodeOptions.brokerOptions olarak ayarlayabilir.

Yeniden yönlendirme URI'leri

Microsoft Entra uygulamaları, kullanıcı giriş yaptıktan sonra kimlik doğrulama yanıtının nereye gönderileceğini belirlemek için yönlendirme URI'lerine dayanır. WAM aracılığıyla aracılı kimlik doğrulamasını etkinleştirmek için aşağıdaki desenle eşleşen bir yeniden yönlendirme URI'sinin uygulamaya kaydedilmesi gerekir:

ms-appx-web://Microsoft.AAD.BrokerPlugin/{client_id}

Azure Identity eklentileri

@azure/identity sürüm 2.0.0'dan itibaren JavaScript için Kimlik istemci kitaplığı bir eklenti API'sini içerir. Bu paket (@azure/identity-broker), bağımsız değişken olarak geçirmeniz gereken eklenti nesnesini useIdentityPlugin paketinden üst düzey @azure/identity işlevine aktarır. Programınızda yerel aracıyı aşağıdaki gibi etkinleştirin:

import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

const credential = new InteractiveBrowserCredential({
  brokerOptions: {
    enabled: true,
    parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
  },
});

useIdentityPluginçağrıldıktan sonra yerel aracı eklentisi @azure/identity paketine kaydedilir ve WAM aracı kimlik doğrulamasını destekleyen InteractiveBrowserCredential kullanılabilir. Bu kimlik bilgisi oluşturucu seçeneklerinde brokerOptions.

Notlar: @azure/identity sürüm 4.11.0-beta.1 itibarıyla DefaultAzureCredential, Windows Web Hesap Yöneticisi üzerinden giriş desteği sağlar. Programınızda yerel aracıyı aşağıdaki gibi etkinleştirin:

import { useIdentityPlugin, DefaultAzureCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

const credential = new DefaultAzureCredential();

Örnekler

Eklenti kaydedildikten sonra, kimlik bilgisi oluşturucusunun brokerOptions olarak ayarlanmış bir enabled özelliğine sahip true geçirerek WAM aracı kimlik doğrulamasını etkinleştirebilirsiniz. Aşağıdaki örnekte, InteractiveBrowserCredentialkullanırız.

import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

const credential = new InteractiveBrowserCredential({
  brokerOptions: {
    enabled: true,
    parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
  },
});

// We'll use the Microsoft Graph scope as an example
const scope = "https://graph.microsoft.com/.default";

// Print out part of the access token
console.log((await credential.getToken(scope)).token.substring(0, 10), "...");

Bir pencere kolunu almak için Electron uygulamasının tam bir örneği için this sample adresine bakınız.

Oturum açmak için varsayılan hesabı kullanma

useDefaultBrokerAccount seçeneği trueolarak ayarlandığında, kimlik bilgisi varsayılan aracı hesabını sessizce kullanmayı dener. Varsayılan hesabın kullanılması başarısız olursa, kimlik bilgisi etkileşimli kimlik doğrulamasına geri döner.

import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

const credential = new InteractiveBrowserCredential({
  brokerOptions: {
    enabled: true,
    useDefaultBrokerAccount: true,
    parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
  },
});

// We'll use the Microsoft Graph scope as an example
const scope = "https://graph.microsoft.com/.default";

// Print out part of the access token
console.log((await credential.getToken(scope)).token.substr(0, 10), "...");

Sorun giderme

Çeşitli arıza senaryolarının nasıl teşhis edileceğine dair detaylar için Azure Identity troubleshooting guide sayfasına bakınız.

Günlük tutmak

Günlüğe kaydetmeyi etkinleştirmek, hatalarla ilgili yararlı bilgilerin ortaya çıkmasına yardımcı olabilir. HTTP isteklerinin ve yanıtlarının günlüğünü görmek için AZURE_LOG_LEVEL ortam değişkenini infoolarak ayarlayın. Alternatif olarak, setLogLevel@azure/logger çağrılarak günlükler çalışma zamanında etkinleştirilebilir:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Sonraki adımlar

Geri bildirim sağlayın

Hata ile karşılaşırsanız veya önerileriniz varsa, lütfen bir sorunu açın.

Katkıda

Bu kütüphaneye katkıda bulunmak isterseniz, kodun nasıl oluşturulacağı ve test edileceği hakkında daha fazla bilgi edinmek için katkı rehberi adresine bakabilirsiniz.