MSAL Düğümü ile Konu Adı/Veren (SNI) kimlik doğrulaması

Warning

Buradan başlamadan önce , MSAL Düğümü ile sertifika kimlik bilgilerini kullanma'yı anladığınızdan emin olun.

SNI (Konu Adı/Veren) kimlik doğrulaması, uygulamanın karmaşık sertifika geçişi senaryolarını desteklemek için önceden belirlenmiş bir güvenilen CA'dan genel sertifika kullanarak kimlik doğrulaması yapmasına olanak tanır. Sertifikayı sunucuya sağlamak için X5C üst bilgi parametresini kullanır.

Birinci taraf kullanıcılar, SNI'yi destekleyecek Microsoft Entra ortamlarını ayarlamak için iç Microsoft Entra wiki'deki yönergeleri izlemelidir.

x5c talep

clientCertificate.thumbprintSha256 ve clientCertificate.privateKey değerlerinin her ikisini de sağlamanın yanı sıra, kodlanmış sertifikanızdan alınan dizeyi clientCertificate.x5c alanındaki MSAL yapılandırma nesnesine pem iletmeniz gerekir:

Bir x5c dosyadan örnek .pem dize:

-----BEGIN CERTIFICATE-----
<cert1>
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
<cert2>
-----END CERTIFICATE-----

// ...

Ayrıca bkz: Sertifikalar: pfx'i pem'e dönüştürme

Uygulama yapılandırması

Gizli anahtarların ve sertifikaların güvenli kullanımı

Gizli bilgiler asla doğrudan koda gömülmemelidir. Dotenv npm paketi, gizli dizilerin yanlışlıkla karşıya yüklenmesini önlemek için .gitignore dosyasına eklenmesi gereken bir .env dosyasında (projenin kök dizininde bulunur) gizli dizileri veya sertifikaları depolamak için kullanılabilir.

Sertifikalar NodeJS'nin fs modülü aracılığıyla dosyalardan da okunabilir. Ancak, bunlar hiçbir zaman projenin dizininde depolanmamalıdır. Üretim uygulamaları Azure KeyVault veya diğer güvenli anahtar kasalarından sertifika getirmelidir.

Daha fazla bilgi için lütfen sertifikalar ve gizli anahtarlar bölümüne bakın.

MSAL örneğine bakın: auth-code-with-certs

Aşağıdaki kod parçacığı, Konu Adı / Veren (SNI) kimlik doğrulaması için MSAL'nin nasıl başlatılmış olduğunu gösterir:

var msal = require('@azure/msal-node');
require('dotenv').config(); // process.env now has the values defined in a .env file

const config = {
    auth: {
        clientId: "ENTER_CLIENT_ID",
        authority: "https://login.microsoftonline.com/ENTER_TENANT_ID",
        clientCertificate: {
                thumbprintSha256: process.env.thumbprint, // a 64-digit hexadecimal string
                privateKey: process.env.privateKey,
                x5c: process.env.x5c 
            }
   }
}
};

// Create msal application object
const cca = new msal.ConfidentialClientApplication(config);

Yaygın Sorunlar

Lütfen sertifikaları içeri aktarırken sık karşılaşılan sorunlar konusuna bakın.