Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Warning
Zanim zaczniesz, upewnij się, że zapoznałeś się z tematem Używanie poświadczeń opartych na certyfikacie w bibliotece MSAL Node.
Uwierzytelnianie SNI (nazwa podmiotu/wystawca) umożliwia aplikacji uwierzytelnianie przy użyciu certyfikatu publicznego ze wstępnie określonego zaufanego urzędu certyfikacji w celu obsługi złożonych scenariuszy przerzucania certyfikatów. Używa parametru nagłówka X5C , aby udostępnić certyfikat serwerowi.
Użytkownicy wewnętrzni powinni postępować zgodnie z instrukcjami w wewnętrznej witrynie wiki Microsoft Entra, aby skonfigurować środowisko Microsoft Entra tak, aby obsługiwało SNI.
x5c Roszczenia
Musisz podać ciąg z certyfikatu zakodowanego przy użyciu pem w polu clientCertificate.x5c obiektu konfiguracji MSAL, oprócz podania zarówno clientCertificate.thumbprintSha256, jak i clientCertificate.privateKey:
Przykładowy x5cciąg z pliku .pem:
-----BEGIN CERTIFICATE-----
<cert1>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<cert2>
-----END CERTIFICATE-----
// ...
Zobacz również: Certyfikaty: konwertowanie pfx na pem
Konfiguracja aplikacji
Bezpieczne używanie wpisów tajnych i certyfikatów
Wpisy tajne nigdy nie powinny być zakodowane na stałe. Pakiet npm dotenv może służyć do przechowywania wpisów tajnych lub certyfikatów w pliku env (znajdującym się w katalogu głównym projektu), który powinien zostać uwzględniony w pliku gitignore, aby zapobiec przypadkowym przekazaniu wpisów tajnych.
Certyfikaty można również odczytywać z plików za pośrednictwem modułu fs środowiska NodeJS. Jednak nigdy nie powinny być przechowywane w katalogu projektu. Aplikacje produkcyjne powinny pobierać certyfikaty z usługi Azure KeyVault lub innych bezpiecznych magazynów kluczy.
Aby uzyskać więcej informacji, zobacz certyfikaty i wpisy tajne .
Zobacz przykład MSAL: auth-code-with-certs
Poniższy fragment kodu przedstawia sposób inicjowania biblioteki MSAL na potrzeby uwierzytelniania nazwy podmiotu/wystawcy (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);
Typowe problemy
Zapoznaj się z typowymi problemami podczas importowania certyfikatów.