다음을 통해 공유


구성 파일을 통해 Azure ID 라이브러리 자격 증명 만들기

ASP.NET Core()Microsoft.Extensions.AzureAzure.Core.TokenCredential 및 기타 구성 파일에 정의된 키-값 쌍에서 다양한 형식을 만들 수 있습니다. 자격 증명은 Azure ID 클라이언트 라이브러리에 있는 자격 증명 클래스 의 하위 집합에 해당합니다. 이 문서에서는 다양한 TokenCredential 형식에 대한 지원과 각 형식에 필요한 키-값 쌍을 구성하는 방법을 설명합니다.

구성을 통한 Azure 자격 증명 지원

Microsoft.Extensions.Azure는 .NET의 추상화를 사용하여 자격 증명 값에 대해 TokenCredential 또는 기타 구성 파일을 검색함으로써 Azure 서비스 클라이언트에 클래스 추상을 자동으로 제공할 수 있습니다. 이 방식을 사용하면 개발자는 앱 코드를 직접 통하지 않고 구성을 통해 다양한 환경에서 자격 증명 값을 명시적으로 설정할 수 있습니다.

구성을 통해 다음 자격 증명을 만들 수 있습니다.

Azure 자격 증명 구성

AddAzureClients 확장 메서드를 통해 명시적인 자격 증명이 제공되지 않으면 DefaultAzureCredential 메서드로 등록된 Azure 서비스 클라이언트가 WithCredential 인스턴스로 자동으로 구성됩니다. 클라이언트를 등록하여 특정 자격 증명을 만들 때 구성 파일의 자격 증명 값을 사용하여 전역 DefaultAzureCredential 을 재정의할 수도 있습니다.

builder.Services.AddAzureClients(clientBuilder =>
{
    // Register BlobServiceClient using credential from appsettings.json
    clientBuilder.AddBlobServiceClient(builder.Configuration.GetSection("Storage"));

    // Register ServiceBusClient using the fallback DefaultAzureCredential
    clientBuilder.AddServiceBusClientWithNamespace(
        "<your_namespace>.servicebus.windows.net");
});

관련 appsettings.json 파일:

"Storage": {
    "serviceUri": "<service_uri>",
    "credential": "managedidentity",
    "clientId": "<client_id>"
}

다음 자격 증명은 자격 증명이 토큰을 획득할 수 있는 기본 테넌트 외의 Microsoft Entra 테넌트를 지정하는 AdditionallyAllowedTenants 속성을 지원합니다.

로그인한 계정에서 액세스할 수 있는 모든 Microsoft Entra 테넌트에 대한 토큰을 획득할 수 있도록 자격 증명에 와일드카드 값을 * 추가합니다. 테넌트 ID가 지정되지 않은 경우 이 옵션은 해당 인증 방법에 영향을 주지 않으며 자격 증명은 해당 메서드를 사용할 때 요청된 테넌트에 대한 토큰을 획득합니다.

{
    "additionallyAllowedTenants": "<tenant_ids_separated_by_semicolon>"
}

의 인스턴스 만들기 ManagedIdentityCredential

구성 값을 사용하여 다음과 같은 방법으로 관리 ID를 활용하도록 자격 증명을 구성할 수 있습니다.

  • 시스템 할당 관리 ID
  • 사용자가 할당한 관리 ID
  • 관리형 ID를 페더레이션 자격 증명으로 사용하기

인스턴스 Azure.Identity.ManagedIdentityCredential를 만들려면 appsettings.json 파일에 다음 키-값 쌍을 추가합니다.

시스템 할당 관리 ID

{
    "credential": "managedidentity"
}

사용자가 할당한 관리 ID

클라이언트 ID, 리소스 ID 또는 개체 ID를 제공하여 사용자 할당 관리 ID를 사용할 수 있습니다.

{
    "credential": "managedidentity",
    "managedIdentityClientId": "<managed_identity_client_id>"
}

관리형 ID를 페더레이션 자격 증명으로 사용하기

페더레이션 ID 자격 증명 기능으로서의 관리 ID는 버전 1.12.0 이상에서 Microsoft.Extensions.Azure 지원됩니다. 이 기능은 시스템 할당 관리 ID에서 작동하지 않습니다. 클라이언트 ID, 리소스 ID 또는 개체 ID를 제공하여 사용자 할당 관리 ID로 자격 증명을 구성할 수 있습니다.

{
    "credential": "managedidentityasfederatedidentity",
    "azureCloud": "<azure_cloud>",
    "tenantId": "<tenant_id>",
    "clientId": "<client_id>",
    "managedIdentityClientId": "<managed_identity_client_id>"
}

azureCloud 키 값은 Microsoft Entra 액세스 토큰 범위를 설정하는 데 사용됩니다. 다음 값 중 하나일 수 있습니다.

  • public Azure 퍼블릭 클라우드용
  • usgov Azure 미국 정부 클라우드용
  • china 21Vianet에서 운영하는 Azure의 경우

의 인스턴스 만들기 AzurePipelinesCredential

인스턴스 Azure.Identity.AzurePipelinesCredential를 만들려면 appsettings.json 파일에 다음 키-값 쌍을 추가합니다.

{
    "credential": "azurepipelines",
    "clientId": "<client_id>",
    "tenantId": "<tenant_id>",
    "serviceConnectionId": "<service_connection_id>",
    "systemAccessToken": "<system_access_token>"
}

중요합니다

AzurePipelinesCredentialMicrosoft.Extensions.Azure 버전 1.11.0 이상에서 지원됩니다.

의 인스턴스 만들기 WorkloadIdentityCredential

인스턴스 Azure.Identity.WorkloadIdentityCredential를 만들려면 appsettings.json 파일에 다음 키-값 쌍을 추가합니다.

{
    "credential": "workloadidentity",
    "tenantId": "<tenant_id>",
    "clientId": "<client_id>",
    "tokenFilePath": "<token_file_path>"
}

의 인스턴스 만들기 ClientSecretCredential

인스턴스 Azure.Identity.ClientSecretCredential를 만들려면 appsettings.json 파일에 다음 키-값 쌍을 추가합니다.

{
    "tenantId": "<tenant_id>",
    "clientId": "<client_id>",
    "clientSecret": "<client_secret>"
}

의 인스턴스 만들기 ClientCertificateCredential

인스턴스 Azure.Identity.ClientCertificateCredential를 만들려면 appsettings.json 파일에 다음 키-값 쌍을 추가합니다.

{
    "tenantId": "<tenant_id>",
    "clientId": "<client_id>",
    "clientCertificate": "<client_certificate>",
    "clientCertificateStoreLocation": "<client_certificate_store_location>"
}

참고 항목

키는 clientCertificateStoreLocation 선택 사항입니다. 키인 경우:

  • 존재하고 빈 값을 가지고 있으며 무시됩니다.
  • 기본값 CurrentUser이 존재하지 않을 경우, 기본값은 X509Credentials.StoreLocation 열거형에서 사용됩니다.

의 인스턴스 만들기 DefaultAzureCredential

인스턴스 Azure.Identity.DefaultAzureCredential를 만들려면 appsettings.json 파일에 다음 키-값 쌍을 추가합니다.

{
    "tenantId": "<tenant_id>",
    "clientId": "<client_id>",
    "managedIdentityResourceId": "<managed_identity_resource_id>"
}