다음을 통해 공유


클라이언트 앱 인증(Azure Data Catalog REST API)


이 문서에서는 Data Catalog 클라이언트 앱을 인증하는 방법을 보여줍니다. 여기에는 C#의 예제가 포함되어 있지만 다른 프로그래밍 언어의 인증 프로세스도 동일합니다.

Data Catalog 클라이언트 앱은 Azure AD(Active Directory)를 사용하여 사용자를 인증하고 애플리케이션을 보호합니다. 인증은 앱 또는 사용자를 식별하는 프로세스입니다. Azure AD 클라이언트 앱을 식별하려면 Azure AD 앱을 등록합니다. Azure Active Directory에 클라이언트 앱을 등록하면 앱에 Data Catalog API에 대한 액세스 권한을 부여합니다. Data Catalog 클라이언트 앱을 등록하는 방법을 알아보려면 클라이언트 앱 등록을 참조하세요.

Data Catalog REST API 호출은 요청의 "권한 부여" 헤더에 토큰을 전달하여 인증된 사용자를 대신하여 이루어집니다. 토큰은 Azure Active Directory를 통해 가져옵니다.

Data Catalog 클라이언트 앱을 인증하는 데 필요한 항목

Data Catalog 클라이언트 앱을 인증하고 REST 웹 요청을 수행하려면 다음을 수행해야 합니다.

  1. 클라이언트 앱 등록 - Data Catalog 클라이언트 앱을 등록하려면 클라이언트 앱 등록을 참조하세요. Azure Active Directory에 클라이언트 앱을 등록하면 앱에 Data Catalog API에 대한 액세스 권한을 부여합니다.

  2. 앱의 클라이언트 ID 할당 - 앱 의 클라이언트 ID를 가져오려면 클라이언트 앱 ID를 가져오는 방법을 참조하세요. 클라이언트 ID는 애플리케이션에서 권한을 요청하는 사용자에게 자신을 식별하는 데 사용됩니다.

    • 클라이언트 앱 코드에서 clientID 변수를 Azure 애플리케이션의 clientID에 할당합니다.
  3. 리디렉션 Uri 할당 - 클라이언트 앱의 경우 리디렉션 URI는 인증하는 특정 애플리케이션에 대한 자세한 정보를 Azure AD 제공합니다. URI(Uniform Resource Identifier)는 리소스 이름을 식별하는 값입니다.

    • 클라이언트 앱 코드에서 redirectUri 를 에 할당합니다 https://login.live.com/oauth20_desktop.srf. 클라이언트 앱은 리디렉션할 수 있는 외부 서비스가 없으므로 이 URI가 클라이언트 앱의 표준 자리 표시자입니다.
  4. Data Catalog API에 대한 리소스 Uri 할당 - 리소스 Uri는 Data Catalog API 리소스를 식별합니다.

    • 클라이언트 앱 코드에서 resourceUri 를 에 할당합니다 https://datacatalog.azure.com.
  5. OAuth2 기관 URI 할당 - 기관 URI는 OAuth2 기관 리소스를 식별합니다.

    • 클라이언트 앱 코드에서 에 기관 Uri를 할당합니다 https://login.windows.net/common/oauth2/authorize.

Data Catalog REST 서비스에 대한 데이터 요청을 하려면 액세스 토큰을 제공해야 합니다. .NET 클라이언트 앱에서는 MSAL(Microsoft 인증 라이브러리) 을 사용하여 액세스 토큰을 가져옵니다.

중요

클라이언트 앱을 인증하려면 MSAL(Microsoft 인증 라이브러리)에 포함된 에 대한 참조 Microsoft.Identity.Client를 추가해야 합니다. 앱에서 여전히 ADAL을 사용하는 경우 MSAL로 마이그레이션합니다. 자세한 내용은 ADAL.NET 앱과 MSAL.NET 앱 간의 차이점을 참조하세요.

Install-Package Microsoft.Identity.Client -Version 4.48.1 

액세스 토큰을 가져오기 위한 단계

MSAL을 사용하여 액세스 토큰을 획득하는 것은 퍼블릭 클라이언트 또는 기밀 클라이언트 애플리케이션을 빌드하는지 여부에 따라 달라집니다. 시나리오에 대한 액세스 토큰을 가져오려면 다음 단계를 참조하세요.

더 이상 사용되지 않는 ADAL 라이브러리를 사용하는 데이터 카탈로그가 있는 경우 ADAL에서 MSAL로 앱을 마이그레이션합니다.

토큰을 사용하여 REST API Data Catalog 요청

active Directory(Azure AD)에서 액세스 토큰을 받은 후 토큰을 사용하여 Data Catalog REST API에 대한 웹 요청을 만듭니다. Data Catalog REST 웹 요청을 만들려면 요청 헤더에 액세스 토큰을 추가합니다. 예를 들어 .NET 앱에서 을 추가합니다.

HttpWebRequest request = System.Net.WebRequest.Create(apiUrl) as System.Net.HttpWebRequest;  
...  
string authHeader = authResult.CreateAuthorizationHeader();             
request.Headers.Add("Authorization", authHeader);  

Azure 인증 컨텍스트 흐름

.NET 클라이언트 앱에서는 AuthenticationContext를 사용하여 Azure 액세스 토큰을 가져옵니다. AuthenticationContext는 Azure AD 리소스에 대한 토큰 발급 기관을 나타내는 주 클래스입니다. AuthenticationContext는 다음을 수행합니다.

  1. AuthenticationContext가 사용자 에이전트를 Azure Active Directory 권한 부여 엔드포인트로 리디렉션하여 흐름을 시작합니다. 동의가 필요한 경우 사용자가 인증하고 동의합니다.
  2. Azure Active Directory 권한 부여 엔드포인트에서 사용자 에이전트를 권한 부여 코드와 함께 AuthenticationContext로 리디렉션합니다. 사용자 에이전트가 인증 코드를 클라이언트 애플리케이션의 URI로 반환합니다.
  3. AuthenticationContext가 Azure Active Directory 토큰 발급 엔드포인트에서 액세스 토큰을 요청합니다. 사용자가 동의했음을 증명하는 인증 코드를 표시합니다.
  4. Azure Active Directory 토큰 발급 엔드포인트가 액세스 토큰을 반환합니다.
  5. 클라이언트 애플리케이션이 액세스 토큰을 사용하여 웹 API에 인증합니다.
  6. 클라이언트 애플리케이션을 인증한 후 Data Catalog REST API는 요청된 데이터를 반환합니다.

Azure AD(Azure Active Directory) 권한 부여 흐름에 대해 알아보려면 인증 코드 부여 흐름을 참조하세요.