인증 시나리오 및 권장 사항
Azure App Service에서 실행 중인 웹앱 또는 API가 있는 경우 이를 요청하는 사용자 또는 애플리케이션의 ID를 기반으로 이에 대한 액세스를 제한할 수 있습니다. App Service는 이 목표를 달성하는 데 도움이 되는 여러 인증 솔루션을 제공합니다. 이 문서에서는 다양한 인증 옵션, 해당 옵션의 혜택과 단점, 특정 시나리오에 사용할 인증 솔루션에 대해 알아봅니다.
인증 솔루션
- Azure App Service 기본 제공 인증 - 웹앱, RESTful API 또는 모바일 백 엔드에 코드를 최소한으로 빌드하거나 전혀 빌드하지 않고도 사용자를 로그인하고 데이터에 액세스할 수 있습니다. 플랫폼에 직접 내장되어 있으며 사용하는 데 특정 언어, 라이브러리, 보안 전문 지식 또는 코드가 필요하지 않습니다.
- MSAL(Microsoft 인증 라이브러리) - 을 통해 개발자는 사용자를 인증하고 보안 웹 API에 액세스하기 위해 Microsoft ID 플랫폼에서 보안 토큰을 획득할 수 있습니다. 여러 지원 플랫폼 및 프레임워크에서 사용 가능하며 다양한 호스트된 환경에서 사용할 수 있는 범용 라이브러리입니다. 개발자는 Microsoft Entra, Facebook, Google, X와 같은 여러 로그인 공급자와 통합할 수도 있습니다.
- Microsoft.Identity.Web - MSAL.NET을 래핑하는 상위 수준 라이브러리로, Microsoft ID 플랫폼과 통합되는 웹앱 및 웹 API에 인증 지원 추가를 간소화하는 ASP.NET Core 추상화 집합을 제공합니다. ASP.NET Core, 해당 인증 미들웨어 및 MSAL.NET을 함께 연결하는 단일 표면 API 편의 계층을 제공합니다. 이 라이브러리는 다양한 호스트된 환경의 앱에서 사용할 수 있습니다. Microsoft Entra, Facebook, Google, X와 같은 여러 로그인 공급자와 통합할 수 있습니다.
시나리오 권장 사항
다음 표에는 각 인증 솔루션과 이를 사용하는 경우에 대한 몇 가지 중요한 요소가 나열되어 있습니다.
인증 방법 | 사용 시기 |
---|---|
기본 제공 App Service 인증 | * 소유하고 관리해야 할 코드가 적으면 좋겠습니다. * 앱의 언어와 SDK는 사용자 로그인이나 권한 부여를 제공하지 않습니다. * 앱 코드를 수정할 수 없습니다(예: 레거시 앱을 마이그레이션하는 경우). * 코드가 아닌 구성을 통해 인증을 처리해야 합니다. * 외부 또는 소셜 사용자로 로그인해야 합니다. |
MSAL(Microsoft 인증 라이브러리) | * 여러 언어 중 하나로 된 코드 솔루션이 필요합니다. * 사용자 지정 권한 부여 논리를 추가해야 합니다. * 증분 동의를 지원해야 합니다. * 코드에는 로그인한 사용자에 대한 정보가 필요합니다. * 외부 또는 소셜 사용자로 로그인해야 합니다. * 앱은 사용자가 다시 로그인하지 않고 만료되는 액세스 토큰을 처리해야 합니다. |
Microsoft.Identity.Web | * ASP.NET Core 앱이 있습니다. * 로컬 개발 중에 IDE에서 Single Sign-On 지원이 필요합니다. * 사용자 지정 권한 부여 논리를 추가해야 합니다. * 증분 동의를 지원해야 합니다. * 웹앱에는 조건부 액세스가 필요합니다. * 코드에는 로그인한 사용자에 대한 정보가 필요합니다. * 외부 또는 소셜 사용자로 로그인해야 합니다. * 앱은 사용자가 다시 로그인하지 않고 만료되는 액세스 토큰을 처리해야 합니다. |
다음 표에는 사용할 인증 시나리오와 인증 솔루션이 나열되어 있습니다.
시나리오 | App Service 기본 제공 인증 | Microsoft 인증 라이브러리 | Microsoft.Identity.Web |
---|---|---|---|
조직 내 사용자의 액세스를 제한하는 빠르고 간단한 방법이 필요하나요? | ✅ | ❌ | ❌ |
애플리케이션 코드를 수정할 수 없나요(앱 마이그레이션 시나리오)? | ✅ | ❌ | ❌ |
앱의 언어와 라이브러리가 사용자 로그인/권한 부여를 지원하나요? | ❌ | ✅ | ✅ |
코드 솔루션을 사용할 수 있더라도 라이브러리를 사용하지 않으려고 하나요? 유지 관리 부담을 원하지 않으시나요? | ✅ | ❌ | ❌ |
웹앱에서 증분 동의를 제공해야 하나요? | ❌ | ✅ | ✅ |
웹앱에 조건부 액세스가 필요하나요? | ❌ | ❌ | ✅ |
앱에서 사용자가 다시 로그인하지 않고 만료되는 액세스 토큰을 처리해야 하나요(새로 고침 토큰 사용)? | ✅ | ✅ | ✅ |
로그인한 사용자에 대한 사용자 지정 권한 부여 논리이나 정보가 필요하나요? | ❌ | ✅ | ✅ |
외부 또는 소셜 ID 공급자로부터 사용자를 로그인해야 하나요? | ✅ | ✅ | ✅ |
ASP.NET Core 앱이 있나요? | ✅ | ❌ | ✅ |
단일 페이지 앱이 있나요, 아니면 정적 웹앱이 있나요? | ✅ | ✅ | ✅ |
Visual Studio 통합을 원하시나요? | ❌ | ❌ | ✅ |
로컬 개발 중에 IDE에서 Single Sign-On 지원이 필요하나요? | ❌ | ❌ | ✅ |
다음 단계
기본 제공 App Service 인증을 시작하려면 다음을 참조하세요.
MSAL(Microsoft 인증 라이브러리)을 시작하려면 다음을 참조하세요.
Microsoft.Identity.Web을 시작하려면 다음을 참조하세요.
App Service 기본 제공 인증 및 권한 부여에 대해 자세히 알아봅니다.