MsalError 클래스

정의

MsalException에서 속성으로 반환된 오류 코드

public static class MsalError
type MsalError = class
Public Class MsalError
상속
MsalError

필드

Name Description
AccessDenied

액세스가 거부되었습니다.

AccessingWsMetadataExchangeFailed

WS 메타데이터 Exchange 액세스하지 못했습니다.

어떻게 되나요?

사용 AcquireTokenByUsernamePassword(IEnumerable<String>, String, String) 하려고 했고 계정이 페더레이션된 계정입니다.

완화 방법

없음. WS 메타데이터를 찾을 수 없거나 예상한 것과 일치하지 않습니다.
AccessTokenTypeMissing

어떻게 되나요?

토큰 엔드포인트의 응답에 token_type 매개 변수가 포함되어 있지 않습니다.

완화 방법

ID 공급자(AAD, B2C, ADFS 등)가 토큰 응답에 액세스 토큰 형식을 포함하지 않은 경우에 발생합니다. ID 공급자의 구성을 확인합니다.
ActivityRequired

Android에서는 활동 전달을 호출 AcquireTokenInteractiveParameterBuilder.WithParentActivityOrWindow(object) 해야 합니다. https://aka.ms/msal-interactive-android을 참조하십시오.

AdfsNotSupportedWithBroker

어떻게 되나요?

Broker는 ADFS 기관으로 구성되지만 ADFS 환경을 지원하지 않습니다.

완화 방법

Broker는 ADFS 환경을 지원하지 않습니다.
AndroidBrokerOperationFailed

Android Broker 작업을 완료하지 못했습니다.

AndroidBrokerSignatureVerificationFailed

Android Broker 서명의 유효성을 검사하지 못했습니다.

AuthenticationCanceledError

인증이 취소되었습니다.

어떻게 되나요?

예를 들어 인증 대화 상자를 닫아 인증을 취소했습니다.

완화 방법

없음, 보호된 API를 호출하는 토큰을 가져올 수 없습니다. 사용자에게 알릴 수 있습니다.
AuthenticationFailed

인증에 실패했습니다.

어떻게 되나요?

인증에 실패했습니다. 예를 들어 사용자가 올바른 암호를 입력하지 않은 경우

완화 방법

사용자에게 다시 시도하도록 알릴 수 있습니다.
AuthenticationUiFailed

UI 흐름에서 알 수 없는 오류로 인해 요청을 수행할 수 없습니다.*

완화 방법

사용자에게 알릴 수 있습니다.
AuthenticationUiFailedError

UI 흐름의 오류로 인해 요청을 수행할 수 없습니다.

어떻게 되나요?

라이브러리가 대화형 인증을 수행하는 데 필요한 웹 보기를 호출하지 못했습니다. 예외에는 이유가 포함될 수 있습니다.

완화 방법

예외에 이유가 포함된 경우 사용자에게 알릴 수 있습니다. 예를 들어 Chrome 탭을 구현하는 브라우저가 Android 휴대폰에 없을 수 있습니다(예: 이 예외는 다른 플랫폼에도 적용될 수 있음).
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 표준을 준수하지 않거나 보안 문제가 있을 수 있기 때문일 수 있습니다.

완화 방법

다른 권한을 사용합니다. 인증 기관을 신뢰할 수 있다고 확신하는 경우 매개 변수 false 전달 validateAuthority 을 사용할 WithAuthority(AadAuthorityAudience, Boolean) 수 있습니다(권장하지 않음).
B2CAuthorityHostMismatch

B2C 기관 호스트는 클라이언트 애플리케이션을 만들 때 사용되는 호스트와 동일하지 않습니다.

BrokerApplicationRequired

어떻게 되나요?

broker 애플리케이션이 필요하지만 브로커 애플리케이션을 찾거나 통신할 수 없습니다.

완화 방법

애플리케이션 저장소에서 Authenticator와 같은 Broker 애플리케이션 설치
BrokerDoesNotSupportPop

어떻게 되나요?

요청에 broker가 활성화되고 소유 증명이 구성되었지만 브로커는 소유 증명을 지원하지 않습니다.

완화 방법

Windows에서 공용 클라이언트에 대한 소유 증명만 구성합니다.
BrokerNonceMismatch

broker 응답 nonce가 iOS broker >= v6.3.19에 대해 MSAL.NET 보낸 요청 nonce와 일치하지 않습니다.

BrokerRequiredForPop

어떻게 되나요?

요청에 소유 증명이 구성되었지만 broker를 사용하도록 설정하지 않았습니다. Broker는 공용 클라이언트에서 소유 증명을 사용해야 합니다.

완화 방법

소유 증명이 구성되면 broker를 사용하도록 설정합니다.
BrokerResponseHashMismatch

