MSAL Düğümü hakkında sık sorulan sorular

General

MSAL Düğümü ne zaman kullanılır?

MSAL Düğümü, genel/gizli uygulamalar için sunucu tabanlı kimlik doğrulamasını destekler. Bu, kimlik doğrulaması gerektiren sunucu tabanlı kimlik doğrulama senaryoları/Web API'leri için daha geçerlidir. Desteklenen senaryoların tam listesi burada bulunabilir ve desteklenen akışlar burada listelenir

ADAL düğümünün durumu nedir? Geçiş kılavuzu kullanılabilir mi?

ADAL Node şu anda bakım aşamasındadır ve tüm kullanıcılara MSAL Node'a geçmelerini öneriyoruz. MSAL Düğümü, ADAL düğümünü tamamen değiştirmek için tasarlanmıştır. ADAL'dan MSAL'ye geçiş yapmak isteyenler için geçişe yardımcı olacak bir Geçiş Belgesi sağladık. Bu işlem eski işlevlerin tamamen elden geçirilmesinden sonra tüm uygulamaların sorunsuz geçişe sahip olmadığını lütfen unutmayın.

Hangi hizmetler desteklenir?

MSAL Node, Microsoft Entra ID, MSA, ADFS ve B2C'yi destekler. Örneklerimiz buradaki kullanımı gösterir. MSAL Düğümü, tek ve çok kiracılı uygulamaları da destekler.

Not: ADFS şu anda desteklenmektedir, tek başına örnek henüz yayımlanmamış. Lütfen yakında bir güncelleştirme için bu alanı gözden geçirin.

Genel Uygulama veya Gizli Uygulama nedir? Uygulama kaydı sırasında bilmem gerekenler ne?

Lütfen bunu MSAL temel bilgileri bölümünde bulabilirsiniz

"authority" ve "azureCloudOptions" sağlarsam, authority dizesi varsayılan olarak neye ayarlanır?

Geliştirici azureCloudOptions sağlarsa, MSAL.js authority içinde sağlanan herhangi bir değerin üzerine yazar. MSAL.js, request içinde sağlanan parametrelere configuration içindekilere kıyasla öncelik verir. Lütfen, azureCloudOptions yapılandırmada ayarlanmışsa, request içinde authority üzerinde öncelikli olacaklarını unutmayın. Geliştiricinin bunun üzerine yazması gerekiyorsa, request içinde azureCloudOptions ayarlaması gerekir.

Belirteç ömrü ne kadar olacak?

  • Microsoft Entra: Microsoft Entra için en güncel başvuru kaynağını burada bulabilirsiniz. Belirli belirteç türleri için yapılandırılabilir özelliklerden birkaçının kısa süre önce kullanımdan kaldırıldığını lütfen unutmayın.
  • B2C: Lütfen B2C belirteci yaşam süresi kılavuzunu burada bulabilirsiniz

Yenileme Belirtecini nasıl alabilirim?

MSAL Düğümü, güvenlik nedeniyle yenileme belirteçlerini kullanıma sunmaz. Bunun yerine yenileme belirtecini önbellek üzerinden yönetir ve geliştirici için ilgili Kimlik Belirtecini ve Erişim Belirtecini getirmek üzere gerektiği gibi güncelleştiririz. Erişim belirteçlerini almak için uygun acquireToken* API'yi kullanın ve MSAL gerekirse bunların yenilenmesini sağlar. Başka yollarla alınan bir yenileme belirteciniz varsa acquireTokenByRefreshToken API'sini kullanabilirsiniz (ayrıca bkz: Yenileme Belirteci örneği). Microsoft Entra belirteçleri hakkında daha fazla ayrıntıya buradan ulaşabilirsiniz

Elektron destekleniyor mu?

Yes. Lütfen MSAL Düğümü örneklerine bakın.

Etkileşimli akış destekleniyor mu?

Yes. MSAL Node, yetkilendirme kodu akışının her iki adımını da yöneten acquireTokenInteractive() API’sini PublicClientApplication üzerinde sağlar. Kullanıcının oturum açması için bir tarayıcı penceresi açar ve bir AuthenticationResultdöndürür. Daha fazla ayrıntı için belirteç istekleri alma belgelerine ve uygulama örneği için auth-code-cli-app örneğine bakın.

SPA'lar MSAL Düğümü tarafından destekleniyor mu?

SPA tabanlı kullanım örnekleri için lütfen MSAL Browser'a bakın. MSAL Düğümü masaüstü uygulamaları, web uygulamaları, web API'leri veya sunucu tarafı kimlik doğrulama senaryoları için bir seçenek olmalıdır.

MSAL Node uzantıları nedir? Önbellek Eklentisi nedir?

MSAL Düğümü uzantıları, istemci uygulamalarının platformlar arası belirteç önbelleği serileştirmesi ve kalıcılığı gerçekleştirmesi için güvenli mekanizmalar sunan bir MSAL Düğümü destek kitaplığıdır. Bu konudaki kullanımı, örnekleri ve daha fazlasını burada bulabilirsiniz

MSAL Düğümü uzantılarında sağlanan önbellek eklentisi Elektron uygulamalarında kullanılabilir mi?

