클라이언트 애플리케이션 초기화

완료됨

MSAL.NET 3.x를 사용하는 경우 애플리케이션 작성기(PublicClientApplicationBuilderConfidentialClientApplicationBuilder)를 사용하여 애플리케이션을 인스턴스화하는 것이 좋습니다. 코드 또는 구성 파일에서 애플리케이션을 구성하는 강력한 메커니즘을 제공하거나 두 방법을 모두 혼합하여 제공합니다.

애플리케이션을 초기화하려면 먼저 앱이 Microsoft ID 플랫폼과 통합될 수 있도록 해당 애플리케이션을 등록해야 합니다. 등록 후에는 다음 정보가 필요할 수 있으며 해당 정보는 Azure Portal에서 찾을 수 있습니다.

  • 클라이언트 ID(GUID를 나타내는 문자열)
  • ID 공급자 URL(인스턴스 이름) 및 애플리케이션의 로그인 대상. 이러한 두 매개 변수를 통칭하여 권한이라고 합니다.
  • 조직 전용 사업 부문 애플리케이션(단일 테넌트 애플리케이션이라고도 함)을 작성하는 경우 테넌트 ID
  • 기밀 클라이언트 앱인 경우 애플리케이션 비밀(클라이언트 암호 문자열) 또는 인증서(X509Certificate2 형식).
  • 웹앱의 경우와 때로 공용 클라이언트 앱의 경우(특히 앱에서 broker를 사용해야 하는 경우) ID 공급자가 애플리케이션에 보안 토큰을 다시 연결할 redirectUri도 설정해야 합니다.

코드에서 퍼블릭 및 기밀 클라이언트 애플리케이션 초기화

다음 코드는 퍼블릭 클라이언트 응용 프로그램을 인스턴스화하고, Microsoft Azure 퍼블릭 클라우드의 사용자는 다음 코드를 사용하여 회사 및 학교 계정 또는 개인 Microsoft 계정으로 로그인합니다.

IPublicClientApplication app = PublicClientApplicationBuilder.Create(clientId).Build();

동일한 방식으로 다음 코드는 회사 및 학교 계정 또는 개인 Microsoft 계정을 사용하여 Microsoft Azure 퍼블릭 클라우드에 있는 사용자의 토큰을 처리하는 기밀 애플리케이션(https://myapp.azurewebsites.net에 있는 웹 앱)을 인스턴스화합니다. 애플리케이션은 클라이언트 암호를 공유하여 ID 공급자로 식별됩니다.

string redirectUri = "https://myapp.azurewebsites.net";
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId)
    .WithClientSecret(clientSecret)
    .WithRedirectUri(redirectUri )
    .Build();

작성기 한정자

애플리케이션 작성기를 사용하는 코드 조각에서는 .With 메서드를 한정자로 적용할 수 있습니다(예: .WithAuthority.WithRedirectUri).

  • .WithAuthority 한정자: .WithAuthority 한정자는 애플리케이션 기본 권한을 Microsoft Entra 권한으로 설정합니다. Azure Cloud, 대상 그룹, 테넌트(테넌트 ID 또는 도메인 이름)를 선택하거나 권한 URI를 직접 제공할 수도 있습니다.

    var clientApp = PublicClientApplicationBuilder.Create(client_id)
        .WithAuthority(AzureCloudInstance.AzurePublic, tenant_id)
        .Build();
    
  • .WithRedirectUri 한정자: .WithRedirectUri 한정자는 기본 리디렉션 URI를 재정의합니다.

    var clientApp = PublicClientApplicationBuilder.Create(client_id)
        .WithAuthority(AzureCloudInstance.AzurePublic, tenant_id)
        .WithRedirectUri("http://localhost")
        .Build();
    

퍼블릭 및 기밀 클라이언트 응용 프로그램에 공통되는 한정자

아래 표에는 퍼블릭 또는 기밀 클라이언트에서 설정할 수 있는 몇 가지 한정자가 나와 있습니다.

한정자 설명
.WithAuthority() 애플리케이션 기본 권한을 Microsoft Entra 권한으로 설정합니다. Azure Cloud, 대상 그룹, 테넌트(테넌트 ID 또는 도메인 이름)를 선택하거나 권한 URI를 직접 제공할 수도 있습니다.
.WithTenantId(string tenantId) 테넌트 ID 또는 테넌트 설명을 재정의합니다.
.WithClientId(string) 클라이언트 ID를 재정의합니다.
.WithRedirectUri(string redirectUri) 기본 리디렉션 URI를 재정의합니다. 이는 broker가 필요한 시나리오에 유용합니다.
.WithComponent(string) 원격 분석을 위해 MSAL.NET을 사용하여 라이브러리의 이름을 설정합니다.
.WithDebugLoggingCallback() 호출되는 경우 애플리케이션은 단순히 디버깅 추적을 사용하도록 하는 Debug.Write를 호출합니다.
.WithLogging() 호출되는 경우 애플리케이션은 디버깅 추적과 함께 콜백을 호출합니다.
.WithTelemetry(TelemetryCallback telemetryCallback) 원격 분석을 보내는 데 사용되는 대리자를 설정합니다.

기밀 클라이언트 응용 프로그램에만 적용되는 한정자

기밀 클라이언트 응용 프로그램 작성기에서 설정할 수 있는 한정자는 다음과 같습니다.

한정자 설명
.WithCertificate(X509Certificate2 certificate) Microsoft Entra ID를 사용하여 애플리케이션을 식별하는 인증서를 설정합니다.
.WithClientSecret(string clientSecret) Microsoft Entra ID를 사용하여 애플리케이션을 식별하는 클라이언트 암호(앱 암호)를 설정합니다.