Broker 응답 해시가 일치하지 않음

BrokerResponseReturnedError

Broker 응답에서 오류를 반환했습니다.

CannotAccessUserInformationOrUserNotDomainJoined

사용자 정보에 액세스할 수 없거나 사용자가 사용자 도메인이 아닙니다.

어떻게 되나요?

사용 AcquireTokenByIntegratedWindowsAuth(IEnumerable<String>) 하려고 했지만 사용자가 도메인 사용자가 아닙니다(컴퓨터가 도메인이 아니거나 AAD 조인됨).
CannotInvokeBroker

MSAL은 broker를 호출할 수 없습니다. 가능한 이유는 broker가 사용자의 디바이스에 설치되지 않았거나 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분 후).

완화 방법

없음. 제공된 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

CustomWebUI가 URI를 반환할 때 사용되는 오류 코드이지만 구성된 리디렉션 URI의 Authority 및 AbsolutePath와 일치하지 않습니다.

CustomWebUiReturnedInvalidUri

URI를 반환할 ICustomWebUi 때 사용되는 오류 코드이지만 유효하지 않습니다. null이거나 코드가 없습니다. 코드가 포함된 URI를 가로챌 수 없는 경우 예외를 throw하는 것이 좋습니다.

DefaultRedirectUriIsInvalid

RedirectUri 유효성 검사에 실패했습니다.

DeviceCertificateNotFound

디바이스 인증서를 찾을 수 없습니다.

DuplicateQueryParameterError

중복 쿼리 매개 변수가 extraQueryParameters에서 발견되었습니다.

어떻게 되나요?

공용 클라이언트 및 기밀 클라이언트 애플리케이션에서 토큰 획득 작업의 재정의를 사용 extraQueryParameter 했으며 URL에 이미 있는 매개 변수를 전달하고 있습니다(다른 방법으로 토큰을 사용했거나 라이브러리에서 추가했기 때문).

완화 [앱 개발]

토큰 획득 재정의에서 중복 매개 변수를 RemoveAccount합니다.
EncodedTokenTooLong

인코딩된 토큰이 너무 깁니다.

어떻게 되나요?

기밀 클라이언트 애플리케이션 호출에서 MSAL에서 빌드된 클라이언트 어설션은 JWT 토큰에 대해 가능한 최대 길이보다 깁니다.
ExactlyOneScopeExpected

정확히 하나의 범위가 필요합니다.

ExperimentalFeature

어떻게 되나요?

실험적으로 표시된 기능을 사용하려고 합니다.

완화 방법

PublicClientApplication 또는 ConfidentialClientApplication을 만들 때 사용합니다. WithExperimentalFeatures() 옵션입니다. 자세한 내용은 https://aka.ms/msal-net-experimental-features를 참조하세요.
FailedToAcquireTokenSilentlyFromBroker

토큰을 자동으로 획득하지 못했습니다. broker 시나리오에서 사용됩니다.

어떻게 되나요?

사용자가 호출 AcquireTokenSilent(IEnumerable<String>, IAccount) 하거나 AcquireTokenSilent(IEnumerable<String>, String) 모바일(Xamarin) 애플리케이션이 broker(Microsoft Authenticator 또는 Microsoft 회사 포털)를 활용하지만 broker는 토큰을 자동으로 획득할 수 없습니다.

완화 방법

AcquireTokenInteractive(IEnumerable<String>)을(를) 호출하십시오.
FailedToGetBrokerResponse

어떻게 되나요?

broker를 사용하여 인증하려고 하지만 MSAL이 broker의 응답을 읽을 수 없습니다.

완화 방법

현재 설치된 broker는 MSAL을 지원하지 않을 수 있습니다. Xamarin Intune 회사 포털(5.0.4689.0 이상) 또는 Microsoft Authenticator(6.2001.0140 이상)를 설치했는지 확인해야 합니다. "를 참조하세요 https://aka.ms/Brokered-Authentication-for-Android.
FailedToRefreshToken

토큰을 새로 고치지 못했습니다.

어떻게 되나요?

토큰을 새로 고칠 수 없습니다. 이는 사용자가 오랫동안 애플리케이션을 사용하지 않았기 때문일 수 있습니다. 따라서 토큰 캐시에 유지 관리되는 새로 고침 토큰이 만료되었습니다.

완화 방법

대화형 작업을 지원하는 공용 클라이언트 애플리케이션에 있는 경우 대화형 요청을 AcquireTokenInteractive(IEnumerable<String>)보냅니다. 그렇지 않으면 다른 메서드를 사용하여 토큰을 획득합니다.
FederatedServiceReturnedError

페더레이션 서비스가 오류를 반환했습니다.

