MsalError 类

定义

在 MsalException 中作为属性返回的错误代码

public static class MsalError
type MsalError = class
Public Class MsalError
继承
MsalError

字段

名称 说明
AccessDenied

访问被拒绝。

AccessingWsMetadataExchangeFailed

访问 WS 元数据Exchange失败。

会发生什么情况?

您尝试使用 AcquireTokenByUsernamePassword(IEnumerable<String>, String, String) ,并且帐户是联合帐户。

缓解措施

None. 找不到 WS 元数据或与预期的元数据不对应。
AccessTokenTypeMissing

会发生什么情况?

令牌终结点的响应不包含token_type参数。

缓解措施

如果标识提供者(AAD、B2C、ADFS 等)不包括令牌响应中的访问令牌类型,则会出现这种情况。 验证标识提供者的配置。
ActivityRequired

在 Android 上,需要调用 AcquireTokenInteractiveParameterBuilder.WithParentActivityOrWindow(object) 传递活动。 请参见https://aka.ms/msal-interactive-android

AdfsNotSupportedWithBroker

会发生什么情况?

代理配置有 ADFS 颁发机构,但不支持 ADFS 环境。

缓解措施

Broker 不支持 ADFS 环境。
AndroidBrokerOperationFailed

未能完成 Android Broker 操作

AndroidBrokerSignatureVerificationFailed

未能验证 Android 代理签名

AuthenticationCanceledError

身份验证已取消。

会发生什么情况?

例如,用户已取消身份验证,例如关闭身份验证对话框

缓解措施

无,无法获取用于调用受保护 API 的令牌。 你可能想要通知用户
AuthenticationFailed

身份验证失败。

会发生什么情况?

身份验证失败。 例如,用户未输入正确的密码

缓解措施

通知用户重试。
AuthenticationUiFailed

由于 UI 流中未知失败,无法执行请求。*

缓解措施

通知用户。
AuthenticationUiFailedError

由于 UI 流中的失败,无法执行请求。

会发生什么情况?

库未能调用执行交互式身份验证所需的 Web 视图。 异常可能包括原因

缓解措施

如果异常包括原因,可以通知用户。 例如,Android 手机上缺少实现 Chrome 选项卡的浏览器(这只是一个示例:此异常也适用于其他平台)
AuthorityHostMismatch

在应用程序级别定义的云(颁发机构 URL 主机)不能不同于请求级别的云。

会发生什么情况?

你未在应用程序级别定义颁发机构,因此它默认为公有云(login.microsoft.com),但请求级别的颁发机构适用于不同的云。 只能在请求级别更改租户。

缓解措施

