Ověřování názvu subjektu nebo vystavitele (SNI) pomocí uzlu MSAL

Warning

Než začnete tady, ujistěte se, že rozumíte používání přihlašovacích údajů k certifikátu s uzlem MSAL.

Ověřování SNI (název subjektu / vystavitel) umožňuje aplikaci ověřovat se pomocí veřejného certifikátu od předem určené důvěryhodné certifikační autority, aby podporovalo složité scénáře obměny certifikátů. K poskytnutí certifikátu serveru používá parametr hlavičky X5C .

Uživatelé první strany by měli postupovat podle pokynů na interním wikiwebu Microsoft Entra, aby nastavili své Microsoft Entra prostředí pro podporu SNI.

x5c Tvrdí

Budete muset dodat řetězec z vašeho pem kódovaného certifikátu do objektu konfigurace MSAL v poli clientCertificate.x5c, a to kromě zadání hodnot clientCertificate.thumbprintSha256 i clientCertificate.privateKey:

Příklad x5c řetězce ze .pem souboru:

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

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

// ...

Viz také: Certifikáty: Převod pfx na pem

Konfigurace aplikace

Bezpečné používání tajných kódů a certifikátů

Tajné kódy by nikdy neměly být pevně zakódované. Balíček dotenv npm lze použít k ukládání tajných kódů nebo certifikátů do souboru .env (umístěného v kořenovém adresáři projektu), který by měl být součástí souboru .gitignore, aby se zabránilo náhodnému nahrání tajných kódů.

Certifikáty lze také číst ze souborů prostřednictvím modulu fs nodeJS. Nikdy by ale neměly být uložené v adresáři projektu. Produkční aplikace by měly načítat certifikáty z Azure služby KeyVault nebo jiných zabezpečených trezorů klíčů.

Další informace najdete v certifikátech a tajných kódech .

Projděte si ukázku MSAL: auth-code-with-certs

Níže uvedený úryvek kódu ukazuje, jak inicializovat MSAL pro autentizaci pomocí názvu subjektu / vystavitele (SNI):

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);

Běžné problémy

Viz Časté problémy při importu certifikátů.