MicrosoftIdentityMessageHandler 建構函式
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
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,每個請求必須指定自己的認證選項,否則會拋出例外。
可選的記錄器用於除錯與監控認證操作。 若提供,處理者會記錄關於代幣取得、挑戰與錯誤的資訊。
例外狀況
當 是 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 用戶端,並透過該廠發送請求。
可選的記錄器用於除錯與監控認證操作。
例外狀況
當 是 headerProvider時拋出 null 。
備註
mTLS PoP(Mutual TLS Proof-of-possession)令牌綁定,如 RFC 8705 所述,會以密碼學方式將存取權杖綁定到特定的 X.509 憑證上。 啟用後,處理器會取得帶有憑證指紋 cnf 的綁定令牌,建立包含綁定憑證的 mTLS HTTP 用戶端,並透過 mTLS 通道發送請求。
目前 Token 綁定僅支援應用程式(僅限應用程式)的 token。 將 RequestAppToken 設定為 true。
建議使用 MicrosoftIdentityHttpClientBuilderExtensions 擴充方法透過依賴注入來配置此處理器,而非直接實例化。