완화 방법

없음. 페더레이션된 서비스가 오류를 반환했습니다. 오류를 더 잘 이해하기 위해 예외 본문을 살펴보고 완화를 선택할 수 있습니다.
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를 노출해야 하므로 사용자가 대화형 로그인을 수행하여 업데이트된 클레임이 있는 토큰을 가져올 수 있음을 나타냅니다.

완화 방법:

애플리케이션이 호출 AcquireTokenInteractiveIPublicClientApplication 경우 대화형 인증을 수행합니다. 애플리케이션이 ConfidentialClientApplication 예외의 클레임 멤버가 비어 있지 않을 가능성이 있는 경우 올바른 완화 방법은 참조 Claims 하세요.
InternalCacheDisabled

무슨 일이 일어났나요?

캐시 종속 API가 호출되었지만 MSAL의 내부 토큰 캐시는 .DisableInternalCacheOptions 이 문제는 다음과 같은 AcquireTokenSilent(IEnumerable<String>, IAccount) API에서 발생할 수 있습니다 AcquireTokenInLongRunningProcess(...).

완화 방법

MSAL의 내부 캐시(예: AcquireTokenByRefreshToken(IEnumerable<String>, String) 가져온 새로 고침 토큰)에 의존하지 않는 인증 흐름을 사용하거나 애플리케이션에 GetRefreshToken(AuthenticationResult)적합한 다른 대화형 흐름을 사용합니다.
InternalError

내부 오류

InvalidAdalCacheMultipleRTs

어떻게 되나요?

ADAL 캐시는 한 사용자에 대한 여러 새로 고침 토큰 항목을 포함하기 때문에 유효하지 않습니다.

완화 방법

ADAL 캐시를 삭제합니다. ADAL 캐시를 유지 관리하지 않는 경우 MSAL의 버그일 수 있습니다.
InvalidAuthority

잘못된 권한

어떻게 되나요?

라이브러리가 권한을 검색하고 토큰을 획득하는 데 필요한 엔드포인트를 가져오려고 하면 권한이 없는 HTTP 코드 또는 예기치 않은 응답이 표시됩니다.

수정

애플리케이션에 대해 구성되었거나 권한 재정의를 지원하는 토큰 획득 토큰의 일부 재정의에 전달된 기관이 올바른지 확인합니다.
InvalidAuthorityType

잘못된 권한 유형입니다. MSAL.NET 애플리케이션이 빌드될 때 지정된 기관과 상호 작용하는 방법을 모릅니다.

완화 방법

다른 기관 사용
InvalidAuthorizationUri

권한 부여 URI가 가로채졌지만 구문 분석할 수 없습니다. 자세한 내용은 로그를 참조하세요.

InvalidCertificate

Imds 서버에서 받은 인증서가 잘못되었습니다.

InvalidClient

구성 문제를 나타내는 AD 서비스 오류를 Azure.

완화 방법

자세한 내용은 오류 메시지를 참조한 다음 앱 등록 포털에서 수정 작업을 수행합니다. 자세한 내용은 참조하세요 https://aka.ms/msal-net-invalid-client .
InvalidClientAssertion

대리자가 WithClientAssertion JWT 문자열을 제공하거나 빈 경우 반환됩니다 null .

완화

대리자가 비어있지 않은 base-64로 인코딩된 JWT를 반환하는지 확인합니다.
InvalidClientCredentialConfiguration

어떻게 되나요?

정적 인증서(WithCertificate(X509Certificate2))와 동적 인증서 공급자(WithCertificate(Func))를 모두 구성했습니다.

완화 방법

클라이언트 인증서를 제공하기 위한 한 가지 방법을 선택합니다.
InvalidCredentialMaterial

무슨 일이 일어났나요?

구성된 자격 증명 형식은 요청된 인증 모드와 호환되지 않습니다. 예를 들어 mTLS 소유 증명과 SendCertificateOverMtls 함께 클라이언트 암호를 사용할 수 없거나 mTLS에 토큰을 TLS 전송에 바인딩하는 인증서가 필요하기 때문입니다.

완화 방법:

mTLS 소유 증명이 필요한 경우와 함께 TokenBindingCertificate 반환 ClientSignedAssertion 하는 대리자를 통해 WithCertificate()인증서 기반 자격 증명을 사용합니다.
InvalidGrantError

표준 OAuth2 프로토콜 오류 코드입니다. 새 토큰을 가져오기 위해 사용자가 대화형 작업을 수행하도록 애플리케이션이 사용자에게 UI를 노출해야 했음을 나타냅니다.

완화 방법:

