Azure Active Directory 인증 라이브러리

경고

이 콘텐츠는 이전의 Azure AD v1.0 엔드포인트에 대한 것입니다. 새로운 프로젝트에는 Microsoft ID 플랫폼을 사용합니다.

Azure ADAL(Active Directory 인증 라이브러리) v1.0은 애플리케이션 개발자들이 클라우드 또는 온-프레미스 AD(Active Directory)에 사용자를 인증하고 API 호출 보안을 위한 토큰을 가져올 수 있게 합니다. ADAL은 개발자가 다음과 같은 기능을 통해 더 쉽게 인증하도록 합니다.

  • 액세스 토큰 및 새로 고침 토큰을 저장하는 구성 가능한 토큰 캐시
  • 액세스 토큰이 만료되고 새로 고침 토큰을 사용할 수 있을 때 자동 토큰 새로 고침
  • 비동기 메서드 호출에 대한 지원

참고

Azure AD v2.0 라이브러리에 대한 내용을 찾으시나요? MSAL 라이브러리 가이드를 참조하세요.

경고

Azure ADAL(Active Directory 인증 라이브러리)은 사용되지 않습니다. MSAL(Microsoft 인증 라이브러리)을 사용하세요. ADAL을 사용하는 기존 애플리케이션이 있는 경우 MSAL로 마이그레이션합니다.

Microsoft 지원 클라이언트 라이브러리

플랫폼 라이브러리 다운로드 소스 코드 샘플 참조
.NET 클라이언트, Windows 스토어, UWP, Xamarin iOS 및 Android ADAL .NET v3 NuGet GitHub 데스크톱 앱
JavaScript ADAL.js GitHub GitHub 단일 페이지 앱
iOS, macOS ADAL GitHub GitHub iOS 앱
Android ADAL Maven GitHub Android 앱 JavaDocs
Node.js ADAL npm GitHub Node.js 웹앱 참조
Java ADAL4J Maven GitHub Java 웹앱 참조
Python ADAL GitHub GitHub Python 웹앱 참조

Microsoft 지원 서버 라이브러리

플랫폼 라이브러리 다운로드 소스 코드 샘플 참조
.NET AzureAD용 OWIN NuGet GitHub MVC 앱
.NET OpenIDConnect용 OWIN NuGet GitHub 웹앱
.NET WS-Federation용 OWIN NuGet GitHub MVC 웹앱
.NET .NET 4.5용 ID 프로토콜 확장 NuGet GitHub
.NET .NET 4.5 JWT 핸들러 NuGet GitHub
Node.js Azure AD Passport npm GitHub 앱 API

시나리오

다음은 원격 리소스에 액세스하는 클라이언트에서 ADAL을 사용하는 세 가지 일반적인 시나리오입니다.

디바이스에서 실행되는 네이티브 클라이언트 애플리케이션의 사용자 인증

이 시나리오에서는 개발자가 web API 같은 원격 리소스에 액세스해야 하는 모바일 클라이언트 또는 데스크톱 애플리케이션을 갖고 있습니다. Web API는 익명 호출을 허용하지 않으므로 인증된 사용자의 컨텍스트에서 호출해야 합니다. web API는 특정 Azure AD 테넌트에서 발급한 액세스 토큰을 신뢰하도록 미리 구성됩니다. Azure AD는 해당 리소스에 대한 액세스 토큰을 발급하도록 미리 구성됩니다. 클라이언트에서 web API를 호출하기 위해 개발자는 ADAL을 사용하여 Azure AD를 보다 쉽게 인증합니다. ADAL을 사용하는 가장 안전한 방법은 사용자 인터페이스를 렌더링하여 사용자 자격 증명을 수집하게 하는 것입니다(브라우저 창으로 렌더링).

ADAL을 사용하면 쉽게 사용자를 인증하고 Azure AD에서 액세스 토큰 및 새로 고침 토큰을 가져오고, 액세스 토큰을 사용하여 웹 API를 호출할 수 있습니다.

Azure AD에 대한 인증을 사용하여 이 시나리오를 설명하는 코드 샘플의 경우 웹 API에 네이티브 클라이언트 WPF 애플리케이션을 참조하세요.

웹 서버에서 실행되는 비밀 클라이언트 애플리케이션 인증

이 시나리오에서는 개발자가 web API 같은 원격 리소스에 액세스해야 하는 서버에서 실행되는 애플리케이션을 갖고 있습니다. web API는 원격 호출을 허용하지 않으므로 권한이 부여된 서비스에서 호출해야 합니다. web API는 특정 Azure AD 테넌트에서 발급한 액세스 토큰을 신뢰하도록 미리 구성됩니다. Azure AD는 클라이언트 자격 증명(클라이언트 ID 및 비밀)이 있는 서비스에 해당 리소스의 액세스 토큰을 발급하도록 미리 구성됩니다. ADAL을 사용하면 간편하게 서비스를 Azure AD에 인증할 수 있으며 web API를 호출하는 데 사용할 수 있는 액세스 토큰을 반환합니다. ADAL은 또한 액세스 토큰을 캐시화하고 필요한 대로 갱신하여 액세스 토큰의 수명 관리도 처리합니다. 이 시나리오를 보여 주는 코드 샘플에 대해서는 웹 API에 디먼 콘솔 애플리케이션을 참조하세요.

사용자를 대신하여 서버에서 실행되는 비밀 클라이언트 애플리케이션 인증

이 시나리오에서는 개발자가 web API 같은 원격 리소스에 액세스해야 하는 서버에서 실행되는 웹 애플리케이션을 갖고 있습니다. web API는 원격 호출을 허용하지 않으므로 인증된 사용자를 대신하여 권한이 부여된 서비스에서 호출해야 합니다. 웹 API는 특정 Microsoft Entra 테넌트에서 발급한 액세스 토큰을 신뢰하도록 미리 구성되고, Microsoft Entra ID는 클라이언트 자격 증명이 있는 서비스에 해당 리소스의 액세스 토큰을 발급하도록 미리 구성됩니다. 사용자가 웹 애플리케이션에 인증되면 애플리케이션이 Microsoft Entra ID에서 사용자에 대한 권한 부여 코드를 가져올 수 있습니다. 그러면 웹 애플리케이션에서 ADAL을 사용하여 Microsoft Entra ID의 애플리케이션과 연결된 클라이언트 자격 증명과 인증 코드를 사용하는 사용자 대신 액세스 토큰과 새로고침 토큰을 얻을 수 있습니다. 웹 애플리케이션을 액세스 토큰에서 소유하게 되면 토큰이 만료될 때까지 웹 API를 호출할 수 있습니다. 토큰이 만료되면 웹 애플리케이션이 ADAL을 사용하여 이전에 받은 새로고침 토큰을 사통해 새 액세스 토큰을 가져올 수 있습니다. 이 시나리오를 보여 주는 코드 샘플에 대해서는 웹 API에 네이티브 클라이언트를 참조하세요.

참고 항목