Język

MicrosoftIdentityMessageHandler Konstruktory

Definicja

Przeciążenia

MicrosoftIdentityMessageHandler(IAuthorizationHeaderProvider, MicrosoftIdentityMessageHandlerOptions, ILogger<MicrosoftIdentityMessageHandler>)

Inicjuje nowe wystąpienie klasy MicrosoftIdentityMessageHandler.

public MicrosoftIdentityMessageHandler(Microsoft.Identity.Abstractions.IAuthorizationHeaderProvider headerProvider, Microsoft.Identity.Web.MicrosoftIdentityMessageHandlerOptions? defaultOptions = default, Microsoft.Extensions.Logging.ILogger<Microsoft.Identity.Web.MicrosoftIdentityMessageHandler>? logger = default);
new Microsoft.Identity.Web.MicrosoftIdentityMessageHandler : Microsoft.Identity.Abstractions.IAuthorizationHeaderProvider * Microsoft.Identity.Web.MicrosoftIdentityMessageHandlerOptions * Microsoft.Extensions.Logging.ILogger<Microsoft.Identity.Web.MicrosoftIdentityMessageHandler> -> Microsoft.Identity.Web.MicrosoftIdentityMessageHandler
Public Sub New (headerProvider As IAuthorizationHeaderProvider, Optional defaultOptions As MicrosoftIdentityMessageHandlerOptions = Nothing, Optional logger As ILogger(Of MicrosoftIdentityMessageHandler) = Nothing)

Parametry

headerProvider
IAuthorizationHeaderProvider

Używany do uzyskiwania IAuthorizationHeaderProvider nagłówków autoryzacji dla żądań wychodzących. Jest to zwykle uzyskiwane z kontenera wstrzykiwania zależności.

defaultOptions
MicrosoftIdentityMessageHandlerOptions

Domyślne opcje uwierzytelniania, które będą używane dla wszystkich żądań, chyba że zastąpić żądanie przy użyciu polecenia WithAuthenticationOptions(HttpRequestMessage, MicrosoftIdentityMessageHandlerOptions). Jeśli nullkażde żądanie musi określić własne opcje uwierzytelniania lub zostanie zgłoszony wyjątek.

logger
ILogger<MicrosoftIdentityMessageHandler>

Opcjonalny rejestrator do debugowania i monitorowania operacji uwierzytelniania. Jeśli zostanie podana, program obsługi będzie rejestrować informacje o pozyskiwaniu tokenów, wyzwaniach i błędach.

Wyjątki

Zgłaszany, gdy headerProvider ma wartość null.

Przykłady

Podstawowe użycie z opcjami domyślnymi:

var handler = new MicrosoftIdentityMessageHandler(
    headerProvider,
    new MicrosoftIdentityMessageHandlerOptions
    {
        Scopes = { "https://api.example.com/.default" }
    });

Użycie bez opcji domyślnych (wymagana konfiguracja na żądanie):

var handler = new MicrosoftIdentityMessageHandler(headerProvider);

// Each request must specify options
var request = new HttpRequestMessage(HttpMethod.Get, "/api/data")
    .WithAuthenticationOptions(options =>
        options.Scopes.Add("custom.scope"));

Użycie z rejestrowaniem:

var logger = serviceProvider.GetService<ILogger<MicrosoftIdentityMessageHandler>>();
var handler = new MicrosoftIdentityMessageHandler(headerProvider, defaultOptions, logger);

Uwagi

Parametr defaultOptions zapewnia wygodny sposób ustawiania opcji uwierzytelniania, które mają zastosowanie do wszystkich żądań wysyłanych za pośrednictwem tego wystąpienia programu obsługi. Poszczególne żądania nadal mogą zastąpić te wartości domyślne przy użyciu metod rozszerzeń.

Po logger podaniu program obsługi będzie rejestrował się na różnych poziomach:

  • Debugowania: Dodawanie nagłówka autoryzacji zakończonej powodzeniem
  • Informacje: WWW-Authenticate wykrywanie i obsługa wyzwań
  • Ostrzeżenie: Błędy obsługi wyzwań
  • Błąd: Niepowodzenia pozyskiwania tokenów