애플리케이션이 호출 AcquireTokenInteractiveIPublicClientApplication 경우 대화형 인증을 수행합니다. 애플리케이션이 ConfidentialClientApplication 예외의 클레임 멤버가 비어 있지 않을 가능성이 있는 경우 올바른 완화 방법은 참조 MsalServiceException.Claims 하세요.
InvalidInstance

구성된 기관이 존재하지 않음을 나타내는 AAD 서비스 오류

InvalidJsonClaimsFormat

어떻게 되나요?

클레임 요청을 구성했지만 클레임 문자열이 JSON 형식이 아닙니다.

완화 방법

클레임 매개 변수가 유효한 JSON인지 확인합니다. JSON 구문 분석에 대한 자세한 내용은 내부 예외를 검사합니다.
InvalidJwtError

JWT가 잘못되었습니다.

어떻게 되나요?

라이브러리에 JWT(예: 캐시의 토큰 또는 STS에서 받은 토큰)가 필요했지만 형식이 잘못되었습니다.

완화 방법

토큰 캐시가 변조되지 않았는지 확인합니다.
InvalidManagedIdentityEndpoint

관리 ID 엔드포인트가 잘못되었습니다.

InvalidManagedIdentityIdType

관리 ID의 원본은 특정 ID 형식을 선택하지 않습니다.

InvalidManagedIdentityResponse

관리 ID 응답에서 필수 값이 누락되었습니다.

InvalidOwnerWindowType

소유자 창 유형이 잘못되었습니다.

어떻게 되나요?

사용 "AcquireTokenInteractiveParameterBuilder.WithParentActivityOrWindow(object) 했지만 전달한 매개 변수가 잘못되었습니다.

Remediation

.NET Standard에서 예상된 개체는 Activity Android, iOS, UIViewControllerNSWindow MAC 및 IWin32WindowIntPr Windows. WPF 애플리케이션에 있는 경우 WPF 컨트롤과 연결된 창 핸들을 가져오는 데 사용할 WindowInteropHelper(wpfControl).Handle 수 있습니다.
InvalidRequest

요청이 잘못되었습니다.

어떻게 되나요?

이는 권한과 호환되지 않는 토큰 획득 방법을 사용하고 있기 때문에 발생할 수 있습니다. 예를 들어 호출 AcquireTokenByUsernamePassword(IEnumerable<String>, String, String) 했지만 테넌트 기관 또는 '/조직'이 필요하므로 '/common' 또는 '/consumers'로 끝나는 권한을 사용했습니다.

완화 방법

권한을 사용하는 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

모든 관리 ID 원본을 사용할 수 없습니다.

ManagedIdentityRequestFailed

관리 ID 오류 응답이 수신되었습니다.

ManagedIdentityResponseParseFailure

관리 ID 오류 응답이 수신되었습니다.

ManagedIdentityUnreachableNetwork

관리 ID 엔드포인트에 연결할 수 없습니다.

MissingFederationMetadataUrl

페더레이션된 사용자에 대한 페더레이션 메타데이터 URL이 없습니다.

MissingManagedIdentityEnvVar

관리 ID에 필요한 환경 변수가 없습니다.

MissingPassiveAuthEndpoint

인증 기관의 OIDC 구성에서 수동 인증 엔드포인트를 찾을 수 없습니다.

어떻게 되나요?

라이브러리가 인증 기관으로 이동하여 오픈 ID 연결 구성을 가져오면 수동 인증 엔드포인트 항목을 찾을 것으로 예상되며 찾을 수 없습니다.

수정

애플리케이션에 대해 구성되었거나 권한 재정의를 지원하는 토큰 획득 토큰의 일부 재정의에 전달된 기관이 올바른지 확인합니다.
MissingTenantedAuthority

테넌트 기관이 없습니다. MSAL.NET 애플리케이션을 빌드할 때 mTLS를 지정하려면 테넌트 기관(즉, 테넌트 ID가 있는 기관)이 필요하지만 제공되지 않았습니다.

완화 방법

애플리케이션 구성 중에 특정 테넌트 ID를 포함하는 테넌트 기관이 지정되었는지 확인합니다. 예를 들어 "https://login.microsoftonline.com/{tenantId}" 또는 유사한 URL 구조를 사용합니다.
MtlsBearerWithoutRegion

무슨 일이 일어났나요?

mTLS 전달자가 구성되었지만 지역이 지정되지 않았습니다.

완화 방법

지역별 엔드포인트가 필요하므로 mTLS 전달자를 사용할 때 AzureRegion 구성이 설정되었는지 확인합니다.
MtlsCertificateNotProvided

무슨 일이 일어났나요?

mTLS 소유 증명(mTLS PoP)이 구성되었지만 인증서가 제공되지 않았습니다.

완화 방법

