다음을 통해 공유


Microsoft ID 플랫폼을 사용하는 앱 로그인 흐름

이 항목에서는 Microsoft ID 플랫폼을 사용하는 웹, 데스크톱 및 모바일 앱에 대한 기본 로그인 흐름에 대해 설명합니다. Microsoft ID 플랫폼에서 지원하는 로그인 시나리오에 대해 알아보려면 인증 흐름 및 앱 시나리오를 참조하세요.

웹앱 로그인 흐름

사용자가 브라우저에서 웹앱으로 이동하면 다음이 발생합니다.

  • 웹앱은 사용자가 인증되는지 여부를 결정합니다.
  • 사용자가 인증되지 않은 경우 웹앱은 Microsoft Entra ID로 위임되어 사용자를 로그인합니다. 해당 로그인은 조직의 정책을 준수합니다. 즉, 사용자에게 자격 증명을 입력하도록 요청하거나, 다단계 인증(2단계 인증 또는 2FA라고도 함)을 사용하거나, 암호를 전혀 사용하지 않습니다(예: Windows Hello 사용).
  • 클라이언트 앱에 필요한 액세스에 동의하라는 메시지가 사용자에게 표시됩니다. 따라서 Microsoft ID 플랫폼이 사용자가 동의한 액세스를 나타내는 토큰을 제공할 수 있도록 클라이언트 앱을 Microsoft Entra ID에 등록해야 합니다.

사용자가 성공적으로 인증한 경우:

  • Microsoft ID 플랫폼은 웹앱에 토큰을 보냅니다.
  • 브라우저의 쿠키 jar에 사용자의 ID를 포함하는 Microsoft Entra 도메인과 연결된 쿠키가 저장됩니다. 다음에 앱이 브라우저를 사용하여 Microsoft ID 플랫폼 권한 부여 엔드포인트로 이동할 때 브라우저는 사용자가 다시 로그인할 필요가 없도록 쿠키를 표시합니다. 이는 SSO를 달성하는 방식이기도 합니다. 쿠키는 Microsoft Entra ID로 생성되며 Microsoft Entra ID로만 이해할 수 있습니다.
  • 그런 다음 웹앱은 토큰의 유효성을 검사합니다. 유효성 검사에 성공하면 웹앱은 보호된 페이지를 표시하고 세션 쿠키를 브라우저의 쿠키 jar에 저장합니다. 사용자가 다른 페이지로 이동하면 웹앱은 사용자가 세션 쿠키를 기반으로 인증된다는 것을 알고 있습니다.

다음 시퀀스 다이어그램은 이 상호 작용을 요약합니다.

웹앱 인증 프로세스

웹앱에서 사용자가 인증되는지 여부를 결정하는 방법

웹앱 개발자는 모든 페이지 또는 특정 페이지에만 인증이 필요한지 여부를 나타낼 수 있습니다. 예를 들어 ASP.NET/ASP.NET Core에서 이 작업은 컨트롤러 작업에 특성을 추가하여 [Authorize] 수행됩니다.

이 특성으로 인해 ASP.NET 사용자의 ID를 포함하는 세션 쿠키가 있는지 확인합니다. 쿠키가 없으면 ASP.NET 지정된 ID 공급자로 인증을 리디렉션합니다. ID 공급자가 Microsoft Entra ID인 경우 웹앱은 https://login.microsoftonline.com으로 인증을 리디렉션하여 로그인 대화 상자를 표시합니다.

웹앱이 Microsoft ID 플랫폼에 로그인을 위임하고 토큰을 가져오는 방법

사용자 인증은 브라우저를 통해 수행됩니다. OpenID 프로토콜은 표준 HTTP 프로토콜 메시지를 사용합니다.

  • 웹앱은 Microsoft ID 플랫폼을 사용하기 위해 HTTP 302(리디렉션)를 브라우저로 보냅니다.
  • 사용자가 인증되면 Microsoft ID 플랫폼은 브라우저를 통해 리디렉션을 사용하여 토큰을 웹앱에 보냅니다.
  • 리디렉션은 웹앱에서 리디렉션 URI 형식으로 제공됩니다. 이 리디렉션 URI는 Microsoft Entra 애플리케이션 개체에 등록됩니다. 애플리케이션이 여러 URL에 배포될 수 있으므로 여러 리디렉션 URI가 있을 수 있습니다. 따라서 웹앱은 사용할 리디렉션 URI도 지정해야 합니다.
  • Microsoft Entra ID는 웹앱에서 보낸 리디렉션 URI가 앱에 대해 등록된 리디렉션 URI 중 하나인지 확인합니다.

데스크톱 및 모바일 앱 로그인 흐름

위에서 설명한 흐름은 데스크톱 및 모바일 애플리케이션에 약간의 차이가 있습니다.

데스크톱 및 모바일 애플리케이션은 포함된 웹 컨트롤 또는 시스템 브라우저를 인증에 사용할 수 있습니다. 다음 다이어그램에서는 데스크톱 또는 모바일 앱이 MSAL(Microsoft 인증 라이브러리)을 사용하여 액세스 토큰을 획득하고 웹 API를 호출하는 방법을 보여 줍니다.

데스크톱 앱이 표시되는 방식

MSAL은 브라우저를 사용하여 토큰을 가져옵니다. 웹앱과 마찬가지로 인증은 Microsoft ID 플랫폼에 위임됩니다.

Microsoft Entra ID는 웹앱과 동일한 ID 쿠키를 브라우저에 저장하기 때문에 네이티브 또는 모바일 앱이 시스템 브라우저를 사용하는 경우 해당 웹앱과 함께 SSO를 즉시 가져옵니다.

기본적으로 MSAL은 시스템 브라우저를 사용합니다. 예외는 포함된 컨트롤을 사용하여 보다 통합된 사용자 환경을 제공하는 .NET Framework 데스크톱 애플리케이션입니다.

다음 단계

인증 및 권한 부여 기본 사항을 다루는 다른 항목의 경우:

  • Microsoft ID 플랫폼에서 인증 및 권한 부여 의 기본 개념에 대해 알아보려면 인증 및 권한 부여를 참조하세요.
  • 보안 토큰을 참조하여 액세스 토큰, 새로 고침 토큰 및 ID 토큰이 인증 및 권한 부여에 사용되는 방법을 알아봅니다.
  • Microsoft ID 플랫폼과 통합할 수 있도록 애플리케이션을 등록하는 프로세스에 대해 알아보려면 애플리케이션 모델을 참조하세요.
  • 애플리케이션에서 권한 부여 논리에 토큰 클레임을 안전하게 사용하는 방법에 대해 알아보려면 클레임의 유효성을 검사하여 보안 애플리케이션 및 API를 참조하세요.

앱 로그인 흐름에 대해 자세히 알아보려면 다음을 수행합니다.

  • Microsoft ID 플랫폼에서 지원하는 사용자를 인증하기 위한 다른 시나리오에 대한 자세한 내용은 인증 흐름 및 앱 시나리오 를 참조하세요.
  • MSAL 라이브러리를 참조하여 간소화된 단일 프로그래밍 모델에서 Microsoft 계정, Microsoft Entra 계정 및 Azure AD B2C 사용자와 함께 작동하는 애플리케이션을 개발하는 데 도움이 되는 Microsoft 라이브러리에 대해 알아봅니다.