添加 。WithAuthority(“https://login.windows-ppe.net/common) 在应用程序级别,并在请求级别指定租户:WithAuthority(”https://login.windows-ppe.net/1234-567-890-12345678).
AuthorityTenantSpecifiedTwice

会发生什么情况?

你指定了一个租户两次 - 在 WithAuthority() 中指定一次,一次使用 WithTenant()

缓解措施

指定租户一次。
AuthorityTypeMismatch

会发生什么情况?

在应用程序级别配置的颁发机构不同于在请求级别配置的颁发机构

缓解措施

确保使用相同的颁发机构类型
AuthorityValidationFailed

颁发机构验证失败。

会发生什么情况?

颁发机构的验证失败。 这可能是因为颁发机构不符合 OIDC 标准,或者可能存在安全问题

缓解措施

使用其他颁发机构。 如果绝对确定可以信任颁发机构,则可以使用WithAuthority(AadAuthorityAudience, Boolean)将参数false传递给 validateAuthority (不建议)
B2CAuthorityHostMismatch

B2C 颁发机构主机与创建客户端应用程序时使用的主机不同。

BrokerApplicationRequired

会发生什么情况?

需要代理应用程序,但找不到代理应用程序或与之通信。

缓解措施

从应用程序存储安装代理应用程序(如 Authenticator)
BrokerDoesNotSupportPop

会发生什么情况?

请求已启用中转站并配置了所有权证明,但代理不支持所有权证明

缓解措施

仅为 Windows 上的公共客户端配置所有权证明。
BrokerNonceMismatch

代理响应 nonce 与 iOS 中转站>的 MSAL.NET 发送的请求 nonce 不匹配 = v6.3.19

BrokerRequiredForPop

会发生什么情况?

请求已配置所有权证明,但未启用中转站。 代理需要使用公共客户端的所有权证明

缓解措施

配置所有权证明时启用中转站。
BrokerResponseHashMismatch

中转站响应哈希不匹配

BrokerResponseReturnedError

中转站响应返回错误

CannotAccessUserInformationOrUserNotDomainJoined

无法访问用户信息或用户不是用户域。

会发生什么情况?

您尝试使用 AcquireTokenByIntegratedWindowsAuth(IEnumerable<String>) 但用户不是域用户(计算机未加入域或已加入 AAD)
CannotInvokeBroker

MSAL 无法调用中转站。 可能的原因是中转站未安装在用户的设备上,或者 UiParent 或 CallerViewController 为 null 时出现问题。 请参见https://aka.ms/msal-brokers

CannotSwitchBetweenImdsVersionsForPreview

系统已经回退了 IMDS V1,只能获取持有者令牌。 需要重新启动它才能获取 mTLS PoP 令牌。

CertificateNotRsa

会发生什么情况?

提供的证书不是 RSA 类型。

缓解措施

请使用 RSA 证书。
CertWithoutPrivateKey

会发生什么情况?

提供的证书没有私钥。

缓解措施

确保证书具有私钥。
ClientCredentialAuthenticationTypeMustBeDefined

会发生什么情况?

未配置身份验证类型(证书、机密、客户端断言)的 MSAL 机密客户端身份验证

缓解措施

调用 ConfidentialClientApplicationBuilder.WithClientSecret、ConfidentialClientApplicationBuilder.WithCertificate、ConfidentialClientApplicationBuilder.WithClientAssertion
ClientCredentialAuthenticationTypesAreMutuallyExclusive

会发生什么情况?

使用多个身份验证类型(证书、机密、客户端断言)配置了 MSAL 机密客户端身份验证
CodeExpired

会发生什么情况?

在设备代码流的上下文中(请参阅 https://aka.ms/msal-net-device-code-flow),当设备代码在另一台设备上登录之前过期(这通常在 15 分钟后)过期时发生。

缓解措施

None. 通知用户,他们在提供的 URL 上登录花费了太久,并输入提供的代码。
CombinedUserAppCacheNotSupported

不支持使用组合的平面存储(如文件)来存储应用令牌和用户令牌。 对应用和用户令牌缓存使用分区令牌缓存(例如 Redis 等分布式缓存)或单独的文件。 请参阅 https://aka.ms/msal-net-token-cache-serialization

CryptographicError

尝试使用提供的证书时发生加密异常

CurrentBrokerAccount

当用户作为account参数传递时OperatingSystemAccount,此错误代码从AcquireTokenSilent(IEnumerable<String>, IAccount)调用中返回。 只有一些中转站(WAM)才能登录当前用户。

缓解措施

在Windows上,通过 ..WithBroker(true),使用其他帐户,否则调用AcquireTokenInteractive(IEnumerable<String>)
CustomMetadataInstanceOrUri

会发生什么情况?

已使用 Uri 和字符串配置自己的实例元数据。 仅支持一个。

缓解措施

仅调用 WithInstanceDiscoveryMetadata 一次。 有关详细信息,请参阅 https://aka.ms/msal-net-custom-instance-metadata。
CustomWebUiRedirectUriMismatch

自定义 WebUI 返回 URI 时使用的错误代码,但它与配置的重定向 URI 的 Authority 和 AbsolutePath 不匹配。

CustomWebUiReturnedInvalidUri

返回 URI 时 ICustomWebUi 使用的错误代码,但无效 - 它为 null 或没有代码。 如果无法截获包含代码的 URI,请考虑引发异常。

DefaultRedirectUriIsInvalid

RedirectUri 验证失败。

DeviceCertificateNotFound

找不到设备证书。

DuplicateQueryParameterError

在 extraQueryParameters 中找到重复的查询参数。

会发生什么情况?

你已使用 extraQueryParameter 公共客户端和机密客户端应用程序中的令牌获取操作的替代,并且正在传递 URL 中已存在的参数(要么是因为以另一种方式存在令牌获取操作,要么是库添加了它)。

缓解 [应用开发]

从令牌获取替代中删除重复参数 RemoveAccount。
EncodedTokenTooLong

编码的令牌太长。

发生的情况

在机密客户端应用程序调用中,MSAL 生成的客户端断言长度超过 JWT 令牌的最大可能长度。
ExactlyOneScopeExpected

正好需要一个范围。

ExperimentalFeature

会发生什么情况?

你正尝试使用标记为实验性的功能

缓解措施

创建 PublicClientApplication 或 ConfidentialClientApplication 时,请使用 。WithExperimentalFeatures() 选项。 有关详细信息,请参阅https://aka.ms/msal-net-experimental-features。
FailedToAcquireTokenSilentlyFromBroker

无法以无提示方式获取令牌。 在代理方案中使用。

发生的情况

AcquireTokenSilent(IEnumerable<String>, IAccount)调用或调用或AcquireTokenSilent(IEnumerable<String>, String)移动(Xamarin)应用程序利用代理(Microsoft Authenticator或Microsoft 公司门户),但代理无法以无提示方式获取令牌。

缓解措施

调用 AcquireTokenInteractive(IEnumerable<String>)
FailedToGetBrokerResponse

会发生什么情况?

你正在尝试向中转站进行身份验证,但 MSAL 无法从中转站读取响应。

缓解措施

当前安装的中转站可能不支持 MSAL。Xamarin,需要确保已安装 Intune 公司门户(5.0.4689.0 或更高版本)或Microsoft Authenticator(6.2001.0140 或更高版本)。 请参阅 https://aka.ms/Brokered-Authentication-for-Android”
FailedToRefreshToken

无法刷新令牌。

会发生什么情况?

无法刷新令牌。 原因可能是用户长时间未使用该应用程序。 因此,令牌缓存中维护的刷新令牌已过期

缓解措施

如果位于支持交互性的公共客户端应用程序中,请发送交互式请求 AcquireTokenInteractive(IEnumerable<String>)。 否则,请使用其他方法来获取令牌。
FederatedServiceReturnedError

联合服务返回错误。

缓解措施

None. 联合服务返回错误。 可以尝试查看异常正文,以便更好地了解错误并选择缓解措施
ForceRefreshNotCompatibleWithTokenHash

发生了什么情况?

该操作尝试强制刷新令牌,同时使用令牌哈希。 这两个选项不兼容,因为强制刷新会绕过令牌缓存,这与令牌哈希验证冲突。

缓解措施:

- 使用令牌哈希时,请确保“force_refresh”未设置为“true”。 - 查看请求参数以确保它们不冲突。 - 如果需要令牌哈希,则允许使用缓存令牌,而不是强制刷新。
GetUserNameFailed

未能获取用户名。

HttpListenerError

侦听系统浏览器完成登录时发生 HttpListenerException。

HttpStatusCodeNotOk

当 HTTP 响应返回与 200 不同的内容时使用的 ErrorCode (确定)

HttpStatusNotFound

HTTP 响应返回 HttpStatusCode.NotFound 时使用的错误代码

ImdsServiceError

表示 IMDS 操作失败时返回的错误代码。

InitializeProcessSecurityError

会发生什么情况?

失败设置进程安全性以在提升的进程中启用 WAM 帐户选取器。

缓解措施

有关故障排除详细信息,请参阅 https://aka.ms/msal-net-wam 。
IntegratedWindowsAuthenticationFailed

如果在 ADFS 环境中存在配置问题,则会发生这种情况。 有关详细信息,请参阅https://aka.ms/msal-net-iwa-troubleshooting

IntegratedWindowsAuthNotSupportedForManagedUser

仅“联合”用户支持集成Windows身份验证

InteractionRequired

标准 OAuth2 协议错误代码。 它指示应用程序需要向用户公开 UI,以便用户可以执行交互式登录来获取具有更新声明的令牌。

缓解措施:

如果应用程序是 IPublicClientApplication 调用 AcquireTokenInteractive ,则执行交互式身份验证。 如果应用程序 ConfidentialClientApplication 很有可能是异常的 Claims 成员不为空。 有关正确的缓解措施,请参阅Claims
InternalCacheDisabled

发生了什么情况?

调用了依赖于缓存的 API,但 MSAL 的内部令牌缓存是通过禁用 DisableInternalCacheOptions的。 这可能发生在 API 等 AcquireTokenSilent(IEnumerable<String>, IAccount)AcquireTokenInLongRunningProcess(...).

缓解措施

使用不依赖于 MSAL 内部缓存的身份验证流,例如 AcquireTokenByRefreshToken(IEnumerable<String>, String) 使用从中 GetRefreshToken(AuthenticationResult)获取的刷新令牌,或者根据应用程序使用其他交互式流。
InternalError

内部错误

InvalidAdalCacheMultipleRTs

会发生什么情况?

ADAL 缓存无效,因为它包含一个用户的多个刷新令牌条目。

缓解措施

删除 ADAL 缓存。 如果不维护 ADAL 缓存,则可能是 MSAL 中的 bug。
InvalidAuthority

颁发机构无效

发生的情况

当库尝试发现颁发机构并获取获取令牌所需的终结点时,它获得了未经授权的 HTTP 代码或意外响应

修复

检查为应用程序配置的颁发机构,或传递了支持颁发机构替代的令牌获取令牌的某些替代是否正确
InvalidAuthorityType

颁发机构类型无效。 MSAL.NET 不知道如何与生成应用程序时指定的颁发机构进行交互。

缓解措施

使用其他颁发机构
InvalidAuthorizationUri

已截获授权 URI,但无法对其进行分析。 有关详细信息,请参阅日志。

InvalidCertificate

从 Imds 服务器收到的证书无效。

InvalidClient

Azure AD 服务错误,指示配置问题。

缓解措施

有关详细信息,请参阅错误消息,然后在应用注册门户中采取纠正措施。有关详细信息,请参阅 https://aka.ms/msal-net-invalid-client 。
InvalidClientAssertion

当委托提供null或空 JWT 字符串时WithClientAssertion返回。

缓解措施

确保委托返回非空的 base-64 编码 JWT。
InvalidClientCredentialConfiguration

会发生什么情况?

配置了静态证书(WithCertificate(X509Certificate2)和动态证书提供程序(WithCertificate(Func))。

缓解措施

选择一种方法来提供客户端证书。
InvalidCredentialMaterial

发生了什么情况?

配置的凭据类型与请求的身份验证模式不兼容。 例如,客户端机密不能与 mTLS 所有权证明一起使用,或者 SendCertificateOverMtls 因为 mTLS 要求证书将令牌绑定到 TLS 传输。

缓解措施:

使用 WithCertificate()基于证书的凭据,或返回 ClientSignedAssertion 具有 TokenBindingCertificate mTLS 所有权证明的委托。
InvalidGrantError

标准 OAuth2 协议错误代码。 它指示应用程序需要向用户公开 UI,以便用户执行交互式操作以获取新令牌。

缓解措施:

如果应用程序是 IPublicClientApplication 调用 AcquireTokenInteractive ,则执行交互式身份验证。 如果应用程序 ConfidentialClientApplication 很有可能是异常的 Claims 成员不为空。 有关正确的缓解措施,请参阅MsalServiceException.Claims
InvalidInstance

指示配置的颁发机构不存在的 AAD 服务错误

InvalidJsonClaimsFormat

会发生什么情况?

已配置声明请求,但声明字符串不采用 JSON 格式

缓解措施

确保声明参数是有效的 JSON。 检查内部异常,了解有关 JSON 分析的详细信息。
InvalidJwtError

JWT 无效。

会发生什么情况?

库需要 JWT(例如缓存中的令牌,或从 STS 接收),但格式无效

缓解措施

确保令牌缓存未被篡改
InvalidManagedIdentityEndpoint

托管标识终结点无效。

InvalidManagedIdentityIdType

托管标识的源不选择特定的 ID 类型。

InvalidManagedIdentityResponse

托管标识响应中缺少所需的值。

InvalidOwnerWindowType

所有者窗口类型无效。

会发生什么情况?

已使用 "AcquireTokenInteractiveParameterBuilder.WithParentActivityOrWindow(object) ,但传递的参数无效。

Remediation

在 .NET Standard 上,预期对象是 AndroidActivityUIViewControlleriOS 上的对象、NSWindowMAC 上的对象以及IWin32WindowIntPr Windows。 如果位于WPF应用程序中,则可用于WindowInteropHelper(wpfControl).Handle获取与WPF控件关联的窗口句柄
InvalidRequest

请求无效。

会发生什么情况?

之所以发生这种情况,是因为你使用的是与颁发机构不兼容的令牌获取方法。 例如:调用 AcquireTokenByUsernamePassword(IEnumerable<String>, String, String) 但使用了以“/common”或“/consumers”结尾的颁发机构,因为这需要租户颁发机构或“/organizations”。

缓解措施

将颁发机构调整为使用的 AcquireTokenXX 方法(不要将“common”或“consumers”与 AcquireTokenByUsernamePassword(IEnumerable<String>, String, String)AcquireTokenByIntegratedWindowsAuth(IEnumerable<String>)
InvalidTokenProviderResponseValue

令牌提供程序响应中缺少所需的值

InvalidUserInstanceMetadata

会发生什么情况?

已配置自己的实例元数据,但提供的 json 似乎无效。

缓解措施

有关可使用的有效 json 的示例,请参阅 https://aka.ms/msal-net-custom-instance-metadata 。
JsonParseError

JSON 分析失败。

会发生什么情况?

从令牌缓存读取或从 STS 接收的 JSON Blob 不可分析。 读取令牌缓存或从 STS 接收 IDToken 时,可能会发生这种情况。

缓解措施

确保令牌缓存未被篡改
LinuxXdgOpen

会发生什么情况?

MSAL 尝试使用 xdg-open、gnome-open 或 kfmclient 工具在 Linux 上打开浏览器,但失败。

缓解措施

确保可以使用 xdg-open 工具打开页面。 有关详细信息,请参阅https://aka.ms/msal-net-os-browser。
LoopbackRedirectUri

会发生什么情况?

当前重定向 URL 不是环回 URL。

缓解措施

若要使用 OS 浏览器,必须在应用注册期间和初始化 IPublicClientApplication 对象时配置带或不带端口的环回 URL。 有关详细信息,请参阅https://aka.ms/msal-net-os-browser。
LoopbackResponseUriMismatch

会发生什么情况?

MSAL 截获了可能包含授权代码的 URI,但它与配置的重定向 URL 不匹配。

缓解措施

如果使用 ICustomWebUi 实现,请确保重定向 URL 与包含身份验证代码的 URL 匹配。 如果不使用 ICustomWebUI,这可能是中间人攻击。
ManagedIdentityAllSourcesUnavailable

所有托管标识源都不可用。

ManagedIdentityRequestFailed

收到托管标识错误响应。

ManagedIdentityResponseParseFailure

收到托管标识错误响应。

ManagedIdentityUnreachableNetwork

无法访问托管标识终结点。

MissingFederationMetadataUrl

联合用户缺少联合元数据 URL。

MissingManagedIdentityEnvVar

托管标识缺少必需的环境变量。

MissingPassiveAuthEndpoint

在颁发机构的 OIDC 配置中找不到被动身份验证终结点

会发生什么情况?

当库转到颁发机构并获取其打开的 ID 连接配置时,它期望找到被动身份验证终结点条目,并且找不到它。

修复

检查为应用程序配置的颁发机构,或传递了支持颁发机构替代的令牌获取令牌的某些替代是否正确
MissingTenantedAuthority

缺少租户颁发机构。 MSAL.NET 要求在生成应用程序时指定 mTLS 的租户颁发机构(即具有租户 ID 的颁发机构),但未提供任何权限。

缓解措施

确保在应用程序配置期间指定租户颁发机构(包括特定租户 ID)。 例如,使用“https://login.microsoftonline.com/{tenantId}”或类似的 URL 结构。
MtlsBearerWithoutRegion

发生了什么情况?

mTLS Bearer 已配置,但未指定区域。

缓解措施

确保使用 mTLS Bearer 时设置 AzureRegion 配置,因为它需要区域终结点。
MtlsCertificateNotProvided

发生了什么情况?

mTLS 所有权证明(mTLS PoP)已配置,但未提供证书。

缓解措施

在使用 mTLS PoP 时,请确保在配置中提供有效的证书,因为安全身份验证需要该证书。
MtlsNotSupportedForManagedIdentity

发生了什么情况?

托管标识身份验证不支持 mTLS。
MtlsPopNotSupportedForEnvironment

发生了什么情况?

指定的主权云环境不支持 mTLS 所有权证明(mTLS PoP)。

缓解措施:

对主权云环境使用支持的备用终结点。
MtlsPopTokenNotSupportedinImdsV1

IMDS V1 不支持 mTLS PoP 令牌。

MtlsPopWithoutRegion

发生了什么情况?

mTLS 所有权证明(mTLS PoP)已配置,但未指定区域。

缓解措施

确保使用 mTLS PoP 时设置 AzureRegion 配置,因为它需要区域终结点。
MultipleAccountsForLoginHint

此错误代码表示发现多个帐户具有相同登录提示,MSAL 无法选择一个帐户。 请用于 WithAccount(IAccount) 指定帐户

MultipleTokensMatchedError

已匹配多个令牌。

会发生什么情况?

如果应用程序管理多个标识,则调用 AcquireTokenSilent(IEnumerable<String>, IAccount) 或其替代之一时,会发生此异常,并且用户令牌缓存包含此客户端应用程序和指定帐户的多个令牌,但来自不同的颁发机构。

缓解 [应用开发]

指定要在获取令牌操作中使用的颁发机构
NetworkNotAvailableError
已过时.

无法执行请求,因为网络已关闭。

缓解 [应用开发]

在应用程序中,可以通知用户存在网络问题或稍后重试
NoAccountForLoginHint

此错误代码表示找不到具有给定登录提示的帐户。

会发生什么情况?

AcquireTokenSilent(IEnumerable<String>, String)或使用WithLoginHint(String)与任何帐户不匹配的参数调用loginHintGetAccountsAsync()

缓解措施

如果确定 loginHint,请调用 AcquireTokenInteractive(IEnumerable<String>)
NoAndroidBrokerAccountFound

MSAL 找不到适合用于中转站的帐户

NoAndroidBrokerInstalledOnDevice

MSAL 找不到代理应用程序对帐户进行身份验证。

NoClientId

会发生什么情况?

尚未设置客户端 ID。

缓解措施

将此 SDK 中的应用程序 ID(GUID)用作此 SDK 中的客户端 ID
NonceRequiredForPopOnPCA

会发生什么情况?

请求已配置所有权证明,但未配置 nonce。 公共客户端的所有权证明需要 nonce

缓解措施

为公共客户端配置所有权证明时,请提供 nonce。
NonHttpsRedirectNotSupported

不支持非 HTTPS 重定向

会发生什么情况?

当授权流(收集用户凭据)重定向到不支持的页面(例如,如果重定向是通过 http 进行的),则会发生此错误。 此错误不会针对最终重定向触发, http://localhost但对于中间重定向。

缓解措施

使用未正确设置的联合目录时,通常会发生这种情况。
NonParsableOAuthError

OAuth2 服务器返回了错误响应,无法对其进行分析

NoPromptFailedError

遇到以下两个条件之一:

  • Prompt.NoPrompt这是在交互式令牌调用中传递的,但由于用户交互是必需的,因此无法遵循该约束,例如,用户需要重新登录、同意更多范围或执行多重身份验证。
  • 在无提示 Web 身份验证期间出错,该错误阻止身份验证流在足够短的时间范围内完成。

补救措施:

调用 AcquireTokenInteractive 以便应用程序的用户登录并接受同意。
NoRedirectUri

无重定向 URI。

会发生什么情况?

需要提供回复 URI/重定向 URI,但尚未调用 WithRedirectUri(String)
NoTokensFoundError

令牌缓存中未找到令牌。

缓解措施:

如果应用程序是调用IPublicClientApplicationAcquireTokenInteractive,以便应用程序的用户登录并接受同意。
  • 如果是 Web 应用,应之前应调用 IConfidentialClientApplication.AcquireTokenByAuthorizationCode,如前所述 https://aka.ms/msal-net-authorization-code. 需要确保已请求正确的范围。 有关详细信息,请参阅 https://github.com/Azure-Samples/ms-identity-aspnetcore-webapp-tutorial
  • 此错误不应在 Web API 中发生
NoUsernameOrAccountIDProvidedForSilentAndroidBrokerAuthentication

无法查询 Android 帐户管理器,因为无提示身份验证请求中未提供用户名或家庭帐户 ID。

NullIntentReturnedFromAndroidBroker

返回 Null 意向,因此无法启动中转站活动

OboCacheKeyNotInCacheError

会发生什么情况?

令牌缓存不包含与传入AcquireTokenInLongRunningProcess(IEnumerable<String>, String)项匹配的 OBO 缓存密钥的longRunningProcessSessionKey令牌。

缓解措施

首先进行呼叫InitiateLongRunningProcessInWebApi(IEnumerable<String>, String, String)或已用longRunningProcessSessionKey过的呼叫AcquireTokenInLongRunningProcess(IEnumerable<String>, String)longRunningProcessSessionKey
ParsingWsMetadataExchangeFailed

分析 WS 元数据Exchange失败。

ParsingWsTrustResponseFailed

如果使用AcquireTokenByUsernamePassword(IEnumerable<String>, String, String)联合用户(由联合 IdP 拥有)而不是在 Azure AD 租户中拥有的托管用户)ID3242,则会出现此错误:无法对安全令牌进行身份验证或授权。 用户不存在或输入了错误的密码

PasswordRequiredForManagedUserError

托管用户需要密码。

会发生什么情况?

如果使用(或用户)未提供密码, AcquireTokenByUsernamePassword(IEnumerable<String>, String, String) 则如果遇到此错误。
PlatformNotSupported

库在不支持的平台上加载。

RedirectUriValidationFailed

RedirectUri 验证失败。

会发生什么情况?

重定向 URI/回复 URI 无效

如何修复

传递有效的重定向 URI。
RegionalAndAuthorityOverride

会发生什么情况?

你在请求级别配置了 WithAuthority,还配置了 WithAzureRegion。 当环境从应用程序更改为请求时,不支持此操作。

缓解措施

请改为在请求级别使用 WithTenantId。
RegionalAuthorityValidation

会发生什么情况?

你配置了区域颁发机构和颁发机构验证。 区域机构目前不支持颁发机构验证。

缓解措施

将 validateAuthority 标志设置为 false 以使用Azure区域颁发机构。 如果从不受信任的源读取颁发机构,例如,从导致 401 响应的 HTTP 请求的 WWWAuthenticate 标头读取颁发机构验证,请不要禁用颁发机构验证。
RegionDiscoveryFailed

区域发现失败。

RegionDiscoveryNotEnabled

会发生什么情况?

WithAzureRegion 设置为 true

缓解措施

无法为 ADFS 颁发机构执行区域发现。
RegionDiscoveryWithCustomInstanceMetadata

会发生什么情况?

已配置区域发现和自定义实例元数据。 自定义元数据取代区域发现。

缓解措施

配置区域发现或自定义实例发现元数据。
RegionRequiredForMtlsPop

发生了什么情况?

mTLS 所有权证明(mTLS PoP)要求指定特定的Azure区域。

缓解措施:

确保使用 mTLS PoP 时设置 AzureRegion 配置,因为它需要区域终结点。
RequestThrottled

服务返回了 HTTP 错误代码 429,指示请求已受到限制。 有关详细信息,请参阅 https://aka.ms/msal-net-throttling

RequestTimeout

对 STS 的 HTTP 请求超时。

缓解措施

可以在延迟后重试。
RopcDoesNotSupportMsaAccounts

资源所有者密码凭据 (ROPC) 授予尝试使用 MSA(Microsoft 个人)帐户。 ROPC 不支持 MSA 帐户。 有关详细信息,请参阅https://aka.ms/msal-net-ropc

ScopesRequired

会发生什么情况?

未请求任何范围

缓解措施

必须为此身份验证流至少指定一个作用域
ServiceNotAvailable

服务不可用,在 500-599 范围内返回的 HTTP 错误代码

缓解措施

可以在延迟后重试。
SetCiamAuthorityAtRequestLevelNotSupported

不支持在请求级别设置 CIAM 颁发机构(例如“{tenantName}.ciamlogin.com”。 必须在创建应用程序期间设置 CIAM 颁发机构。

SSHCertUsedAsHttpHeader

会发生什么情况?

已将 MSAL 配置为从 AAD 请求 SSH 证书,并尝试设置 HTTP 身份验证标头的格式。

缓解措施

SSH 证书不应用作持有者令牌。 开发人员负责将证书发送到目标计算机。
StateMismatchError

从 STS 返回的状态不同于库发送的状态

会发生什么情况?

该库向 STS 发送与请求关联的状态,并期望答复保持一致。 此错误表示答复未与请求关联。 这可能表示尝试重播响应

缓解措施

没有
StaticCacheWithExternalSerialization

会发生什么情况?

你同时通过这些配置了 MSAL 缓存序列化,并使用 WithCacheOptions(CacheOptions) 静态内部缓存是互斥的。

缓解措施

仅使用一个选项。 网站和 Web API 方案应依赖于外部缓存序列化,因为内部缓存序列化无法缩放。 请参见https://aka.ms/msal-net-cca-token-cache-serialization
SystemWebviewOptionsNotApplicable

会发生什么情况?

已将 MSAL 交互式身份验证配置为使用嵌入式 WebView,并且还配置了 SystemWebViewOptions身份验证。 这些是相互排斥的。

缓解措施

设置为 WithUseEmbeddedWebView(Boolean) true 或不使用 WithSystemWebViewOptions(SystemWebViewOptions)
TelemetryConfigOrTelemetryCallback

会发生什么情况?

已配置遥测回调和遥测配置。

缓解措施

只能配置一个遥测机制。
TenantDiscoveryFailedError

租户发现失败。

会发生什么情况?

读取与颁发机构、授权终结点或令牌终结点或颁发者关联的 OpenId 配置时,找不到颁发者

缓解措施

这表示和颁发机构不符合 Open ID Connect。 在应用程序的构造函数中指定不同的颁发机构,或令牌获取替代 ///
TenantOverrideNonAad

会发生什么情况?

你在请求级别配置了 WithTenant,但应用程序使用的是非 AAD 机构,这些机构是互斥的。

缓解措施

WithTenantId 只能与 AAD 颁发机构一起使用。
TokenCacheNullError
已过时.

在应用程序构造函数中未设置用户缓存时,此错误代码从 AcquireTokenSilent(IEnumerable<String>, IAccount) 调用中返回。 在 MSAL.NET 3.x 中,这种情况永远不会发生,因为缓存由应用程序创建

TokenTypeMismatch

会发生什么情况?

你要求输入一种类型的令牌,但未收到该令牌。

缓解措施

如果标识提供者(AAD、B2C、ADFS 等)不支持/实现请求的令牌类型,将发生这种情况。 对于 ADFS,请考虑升级到最新版本。
UapCannotFindDomainUser

无法从 OS (UWP) 访问用户

发生的情况

您调用 AcquireTokenByIntegratedWindowsAuth(IEnumerable<String>),但找不到域名。

缓解措施

这可能是因为你需要在 Package.appxmanifest 中向 UWP 应用程序添加更多功能。 请参见https://aka.ms/msal-net-uwp
UapCannotFindUpn

无法从 OS (UWP) 获取用户

发生的情况

您调用 AcquireTokenByIntegratedWindowsAuth(IEnumerable<String>),但找不到域名。

缓解措施

这可能是因为你需要在 Package.appxmanifest 中向 UWP 应用程序添加更多功能。 请参见https://aka.ms/msal-net-uwp
UnableToParseAuthenticationHeader

MSAL 无法分析从终结点返回的身份验证标头。 这可以是在 WWW-Authenticate 或 Authentication-Info 集合中返回的格式不正确的标头的结果。

UnauthorizedClient

客户端未经授权访问资源。 在启用移动应用管理(MAM)策略时,通常会发生这种情况。 在这种情况下 protection_policy_required ,MSAL 将引发子错误异常。

缓解措施

捕获异常并使用其中的属性从 Intune SDK 获取正确的参数。 IntuneAppProtectionPolicyRequiredException
UnknownBrokerError

出现未知中转站错误。

缓解措施

None. 你可能想要通知最终用户。
UnknownError

发生未知错误。

缓解措施

None. 你可能想要通知最终用户。
UnknownManagedIdentityError

收到未知错误响应。

UnknownUser

发生的情况

使用 AcquireTokenByUsernamePassword(IEnumerable<String>, String, String) IdP 未知用户时,可能会收到此错误

缓解措施

通知用户。 用户提供的登录名可能不正确(例如为空)
UnknownUserType

发生的情况

使用 AcquireTokenByUsernamePassword(IEnumerable<String>, String, String) “用户”无法识别为托管用户或联合用户时,可能会收到此错误。 Azure AD 无法标识需要处理用户的 IdP

缓解措施

通知用户。 用户提供的登录名可能不正确。
UpnRequired

loginHint 应该是 UPN

会发生什么情况?

调用 IPublicClientApplication 了令牌获取操作的替代,该操作采用 loginHint 参数,但此登录提示未使用 UserPrincipalName (UPN) 格式,例如 john.doe@contoso.com 服务预期

Remediation

请确保在代码中强制 loginHint 成为 UPN
UserAssertionNullError

当空用户断言作为UserAssertion参数传递时,此错误代码从AcquireTokenOnBehalfOf(IEnumerable<String>, UserAssertion)调用中返回。

缓解措施

传递用户断言的有效值
UserAssignedManagedIdentityNotConfigurableAtRuntime

用户分配的托管标识在运行时对于 Service Fabric 不可配置。

UserAssignedManagedIdentityNotSupported

此源不支持用户分配的托管标识。

UserMismatch

用户不匹配。

UserNullError

当 null 用户作为account参数传递时,此错误代码从AcquireTokenSilent(IEnumerable<String>, IAccount)调用中返回。 这是因为已将参数设置为 accounts.FirstOrDefault()accounts为空的 AcquireTokenSilentaccount

缓解措施

传递其他帐户或其他调用 AcquireTokenInteractive(IEnumerable<String>)
UserRealmDiscoveryFailed

用户领域发现失败。

ValidateAuthorityOrCustomMetadata

会发生什么情况?

你已配置自己的实例元数据,并且还已将验证颁发机构设置为 true。 这些是相互排斥的。

缓解措施

将验证颁发机构标志设置为 false。 有关详细信息,请参阅 https://aka.ms/msal-net-custom-instance-metadata。
WABError

会发生什么情况?

Windows处理用户与 AAD 之间的交互的身份验证代理失败。

缓解措施

有关更多详细信息,请参阅错误消息。
WamFailedToSignout

WAM 注销失败。

WamInteractiveError

调用 AcquireTokenInteractive 时可能发生的 WAM 服务异常

WamNoB2C

Windows代理(WAM)仅与“工作和学校”帐户和Microsoft帐户一起受支持。

WamPickerError

调用 AcquireTokenInteractive 并弹出帐户选取器时可能发生的 WAM 服务异常

WamScopesRequired

会发生什么情况?

未请求任何范围

缓解措施

必须为 MSAL 运行时 WAM 至少指定一个范围
WamUiThread

使用 WAM 代理调用 AcquireTokenInteractive 时,必须从 UI 线程进行调用。

WebView2LoaderNotFound

会发生什么情况?

无法启动嵌入的 WebView2 浏览器,因为无法加载运行时组件。

缓解措施

有关故障排除详细信息,请参阅 https://aka.ms/msal-net-webview2 。
WebView2NotInstalled

会发生什么情况?

由于缺少运行时组件,因此无法启动嵌入式浏览器。

缓解措施

嵌入式浏览器需要安装 WebView2 运行时。 应用的最终用户可以从应用下载并安装 WebView2 运行时 https://go.microsoft.com/fwlink/p/?LinkId=2124703 ,然后重新启动该应用。 应用开发人员可以 获取 WebView2 运行时的可分发版本
WebviewUnavailable

所选的 WebView 在此平台上不可用。 可以使用 切换到其他 WebView 。 有关详细信息,请参阅https://aka.ms/msal-net-os-browser

WsTrustEndpointNotFoundInMetadataDocument

在元数据文档中找不到 WS-Trust 终结点。

适用于