보안 인증에 필요하기 때문에 mTLS PoP를 사용할 때 구성에 유효한 인증서가 제공되는지 확인합니다.
MtlsNotSupportedForManagedIdentity

무슨 일이 일어났나요?

mTLS는 관리 ID 인증에 지원되지 않습니다.
MtlsPopNotSupportedForEnvironment

무슨 일이 일어났나요?

mTLS PoP(mTLS 소유 증명)는 지정된 소버린 클라우드 환경에 대해 지원되지 않습니다.

완화 방법:

소버린 클라우드 환경에 지원되는 대체 엔드포인트를 사용합니다.
MtlsPopTokenNotSupportedinImdsV1

mTLS PoP 토큰은 IMDS V1에서 지원되지 않습니다.

MtlsPopWithoutRegion

무슨 일이 일어났나요?

mTLS PoP(mTLS 소유 증명)가 구성되었지만 지역이 지정되지 않았습니다.

완화 방법

지역별 엔드포인트가 필요하므로 mTLS PoP를 사용할 때 AzureRegion 구성이 설정되었는지 확인합니다.
MultipleAccountsForLoginHint

이 오류 코드는 로그인 힌트가 동일한 여러 계정이 발견되었으며 MSAL이 하나를 선택할 수 없음을 표시합니다. 계정을 지정하는 데 사용 WithAccount(IAccount) 하세요.

MultipleTokensMatchedError

여러 토큰이 일치했습니다.

어떻게 되나요?

이 예외는 여러 ID를 관리하는 애플리케이션의 경우, 해당 재정의 중 하나를 호출 AcquireTokenSilent(IEnumerable<String>, IAccount) 하거나 사용자 토큰 캐시에 이 클라이언트 애플리케이션 및 지정된 계정에 대한 여러 토큰을 포함하지만 다른 기관에서 발생하는 경우에 발생합니다.

완화 [앱 개발]

토큰 획득 작업에 사용할 권한을 지정합니다.
NetworkNotAvailableError
사용되지 않음.

네트워크가 중단되었으므로 요청을 수행할 수 없습니다.

완화 [앱 개발]

애플리케이션에서 네트워크 문제가 있음을 사용자에게 알리거나 나중에 다시 시도할 수 있습니다.
NoAccountForLoginHint

이 오류 코드는 지정된 로그인 힌트가 있는 계정이 없음을 표시합니다.

어떻게 되나요?

AcquireTokenSilent(IEnumerable<String>, String) 또는 WithLoginHint(String)loginHint 에서 계정과 일치하지 않는 매개 변수를 사용하여 호출되었습니다. GetAccountsAsync()

완화 방법

loginHint에 대해 확실한 경우 호출합니다. AcquireTokenInteractive(IEnumerable<String>)
NoAndroidBrokerAccountFound

MSAL이 broker와 함께 사용할 적합한 계정을 찾을 수 없습니다.

NoAndroidBrokerInstalledOnDevice

MSAL은 계정을 인증할 브로커 애플리케이션을 찾을 수 없습니다.

NoClientId

어떻게 되나요?

클라이언트 ID를 설정하지 않았습니다.

완화 방법

애플리케이션 포털의 애플리케이션 ID(GUID)를 이 SDK의 클라이언트 ID로 사용
NonceRequiredForPopOnPCA

어떻게 되나요?

요청에 소유 증명이 구성되었지만 nonce가 구성되지 않았습니다. 공용 클라이언트의 소유 증명에는 nonce가 필요합니다.

완화 방법

공용 클라이언트에 대해 소유 증명이 구성된 경우 nonce를 제공합니다.
NonHttpsRedirectNotSupported

HTTPS가 아닌 리디렉션은 지원되지 않습니다.

어떻게 되나요?

이 오류는 사용자 자격 증명을 수집하는 권한 부여 흐름이 지원되지 않는 페이지로 리디렉션될 때 발생합니다(예: http를 통해 리디렉션이 발생하는 경우). 이 오류는 최종 리디렉션에 대해 트리거되지 않습니다. 이 오류는 중간 리디렉션일 수 있습니다 http://localhost.

완화 방법

이는 일반적으로 올바르게 설정되지 않은 페더레이션된 디렉터리를 사용할 때 발생합니다.
NonParsableOAuthError

OAuth2 서버에서 오류 응답이 반환되었으며 구문 분석할 수 없습니다.

NoPromptFailedError

다음 두 조건 중 하나가 발생했습니다.

  • Prompt.NoPrompt 대화형 토큰 호출에서 전달되었지만, 예를 들어 사용자가 다시 로그인하거나, 더 많은 범위에 동의하거나, 다단계 인증을 수행해야 하기 때문에 사용자 상호 작용이 필요하기 때문에 제약 조건을 적용할 수 없습니다.
  • 자동 웹 인증 중에 오류가 발생하여 인증 흐름이 짧은 시간 안에 완료되지 못했습니다.

