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.
Microsoft Authentication Library (MSAL) Düğümü, yerel belirteç aracısından belirteç alma işlemini destekler. Yerel aracı kullanıldığında, yenileme belirteçleri alındıkları cihaza bağlıdır ve msal-node veya uygulama tarafından erişilemez. Bu, tek başına msal-node ile elde edilemeyen daha yüksek bir güvenlik düzeyi sağlar.
Bu makalede, Windows aracısının nasıl yapılandırılacağı, sahiplik kanıtının nasıl ayarlanacağı ve aracıya özgü davranışın nasıl anlaşılacağı açıklanmaktadır.
Aracı desteği aşağıdaki platformlarda kullanılabilir:
| Platform | Broker | Belgeler |
|---|---|---|
| Windows | Web Hesabı Yöneticisi (WAM) | Windows aracısı (bu makale) |
| macOS | Microsoft Kurumsal SSO eklentisi (Şirket Portalı) | macOS aracısı |
| Linux | Linux için Microsoft Tek Oturum Açma | Linux aracısı |
Broker nedir?
Kimlik doğrulama aracısı, kullanıcının cihazında çalışan ve bağlı hesaplar için kimlik doğrulama alışverişlerini ve belirteçlerin yaşam döngüsünü yöneten bir bileşendir. Windows bu rol Web Hesabı Yöneticisi (WAM) tarafından gerçekleştirilir. Başlıca avantajlar şunlardır:
- Gelişmiş güvenlik. Güvenlik iyileştirmeleri, uygulama kodu değişikliklerine gerek kalmadan işletim sistemi veya aracı güncelleştirmeleri aracılığıyla sunulur. Yenileme belirteçleri cihaza bağlıdır ve sızdırmaya karşı korunur.
- Özellik desteği. Ek altyapı kodu olmadan Windows Hello, Microsoft Entra Koşullu Erişim ilkeleri ve Fast Identity Online (FIDO) güvenlik anahtarları gibi zengin işletim sistemi özelliklerine erişim.
- Sistem tümleştirmesi. Uygulamalar yerleşik hesap seçiciye takarak kullanıcıların kimlik bilgilerini yeniden girmek yerine mevcut bir hesabı hızla seçmesini sağlar.
- Belirteç koruması. Aracı, yenileme belirteçlerinin cihaza bağlı olmasını güvence altına alır ve uygulamaların sahiplik kanıtına dayalı erişim belirteçleri edinmesini sağlar.
Desteklenen mimariler
- Windows: x64, x86, ARM64
Prerequisites
- Node.js 18 veya üzeri
-
@azure/msal-node-extensionsöğesini bağımlılık olarak yükleyin - Uygulama kaydınıza aracının yeniden yönlendirme URI'sini kaydedin. Gerekli değer için Redirect URI'ye bakın.
Yeniden yönlendirme URI'si
Azure portalındaki Mobil ve masaüstü uygulamaları platformu altında aşağıdaki yeniden yönlendirme URI'sini kaydedin:
ms-appx-web://Microsoft.AAD.BrokerPlugin/<your-client-id>
<your-client-id> öğesini uygulamanızın istemci kimliğiyle değiştirin.
Özelliği etkinleştirme
Belirteç aracılığını etkinleştirmek yalnızca bir yapılandırma parametresi gerektirir. Aracı yapılandırmasına bir NativeBrokerPlugin örneği iletin:
import { PublicClientApplication, Configuration } from "@azure/msal-node";
import { NativeBrokerPlugin } from "@azure/msal-node-extensions";
const msalConfig: Configuration = {
auth: {
clientId: "your-client-id",
},
broker: {
nativeBrokerPlugin: new NativeBrokerPlugin(),
},
};
const pca = new PublicClientApplication(msalConfig);
Note
msal-node bir hata durumunda aracısız akışa geri dönmez . Beklenmeyen hataları önlemek için yalnızca aracı akışını destekleyen ortamlarda etkinleştirin.
Çalışan bir örnek auth-code-cli-brokered-app örneğinde bulunabilir.
Pencere üst öğesi oluşturma
Kimlik doğrulama istemlerinin çağrı yapan uygulama üzerinde görüntülenmesi ve daha fazla etkileşimin engellenmesi için uygulamanın pencere tutamacını acquireTokenInteractive API'ye sağlayın.
CLI uygulamaları için, arka planda pencere tanıtıcısını bulmaya yönelik mümkün olan en iyi girişimde bulunulur, ancak bu güvenilir değildir.
Electron kullanıyorsanız API'yi getNativeWindowHandle kullanın ve sonucu içine geçirin acquireTokenInteractive:
import { BrowserWindow } from "electron";
const win = new BrowserWindow();
const pca = new PublicClientApplication(msalConfig);
pca.acquireTokenInteractive({
windowHandle: win.getNativeWindowHandle(),
});
Sahiplik kanıtı
Belirteçler yerel aracı üzerinden alınırken erişim belirteci sahiplik kanıtı (PoP) desteklenir. PoP belirteci istemek için, acquireTokenInteractive veya acquireTokenSilent öğesine sağlanan istek nesnesine aşağıdaki özellikleri ekleyin:
AT PoP istek parametreleri
| Adı | Description | Zorunlu |
|---|---|---|
authenticationScheme |
MSAL'nin bir Bearer veya PoP belirteci alıp almayacağını gösterir. Varsayılan Bearer değeridir. |
Gerekli |
resourceRequestMethod |
İmzalı belirteci (GET, POST, PUT, vb.) kullanacak isteğin HTTP yönteminin tamamı büyük harflerle yazılan adı |
Gerekli |
resourceRequestUri |
Erişim belirtecinin verildiği korumalı kaynağın URL'si | Gerekli |
shrNonce |
Sunucu tarafından oluşturulan, imzalı, Base64URL olarak kodlanmış bir zaman damgası dizesi. Bu nonce, PoP belirtecinin önceden oluşturulmasını mümkün kılmayı amaçlayan saat kayması ve zaman yolculuğu saldırılarını azaltmak için kullanılır. | Opsiyonel |
Kullanım örneği
Bu örnek, kimlik doğrulama şemasını ve imzalı HTTP isteği özelliklerini ayarlayarak sahiplik kanıtı belirteci istemektedir:
import { PublicClientApplication, Configuration, AuthenticationScheme } from "@azure/msal-node";
import { NativeBrokerPlugin } from "@azure/msal-node-extensions";
const msalConfig: Configuration = {
auth: {
clientId: "your-client-id",
},
broker: {
nativeBrokerPlugin: new NativeBrokerPlugin(),
},
};
const pca = new PublicClientApplication(msalConfig);
const popTokenRequest = {
scopes: ["User.Read"],
authenticationScheme: AuthenticationScheme.POP,
resourceRequestMethod: "POST",
resourceRequestUri: "YOUR_RESOURCE_ENDPOINT",
shrNonce: "NONCE_ACQUIRED_FROM_RESOURCE_SERVER",
};
pca.acquireTokenInteractive(popTokenRequest);
pca.acquireTokenSilent(popTokenRequest);
Note
Erişim belirteci sahiplik kanıtı yalnızca yerel aracı akışı aracılığıyla desteklenir ve aracısız akışta kullanılamaz.
Windows aracısını kullanırkenki farklılıklar
Yerel aracı aracılığıyla belirteçleri alırken farklı davranabilecek birkaç şey vardır:
-
forceRefreshÇağrılar içinacquireTokenSilentparametresi desteklenmez. Bu bayrağın ne olarak ayarlandığından bağımsız olarak aracıdan önbelleğe alınmış bir belirteç alabilirsiniz. - Aracı kullanıcıdan etkileşim istemesi gerekiyorsa bir sistem istemi açılır. Kimlik doğrulaması bir tarayıcı penceresinde gerçekleşmediğinden bu, kullanıcı deneyimini (UX) değiştirir.
- Erişim belirteci sahiplik kanıtı, aracı tarafından desteklenmektedir ancak aracısız akış tarafından desteklenmemektedir.