Evet, olabilir. Node sürümüyle ilgili sorunlarla karşılaşırsanız, sorun giderme adımlarını içeren bu nota göz atın.

hangi Node.js sürümleri desteklenir? Etkin bir geliştirme Node.js sürümü kullanmak istersem yükleme hatasını nasıl atlayabilirim?

MSAL Node, burada belirtildiği gibi çift numaralı kararlı LTS sürümlerini resmen destekler.

Bu sorunu geçici olarak çözmek istiyorsanız lütfen şunları unutmayın:

  • Yarn: --ignore-engines bayrağını yarn komutuna geçirin.
  • npm: .npmrc dosyanıza ekleyin engine-strict=false .

Important

MSAL Node v5 için Node.js 20 veya üzeri gerekir. Node.js 16 ve 18 artık desteklenmiyor.

MSAL Node ile self servis kaydolmayı nasıl uygulayabilirim?

MSAL Node, yetkilendirme kodu akışında self servis kaydı destekler. İstekte desteklenen istem değerleri ve bunların beklenen sonuçları için buradaki belgelerimize, ayrıca self servis kayıt ve Azure kiracınızda yapılması gereken yapılandırma değişikliklerine genel bakış için buradan bakın. Self servis kaydolmanın B2C ve test ortamlarında kullanılamadığını lütfen unutmayın.

Uygulamam neden bir ara sunucu arkasında çalışırken düzgün çalışmıyor?

MSAL Node v5 itibarıyla, ara sunucu yapılandırması özel bir HTTP istemcisi aracılığıyla işlenir. Proxy desteğiyle bir INetworkModule örneği oluşturarak kendi ağ istemcinizi uygulayın ve networkClient olarak sağlayın. Örnek için özel INetworkModule örneğine bakın.

MSAL Node’da özel bir HTTP(S) aracısını nasıl uygulayabilirim?

MSAL Node v5 itibarıyla customAgentOptions parametresi kaldırılmıştır. Özel bir HTTP(S) aracı kullanmak için, INetworkModule örneğini oluşturup aracıyı bu modül içinde yapılandırarak kendi ağ istemcinizi uygulayın. networkClient özel ağ istemcisini olarak belirtin. Örnek için özel INetworkModule örneğine bakın.

B2C (İşletmeden Tüketiciye)

Parola sıfırlama kullanıcı akışını nasıl işleyebilirim?

Yeni parola sıfırlama deneyimi artık kaydolma veya oturum açma ilkesinin bir parçasıdır. Kullanıcı, Parolanızı mı unuttunuz? bağlantısını seçtiğinde hemen Parolayı Unuttum deneyimine gönderilir.

Uygulama durumunu basitleştirdiğinden ve kullanıcı ucunda hata işlemeyi azalttığı için yeni parola sıfırlama deneyimine geçmeyi tavsiye ediyoruz. Bir nedenle eski parola sıfırlama kullanıcı akışını kullanmanız gerekiyorsa, kullanıcı AADB2C90118 bağlantısını seçtiğinde B2C hizmetinden döndürülen hata kodunu işlemeniz gerekir. Bunun nasıl yapıldığını görmek için şu örneğe bakın: MSAL Node B2C web uygulaması örneği (kimlik doğrulama kodunu kullanarak)

Compatibility

Microsoft Graph JavaScript SDK'sı ile MSAL Node kullanabilir miyim?

Evet, MSAL Düğümü Microsoft Graph JavaScript SDK'sı için özel bir kimlik doğrulama sağlayıcısı olarak kullanılabilir. Bir uygulama örneği için lütfen şu örneğe bakın: Graph API'yi çağıran Express Web App.

MSAL Node uygulamalarını komut satırı aracılığıyla sağlayabilir miyim?

Evet, bunu yapmak için yeni PowerShell Graph SDK'sını öneririz. Örneğin, aşağıdaki betik Mobil ve Masaüstü uygulamaları (diğer adıyla InstalledClient) ve User.Read türünde özel yeniden yönlendirme URI'sine sahip bir Microsoft Entra uygulaması oluşturur ve kullanıcı tarafından belirtilen bir kiracıda Microsoft Graph için okuma izni oluşturur ve ardından bu uygulama nesnesine göre aynı kiracıda bir hizmet sorumlusu sağlar:

Import-Module Microsoft.Graph.Applications

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Connect-MgGraph -TenantId "ENTER_TENANT_ID_HERE" -Scopes "Application.ReadWrite.All"

# User.Read delegated permission for Microsoft Graph
$mgUserReadScope = @{
    "Id" = "e1fe6dd8-ba31-4d61-89e7-88639da4683d" # permission Id
    "Type" = "Scope"
}

# Add additional permissions to array below
$mgResourceAccess = @($mgUserReadScope)

[object[]]$requiredResourceAccess = @{
    "ResourceAppId" = "00000003-0000-0000-c000-000000000000" # MS Graph App Id
    "ResourceAccess" = $mgResourceAccess
}

# Create the application
$msalApplication = New-MgApplication -displayName myMsalDesktopApp `
    -SignInAudience AzureADMyOrg `
    -PublicClient @{RedirectUris = "msal://redirect"} `
    -RequiredResourceAccess $requiredResourceAccess

# Provision the service principal
New-MgServicePrincipal -AppId $msalApplication.AppId