수정:

애플리케이션의 사용자가 로그인하고 동의를 수락하도록 호출 AcquireTokenInteractive 합니다.
NoRedirectUri

리디렉션 URI가 없습니다.

어떻게 되나요?

회신 URI/리디렉션 URI를 제공해야 하지만 호출하지 않았습니다. WithRedirectUri(String)
NoTokensFoundError

토큰 캐시에서 토큰을 찾을 수 없습니다.

완화 방법:

애플리케이션 IPublicClientApplication 사용자가 로그인하여 동의를 수락하도록 애플리케이션이 호출 AcquireTokenInteractive 인 경우
  • 웹앱인 경우 앞에서 설명한 대로 IConfidentialClientApplication.AcquireTokenByAuthorizationCode를 호출해야 합니다. https://aka.ms/msal-net-authorization-code. 올바른 범위를 요청했는지 확인해야 합니다. 자세한 내용은 다음을 참조하세요. https://github.com/Azure-Samples/ms-identity-aspnetcore-webapp-tutorial
  • 이 오류는 웹 API에서 발생하지 않아야 합니다.
NoUsernameOrAccountIDProvidedForSilentAndroidBrokerAuthentication

자동 인증 요청에 사용자 이름 또는 홈 계정 ID가 제공되지 않으므로 Android 계정 관리자를 쿼리할 수 없습니다.

NullIntentReturnedFromAndroidBroker

Broker 작업을 시작할 수 없도록 Null 의도가 반환되었습니다.

OboCacheKeyNotInCacheError

어떻게 되나요?

토큰 캐시에는 전달된 토큰과 일치하는 OBO 캐시 키가 있는 토큰이 longRunningProcessSessionKeyAcquireTokenInLongRunningProcess(IEnumerable<String>, String)포함되어 있지 않습니다.

완화 방법

먼저 이 longRunningProcessSessionKey 호출을 호출 InitiateLongRunningProcessInWebApi(IEnumerable<String>, String, String) 하거나 AcquireTokenInLongRunningProcess(IEnumerable<String>, String) 이미 사용된 longRunningProcessSessionKey호출을 사용합니다.
ParsingWsMetadataExchangeFailed

WS 메타데이터 Exchange 구문 분석하지 못했습니다.

ParsingWsTrustResponseFailed

페더레이션된 사용자(Azure AD 테넌트에서 소유한 관리되는 사용자와 달리 페더레이션된 IdP가 소유함) ID3242를 사용할 AcquireTokenByUsernamePassword(IEnumerable<String>, String, String) 때 이 오류가 발생할 수 있습니다. 보안 토큰을 인증하거나 권한을 부여할 수 없습니다. 사용자가 없거나 잘못된 암호를 입력했습니다.

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 PoP(mTLS 소유 증명)를 사용하려면 특정 Azure 지역을 지정해야 합니다.

완화 방법:

지역별 엔드포인트가 필요하므로 mTLS PoP를 사용할 때 AzureRegion 구성이 설정되었는지 확인합니다.
RequestThrottled

서비스에서 요청이 제한되었음을 나타내는 HTTP 오류 코드 429를 반환했습니다. 자세한 내용은 를 참조하세요. https://aka.ms/msal-net-throttling

RequestTimeout

STS에 대한 HTTP 요청 시간이 초과되었습니다.

완화 방법

지연 후에 다시 시도할 수 있습니다.
RopcDoesNotSupportMsaAccounts

MSA(Microsoft 개인) 계정으로 시도된 ROPC(리소스 소유자 암호 자격 증명) 권한 부여 ROPC는 MSA 계정을 지원하지 않습니다. 자세한 내용은 https://aka.ms/msal-net-ropc를 참조하세요.

ScopesRequired

어떻게 되나요?

요청된 범위가 없습니다.

완화 방법

이 인증 흐름에 대해 하나 이상의 범위를 지정해야 합니다.
ServiceNotAvailable

서비스를 사용할 수 없으며 500-599 범위 내에서 HTTP 오류 코드가 반환됨

완화 방법

지연 후에 다시 시도할 수 있습니다.
SetCiamAuthorityAtRequestLevelNotSupported

요청 수준에서 CIAM 기관(예: "{tenantName}.ciamlogin.com")을 설정하는 것은 지원되지 않습니다. 애플리케이션을 만드는 동안 CIAM 기관을 설정해야 합니다.

SSHCertUsedAsHttpHeader

어떻게 되나요?

