語言

MicrosoftIdentityMessageHandler 建構函式

定義

多載

MicrosoftIdentityMessageHandler(IAuthorizationHeaderProvider, MicrosoftIdentityMessageHandlerOptions, ILogger<MicrosoftIdentityMessageHandler>)

初始化 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)

參數

headerProvider
IAuthorizationHeaderProvider

它們 IAuthorizationHeaderProvider 用來取得外發出請求的授權標頭。 這通常可從相依注入容器中取得。

defaultOptions
MicrosoftIdentityMessageHandlerOptions

預設的認證選項,除非每個請求 WithAuthenticationOptions(HttpRequestMessage, MicrosoftIdentityMessageHandlerOptions)都被覆寫,否則所有請求都會使用。 若 null,每個請求必須指定自己的認證選項,否則會拋出例外。

logger
ILogger<MicrosoftIdentityMessageHandler>

可選的記錄器用於除錯與監控認證操作。 若提供,處理者會記錄關於代幣取得、挑戰與錯誤的資訊。

例外狀況

當 是 headerProvider時拋出 null 。

範例

基本使用法與預設選項:

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

使用時若無預設選項(需依請求設定):

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

伐木的應用:

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

備註

這個 defaultOptions 參數提供了一個方便的方式,可以設定適用於所有透過此處理程序實例發出的請求的認證選項。 個別請求仍可利用擴充方法覆蓋這些預設值。

當 logger 提供時,處理器會在不同層級記錄:

  • 除錯: 成功新增授權標頭
  • 資訊: WWW-Authenticate 挑戰偵測與處理
  • 警告: 挑戰處理故障
  • 錯誤: 代幣取得失敗

適用於

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

初始化一個支援 mTLS PoP 令牌綁定的新類別實例 MicrosoftIdentityMessageHandler 。

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)

參數

headerProvider
IAuthorizationHeaderProvider

它們 IAuthorizationHeaderProvider 用來取得外發出請求的授權標頭。 這通常可從相依注入容器中取得。

defaultOptions
MicrosoftIdentityMessageHandlerOptions

預設的認證選項,除非每個請求被覆蓋,否則所有請求都會使用。 若 null,每個請求必須指定自己的認證選項,否則會拋出例外。

mtlsHttpClientFactory
IMsalMtlsHttpClientFactory

可選的工廠用於建立配置 mTLS 用戶端憑證的 HTTP 用戶端,用於令牌綁定(mTLS PoP)情境。 當提供 ProtocolScheme 且設定為 "MTLS_POP"時,處理器會利用此工廠建立帶有綁定憑證的 HTTP 用戶端,並透過該廠發送請求。

logger
ILogger<MicrosoftIdentityMessageHandler>

可選的記錄器用於除錯與監控認證操作。

例外狀況

當 是 headerProvider時拋出 null 。

備註

mTLS PoP(Mutual TLS Proof-of-possession)令牌綁定,如 RFC 8705 所述,會以密碼學方式將存取權杖綁定到特定的 X.509 憑證上。 啟用後,處理器會取得帶有憑證指紋 cnf 的綁定令牌,建立包含綁定憑證的 mTLS HTTP 用戶端,並透過 mTLS 通道發送請求。

目前 Token 綁定僅支援應用程式(僅限應用程式)的 token。 將 RequestAppToken 設定為 true。

建議使用 MicrosoftIdentityHttpClientBuilderExtensions 擴充方法透過依賴注入來配置此處理器,而非直接實例化。

適用於