Dotyczy

MicrosoftIdentityMessageHandler(IAuthorizationHeaderProvider, MicrosoftIdentityMessageHandlerOptions, IMsalMtlsHttpClientFactory, ILogger<MicrosoftIdentityMessageHandler>)

Inicjuje MicrosoftIdentityMessageHandler nowe wystąpienie klasy z obsługą powiązania tokenu mTLS PoP.

public MicrosoftIdentityMessageHandler(Microsoft.Identity.Abstractions.IAuthorizationHeaderProvider headerProvider, Microsoft.Identity.Web.MicrosoftIdentityMessageHandlerOptions? defaultOptions, Microsoft.Identity.Client.IMsalMtlsHttpClientFactory? mtlsHttpClientFactory, Microsoft.Extensions.Logging.ILogger<Microsoft.Identity.Web.MicrosoftIdentityMessageHandler>? logger = default);
new Microsoft.Identity.Web.MicrosoftIdentityMessageHandler : Microsoft.Identity.Abstractions.IAuthorizationHeaderProvider * Microsoft.Identity.Web.MicrosoftIdentityMessageHandlerOptions * Microsoft.Identity.Client.IMsalMtlsHttpClientFactory * Microsoft.Extensions.Logging.ILogger<Microsoft.Identity.Web.MicrosoftIdentityMessageHandler> -> Microsoft.Identity.Web.MicrosoftIdentityMessageHandler
Public Sub New (headerProvider As IAuthorizationHeaderProvider, defaultOptions As MicrosoftIdentityMessageHandlerOptions, mtlsHttpClientFactory As IMsalMtlsHttpClientFactory, Optional logger As ILogger(Of MicrosoftIdentityMessageHandler) = Nothing)

Parametry

headerProvider
IAuthorizationHeaderProvider

Używany do uzyskiwania IAuthorizationHeaderProvider nagłówków autoryzacji dla żądań wychodzących. Jest to zwykle uzyskiwane z kontenera wstrzykiwania zależności.

defaultOptions
MicrosoftIdentityMessageHandlerOptions

Domyślne opcje uwierzytelniania, które będą używane dla wszystkich żądań, chyba że zostaną zastąpione dla poszczególnych żądań. Jeśli nullkażde żądanie musi określić własne opcje uwierzytelniania lub zostanie zgłoszony wyjątek.

mtlsHttpClientFactory
IMsalMtlsHttpClientFactory

Opcjonalna fabryka do tworzenia klientów HTTP skonfigurowanych przy użyciu certyfikatów klienta mTLS dla scenariuszy powiązania tokenu (mTLS PoP). W przypadku ustawienia i ProtocolScheme ustawiona "MTLS_POP"na wartość program obsługi użyje tej fabryki do utworzenia klienta HTTP z certyfikatem powiązania i wysyłania żądań za jego pośrednictwem.

logger
ILogger<MicrosoftIdentityMessageHandler>

Opcjonalny rejestrator do debugowania i monitorowania operacji uwierzytelniania.

Wyjątki

Zgłaszany, gdy headerProvider ma wartość null.

Uwagi

Powiązanie tokenu mTLS PoP (wzajemnego dowodu posiadania protokołu TLS), zgodnie z opisem w artykule RFC 8705, kryptograficznie wiąże tokeny dostępu z określonym certyfikatem X.509. Po włączeniu program obsługi uzyskuje powiązany token z odciskiem palca certyfikatu w oświadczeniu cnf , tworzy klienta HTTP mTLS z certyfikatem powiązania i wysyła żądania za pośrednictwem kanału mTLS.

Powiązanie tokenu obsługuje obecnie tylko tokeny aplikacji (tylko dla aplikacji). Ustaw opcję RequestAppToken na true.

Preferuj MicrosoftIdentityHttpClientBuilderExtensions używanie metod rozszerzenia, aby skonfigurować tę procedurę obsługi za pomocą wstrzykiwania zależności, a nie bezpośredniego tworzenia wystąpienia.

Dotyczy