AAD에서 SSH 인증서를 요청하도록 MSAL을 구성했으며 HTTP 인증 헤더의 형식을 지정하려고 합니다.

완화 방법

SSH 인증서는 전달자 토큰으로 사용해서는 안 됩니다. 개발자는 인증서를 대상 머신으로 보낼 책임이 있습니다.
StateMismatchError

STS에서 반환된 상태는 라이브러리에서 보낸 상태와 다릅니다.

어떻게 되나요?

라이브러리는 요청에 연결된 상태를 STS에 보내고 회신이 일관될 것으로 예상합니다. 이 오류는 회신이 요청과 연결되지 않음을 나타냅니다. 이는 응답을 재생하려는 시도를 나타낼 수 있습니다.

완화 방법

None
StaticCacheWithExternalSerialization

어떻게 되나요?

이러한 항목을 통해 WithCacheOptions(CacheOptions) 정적 내부 캐시와 동시에 MSAL 캐시 serialization을 구성한 것은 상호 배타적입니다.

완화 방법

하나의 옵션만 사용합니다. 내부 캐시 serialization의 크기를 조정할 수 없으므로 웹 사이트 및 웹 API 시나리오는 외부 캐시 serialization을 사용해야 합니다. https://aka.ms/msal-net-cca-token-cache-serialization을 참조하십시오.
SystemWebviewOptionsNotApplicable

어떻게 되나요?

포함된 WebView를 사용하도록 MSAL 대화형 인증을 구성했으며 또한 구성 SystemWebViewOptions했습니다. 이는 상호 배타적입니다.

완화 방법

true로 설정 WithUseEmbeddedWebView(Boolean) 하거나 사용하지 않음 WithSystemWebViewOptions(SystemWebViewOptions)
TelemetryConfigOrTelemetryCallback

어떻게 되나요?

원격 분석 콜백과 원격 분석 구성을 모두 구성했습니다.

완화 방법

하나의 원격 분석 메커니즘만 구성할 수 있습니다.
TenantDiscoveryFailedError

테넌트 검색에 실패했습니다.

어떻게 되나요?

권한, 권한 부여 엔드포인트 또는 토큰 엔드포인트와 연결된 OpenId 구성을 읽는 동안 또는 발급자를 찾을 수 없습니다.

완화 방법

이는 Open ID Connect 규격이 아닌 권한 및 권한을 나타냅니다. 애플리케이션 생성자에서 다른 기관을 지정하거나 토큰 획득 재정의 ////를 지정합니다.
TenantOverrideNonAad

어떻게 되나요?

요청 수준에서 WithTenant를 구성했지만 애플리케이션이 AAD가 아닌 기관을 사용하고 있습니다. 이는 상호 배타적입니다.

완화 방법

WithTenantId는 AAD 기관과 함께만 사용할 수 있습니다.
TokenCacheNullError
사용되지 않음.

이 오류 코드는 애플리케이션 생성자에서 AcquireTokenSilent(IEnumerable<String>, IAccount) 사용자 캐시가 설정되지 않은 경우 호출에서 반환됩니다. 애플리케이션에서 캐시를 만들 때 MSAL.NET 3.x에서는 이런 일이 발생하지 않습니다.

TokenTypeMismatch

어떻게 되나요?

한 가지 유형의 토큰을 요청했지만 받지 못했습니다.

완화 방법

