DefaultAzureCredential 문제 해결: 사용되는 자격 증명 식별

발행: (2025년 12월 10일 오후 11:09 GMT+9)
2 분 소요
원문: Dev.to

Source: Dev.to

문제

Azure Identity NuGet 패키지를 사용할 때 DefaultAzureCredential은 환경 변수, Visual Studio, Azure Managed Identity 등 다양한 인증 유형을 로드하려고 시도합니다. 전체 목록은 Azure 문서에 정리되어 있습니다.

https://learn.microsoft.com/en-us/dotnet/api/azure.identity.defaultazurecredential?view=azure-dotnet

어떤 인증이 실제로 사용되는지 파악하려면 로그를 수동으로 활성화해야 하므로 어려울 수 있습니다. Microsoft에서 권장하는 방법은 매우 상세한 출력을 제공합니다. 출력을 간소화하려면 아래 코드를 애플리케이션 시작 부분에 삽입하세요.

using var listener = new AzureEventSourceListener((e, message) =>
{
    if (e.EventSource.Name == "Azure-Identity")
    {
        Console.WriteLine(message);
        // Alternatively, use _logger.LogInformation() if running in Azure
        // WARNING: These logs may include sensitive credentials
        // depending on the options selected below
    }
},
System.Diagnostics.Tracing.EventLevel.LogAlways);

DefaultAzureCredentialOptions options = new DefaultAzureCredentialOptions
{
    Diagnostics =
    {
        IsAccountIdentifierLoggingEnabled = true,
        // Useful extra options for debugging
        // These act as a whitelist of fields to log.
        // LoggedHeaderNames = { "x-ms-request-id" },
        // LoggedQueryParameters = { "api-version" },
        // This enables logging the request or response body
        // IsLoggingContentEnabled = true
    }
};

AzureEventSourceListener는 상세 로거를 생성합니다. 위와 같이 필터를 추가하면 많은 잡음이 제거됩니다.

비슷한 출력이 표시됩니다:

EnvironmentCredential.GetToken invoked
EnvironmentCredential.GetToken was unable to retrieve an access token
...
VisualStudioCredential.GetToken succeeded

이 출력 덕분에 어떤 인증 유형이 성공했는지(또는 실패했는지)를 쉽게 식별할 수 있습니다.

Azure Identity 로깅

https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/README.md#logging

관련 이슈

https://github.com/Azure/azure-sdk-for-net/issues/27872

Back to Blog

관련 글

더 보기 »

.NET에서 NuGet 패키지 사용 마스터하기

NuGet은 실제로 무엇인가요? NuGet을 .NET의 Amazon이나 Mercado Libre라고 생각해 보세요. 가구의 모든 나사를 직접 만들지 않고, 가게에 주문하듯이요. - 패키지…

LINQ 식에서 다중 열거

다중 열거는 LINQ 쿼리가 IEnumerable 컬렉션을 생성하고 이를 여러 번 반복할 때 발생합니다. 이는 특히 성능 문제를 일으킬 수 있습니다.