Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
- Bir Azure abonelik.
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
Ü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.
Azure SDK for JavaScript