ID 공급자(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(모바일 앱 관리) 정책을 사용할 때 발생합니다. 이 경우 MSAL은 하위 오류와 함께 protection_policy_required 예외를 throw합니다.

완화 방법

예외를 catch하고 그 안에 있는 속성을 사용하여 Intune SDK에서 올바른 매개 변수를 가져옵니다. IntuneAppProtectionPolicyRequiredException
UnknownBrokerError

알 수 없는 broker 오류가 발생했습니다.

완화 방법

없음. 최종 사용자에게 알리는 것이 좋습니다.
UnknownError

알 수 없는 오류가 발생했습니다.

완화 방법

없음. 최종 사용자에게 알리는 것이 좋습니다.
UnknownManagedIdentityError

알 수 없는 오류 응답이 수신되었습니다.

UnknownUser

어떻게 되나요?

IdP에서 사용자를 알 수 없는 경우 AcquireTokenByUsernamePassword(IEnumerable<String>, String, String) 이 오류가 발생할 수 있습니다.

완화 방법

사용자에게 알릴 수 있습니다. 사용자가 제공한 로그인이 올바르지 않을 수 있습니다(예: 비어 있음).
UnknownUserType

어떻게 되나요?

사용자가 관리되는 사용자 또는 페더레이션된 사용자로 인식되지 않는 경우 AcquireTokenByUsernamePassword(IEnumerable<String>, String, String) 이 오류가 발생할 수 있습니다. Azure AD에서 사용자를 처리해야 하는 IdP를 식별할 수 없습니다.

완화 방법

사용자에게 알릴 수 있습니다. 사용자가 제공한 로그인이 올바르지 않을 수 있습니다.
UpnRequired

loginHint는 UPN이어야 합니다.

어떻게 되나요?

매개 변수로 사용하는 loginHint 토큰 획득 작업의 재정의가 호출 IPublicClientApplication 되었지만 이 로그인 힌트는 서비스에서 예상하는 UPN(UserPrincipalName) 형식을 사용하지 않았습니다. john.doe@contoso.com

Remediation

코드에서 UPN으로 적용 loginHint 해야 합니다.
UserAssertionNullError

이 오류 코드는 null 사용자 어설션이 매개 변수로 UserAssertion 전달될 때 호출에서 AcquireTokenOnBehalfOf(IEnumerable<String>, UserAssertion) 반환됩니다.

완화 방법

사용자 어설션에 유효한 값 전달
UserAssignedManagedIdentityNotConfigurableAtRuntime

사용자 할당 관리 ID는 서비스 패브릭에 대해 런타임에 구성할 수 없습니다.

UserAssignedManagedIdentityNotSupported

사용자가 할당한 관리 ID는 이 원본에 대해 지원되지 않습니다.

UserMismatch

사용자 불일치입니다.

UserNullError

이 오류 코드는 null 사용자가 매개 변수로 account 전달될 때 호출에서 AcquireTokenSilent(IEnumerable<String>, IAccount) 반환됩니다. 매개 변수가 설정되어 있지만 accounts 비어 있는 AcquireTokenSilent accountaccounts.FirstOrDefault() 호출했기 때문일 수 있습니다.

완화 방법

다른 계정 전달 또는 다른 호출 AcquireTokenInteractive(IEnumerable<String>)
UserRealmDiscoveryFailed

사용자 영역 검색에 실패했습니다.

ValidateAuthorityOrCustomMetadata

어떻게 되나요?

사용자 고유의 인스턴스 메타데이터를 구성했으며 유효성 검사 권한도 true로 설정했습니다. 이는 상호 배타적입니다.

완화 방법

유효성 검사 기관 플래그를 false로 설정합니다. 자세한 내용은 https://aka.ms/msal-net-custom-instance-metadata를 참조하세요.
WABError

어떻게 되나요?

사용자와 AAD 간의 상호 작용을 처리하는 Windows 인증 브로커가 실패했습니다.

완화 방법

자세한 내용은 오류 메시지를 참조하세요.
WamFailedToSignout

WAM 로그아웃에 실패했습니다.

WamInteractiveError

AcquireTokenInteractive를 호출할 때 발생할 수 있는 WAM 서비스 예외

WamNoB2C

WAM(Windows Broker)은 "회사 및 학교" 계정 및 Microsoft 계정과 함께만 지원됩니다.

WamPickerError

AcquireTokenInteractive를 호출하고 계정 선택기가 팝업되면 발생할 수 있는 WAM 서비스 예외

WamScopesRequired

어떻게 되나요?

요청된 범위가 없습니다.

완화 방법

MSAL 런타임 WAM에 대해 하나 이상의 범위를 지정해야 합니다.
WamUiThread

WAM broker를 사용하여 AcquireTokenInteractive를 호출할 때는 UI 스레드에서 호출해야 합니다.

WebView2LoaderNotFound

어떻게 되나요?

런타임 구성 요소를 로드할 수 없으므로 포함된 WebView2 브라우저를 시작할 수 없습니다.

완화 방법

문제 해결 세부 정보는 다음을 참조하세요 https://aka.ms/msal-net-webview2 .
WebView2NotInstalled

어떻게 되나요?

런타임 구성 요소가 없기 때문에 포함된 브라우저를 시작할 수 없습니다.

완화 방법

포함된 브라우저를 설치하려면 WebView2 런타임이 필요합니다. 앱의 최종 사용자는 앱을 다운로드하여 WebView2 런타임 https://go.microsoft.com/fwlink/p/?LinkId=2124703 을 설치하고 다시 시작할 수 있습니다. 앱 개발자는 WebView2 런타임의 배포 가능한 버전을 가져올 수 있습니다.
WebviewUnavailable

선택한 WebView는 이 플랫폼에서 사용할 수 없습니다. 를 사용하여 WithUseEmbeddedWebView(Boolean)다른 WebView로 전환할 수 있습니다. 자세한 내용은 https://aka.ms/msal-net-os-browser

WsTrustEndpointNotFoundInMetadataDocument

WS-Trust 엔드포인트를 메타데이터 문서에서 찾을 수 없습니다.

적용 대상