Microsoft ID 플랫폼 코드 샘플

이러한 코드 샘플은 Microsoft에서 빌드 및 유지 관리하여 Microsoft ID 플랫폼 인증 라이브러리를 사용하는 방법을 보여 줍니다. 일반적인 인증 및 권한 부여 시나리오는 여러 애플리케이션 유형, 개발 언어 및 프레임워크에서 구현됩니다.

  • 사용자를 웹 애플리케이션에 로그인하고 보호된 웹 API에 대한 권한 있는 액세스를 제공합니다.
  • API 작업 수행 시 액세스 토큰을 요구하여 웹 API를 보호합니다.

각 코드 샘플에는 프로젝트를 빌드하고(해당하는 경우) 샘플 애플리케이션을 실행하는 방법을 설명하는 README.md 파일이 포함되어 있습니다. 코드의 주석은 ID 플랫폼을 사용하여 인증 및 권한 부여를 수행하기 위해 애플리케이션에서 이러한 라이브러리를 사용하는 방법을 이해하는 데 도움이 됩니다.

샘플 및 가이드

탭을 사용하여 애플리케이션 형식 또는 기본 설정 언어/프레임워크를 기준으로 샘플을 정렬합니다.

단일 페이지 애플리케이션

이 샘플에서는 Microsoft ID 플랫폼으로 보안이 설정된 단일 페이지 애플리케이션을 작성하는 방법을 보여 줍니다. 이 샘플은 MSAL.js의 특징 중 하나를 사용합니다.

언어/
플랫폼
코드 샘플
GitHub
Auth
라이브러리
인증 흐름
Angular 사용자 로그인
사용자 로그인(B2C)
Microsoft Graph 호출
ASP.NET Core 웹 API 호출
ASP.NET Core 웹 API(B2C) 호출
OBO를 통해 Microsoft Graph 호출
액세스 제어를 위해 앱 역할 사용
액세스 제어를 위해 보안 그룹 사용
Azure Storage 및 App Service에 배포
MSAL Angular • PKCE를 적용한 권한 부여 코드
• OBO(On-Behalf-Of)
• CAE(지속적인 액세스 권한 평가)
Blazor WebAssembly 사용자 로그인
사용자 로그인(B2C)
Microsoft Graph 호출
Azure App Service에 배포
MSAL.js 암시적 흐름
JavaScript 사용자 로그인
사용자 로그인(B2C)
Microsoft Graph 호출
Node.js 웹 API 호출
Node.js 웹 API 호출(B2C)
Azure Storage 및 App Service에 배포
MSAL.js • PKCE를 적용한 권한 부여 코드
React 사용자 로그인
사용자 로그인(B2C)
서버 및 클라이언트 쪽 앱 모두에서 사용자 로그인
Microsoft Graph 호출
Azure REST API 및 Azure Storage 호출
Node.js 웹 API 호출
Node.js 웹 API 호출(B2C)
OBO를 통해 Microsoft Graph 호출
액세스 제어를 위해 앱 역할 사용
액세스 제어를 위해 보안 그룹 사용
Azure Static Web Apps에 배포
버전 업그레이드 인증을 사용하여 Node.js 웹 API 호출
MSAL React • PKCE를 적용한 권한 부여 코드
• OBO(On-Behalf-Of)
• 조건부 액세스
• 조건부 액세스 인증 컨텍스트(acrs)
• CAE(지속적인 액세스 권한 평가)

웹 애플리케이션

다음 샘플은 사용자를 로그인하는 웹 애플리케이션을 보여 줍니다. 일부 샘플은 사용자 ID를 사용하여 Microsoft Graph 또는 사용자 고유의 웹 API를 호출하는 애플리케이션도 보여 줍니다.

언어/
플랫폼
코드 샘플
GitHub
Auth
라이브러리
인증 흐름
ASP.NET Core ASP.NET Core 시리즈
사용자 로그인
사용자 로그인(B2C)
Microsoft Graph 호출
토큰 캐시 사용자 지정
Graph 호출(다중 테넌트)
Azure REST API 호출
웹 API 보호
웹 API 보호(B2C)
다중 테넌트 웹 API 보호
액세스 제어를 위해 앱 역할 사용
액세스 제어를 위해 보안 그룹 사용
Azure Storage 및 App Service에 배포
Microsoft.Identity.Web • OpenID Connect
• 인증 코드
• On-Behalf-Of
Blazor Blazor Server 시리즈
사용자 로그인
사용자 로그인(B2C)
Microsoft Graph 호출
웹 API 호출
웹 API 호출(B2C)
MSAL.NET 하이브리드 흐름
ASP.NET Core 고급 토큰 캐시 시나리오 Microsoft.Identity.Web OBO(On-Behalf-Of)
ASP.NET Core 조건부 액세스 인증 컨텍스트를 사용하여 버전 업그레이드 인증 수행 Microsoft.Identity.Web 인증 코드
ASP.NET Core Active Directory Federation Services에서 Microsoft Entra로 마이그레이션 MSAL.NET • SAML
• OpenID Connect
ASP.NET Microsoft Graph 학습 샘플
사용자 로그인 및 Microsoft Graph 호출
관리자 제한 범위에서 사용자 로그인 Microsoft Graph 호출
빠른 시작: 사용자 로그인
MSAL.NET • OpenID Connect
• 인증 코드
Java

Spring
Microsoft Entra Spring Boot Starter 시리즈
사용자 로그인
사용자 로그인(B2C)
Microsoft Graph 호출
액세스 제어를 위해 앱 역할 사용
액세스 제어를 위해 그룹 사용
Azure App Service에 배포
웹 API 보호
MSAL Java
• Microsoft Entra ID Boot Starter
인증 코드
Java

서블릿
Spring 제외 서블릿 시리즈
사용자 로그인
사용자 로그인(B2C)
Microsoft Graph 호출
액세스 제어를 위해 앱 역할 사용
액세스 제어를 위해 보안 그룹 사용
Azure App Service에 배포
MSAL Java 인증 코드
Node.js

Express
Express 웹앱 시리즈
빠른 시작: 사용자 로그인
사용자 로그인
사용자 로그인(B2C)
Microsoft Graph 호출
BFF 프록시로 Microsoft Graph 호출
Azure App Service에 배포
액세스 제어를 위해 앱 역할 사용
액세스 제어를 위해 보안 그룹 사용
MSAL 노드 • 인증 코드
• BFF(Backend-for-Frontend) 프록시
Python

Flask
Flask 시리즈
사용자 로그인
사용자 로그인(B2C)
Microsoft Entra ID 또는 B2C 사용자를 로그인시키고 필요에 따라 다운스트림 API(Microsoft Graph)를 호출하는 템플릿
Microsoft Graph 호출
Azure App Service에 배포
MSAL Python 인증 코드
Python

Django
Django 시리즈
사용자 로그인
사용자 로그인(B2C)
Microsoft Graph 호출
Azure App Service에 배포
MSAL Python 인증 코드
Ruby Graph 학습
사용자 로그인 및 Microsoft Graph 호출
OmniAuth OAuth2 인증 코드

Web API

다음 샘플에서는 Microsoft ID 플랫폼을 사용하여 웹 API를 보호하는 방법과 웹 API에서 다운스트림 API를 호출하는 방법을 보여줍니다.

언어/
플랫폼
코드 샘플
GitHub
Auth
라이브러리
인증 흐름
ASP.NET Microsoft Graph 호출 MSAL.NET OBO(On-Behalf-Of)
ASP.NET Core 사용자 로그인 및 Microsoft Graph 호출 MSAL.NET OBO(On-Behalf-Of)
Java 사용자 로그인 MSAL Java OBO(On-Behalf-Of)
Node.js Node.js 웹 API 보호
Azure AD B2C를 사용하여 Node.js 웹 API 보안 유지
MSAL 노드 권한 부여 전달자

데스크톱

다음 샘플에서는 Microsoft Graph API에 액세스하거나, 사용자 이름의 자체 웹 API에 액세스하는 퍼블릭 클라이언트 데스크톱 애플리케이션을 보여 줍니다. WAM(Web Authentication Manager)을 사용하는 데스크톱(콘솔) 샘플 외에도 이러한 클라이언트 애플리케이션은 모두 MSAL(Microsoft 인증 라이브러리)을 사용합니다.

언어/
플랫폼
코드 샘플
GitHub
Auth
라이브러리
인증 흐름
.NET Core Microsoft Graph 호출
토큰 캐시를 사용하여 Microsoft Graph 호출
사용자 지정 웹 UI HTML을 사용하여 Microsoft Graph 호출
웹 브라우저를 사용하여 Microsoft Graph 호출
디바이스 코드 흐름을 통해 사용자 로그인
WinUI 데스크톱 애플리케이션에서 MSAL.NET을 사용하여 사용자 인증
MSAL.NET • PKCE를 적용한 권한 부여 코드
• 디바이스 코드
.NET Windows 통합 인증을 통해 보호된 API 호출 MSAL.NET Windows 통합 인증
Java Microsoft Graph 호출 MSAL Java Windows 통합 인증
Node.js 사용자 로그인 MSAL 노드 PKCE가 있는 권한 부여 코드
.NET Core 사용자 이름/암호를 통한 사용자 로그인으로 Microsoft Graph 호출 MSAL.NET 리소스 소유자 암호 자격 증명
Python 사용자 로그인 MSAL Python 리소스 소유자 암호 자격 증명
UWP(유니버설 Windows 플랫폼) Microsoft Graph 호출 MSAL.NET 웹 계정 관리자
WPF(Windows Presentation Foundation) 사용자 로그인 및 Microsoft Graph 호출 MSAL.NET PKCE가 있는 권한 부여 코드
WPF(Windows Presentation Foundation) 사용자 로그인 및 ASP.NET Core 웹 API 호출
사용자 로그인 및 Microsoft Graph 호출
MSAL.NET PKCE가 있는 권한 부여 코드

모바일

다음 샘플에서는 Microsoft Graph API에 액세스하는 퍼블릭 클라이언트 모바일 애플리케이션을 보여 줍니다. 이러한 클라이언트 애플리케이션은 MSAL(Microsoft 인증 라이브러리)을 사용합니다.

언어/
플랫폼
코드 샘플
GitHub
Auth
라이브러리
인증 흐름
.NET Core MAUI를 사용하여 Microsoft Graph 호출
브로커와 함께 MAUI를 사용하여 Microsoft Graph 호출
MAUI를 사용하여 Active Directory B2C 테넌트 호출
MSAL.NET PKCE가 있는 권한 부여 코드
iOS Microsoft Graph 원시 호출 MSAL iOS PKCE가 있는 권한 부여 코드
Java 사용자 로그인 및 Microsoft Graph 호출 MSAL Android PKCE가 있는 권한 부여 코드
Kotlin 사용자 로그인 및 Microsoft Graph 호출 MSAL Android PKCE가 있는 권한 부여 코드
Xamarin 사용자 로그인 및 Microsoft Graph 호출
broker를 통한 사용자 로그인 및 Microsoft Graph 호출
MSAL.NET PKCE가 있는 권한 부여 코드

서비스/디먼

다음 샘플은 고유 ID(사용자 없음)로 Microsoft Graph API에 액세스하는 애플리케이션을 보여 줍니다.

언어/
플랫폼
코드 샘플
GitHub
Auth
라이브러리
인증 흐름
.NET Core Microsoft Graph 호출
웹 API 호출
관리 ID 및 Azure Key Vault 사용
MSAL.NET 클라이언트 자격 증명 부여
ASP.NET Microsoft ID 플랫폼 엔드포인트를 포함한 다중 테넌트 MSAL.NET 클라이언트 자격 증명 부여
Java 비밀을 사용하여 Microsoft Graph 호출
인증서를 사용하여 Microsoft Graph 호출
MSAL Java 클라이언트 자격 증명 부여
Node.js 비밀을 사용하여 Microsoft Graph 호출 MSAL 노드 클라이언트 자격 증명 부여
Python 비밀을 사용하여 Microsoft Graph 호출
인증서를 사용하여 Microsoft Graph 호출
MSAL Python 클라이언트 자격 증명 부여

Web API로의 Azure Functions

다음 샘플에서는 Microsoft ID 플랫폼을 사용하여 웹 API를 노출하고 HttpTrigger를 사용하여 Azure 함수를 보호하는 방법 및 웹 API에서 다운스트림 API를 호출하는 방법을 보여줍니다.

언어/
플랫폼
코드 샘플
GitHub
Auth
라이브러리
인증 흐름
.NET Microsoft Entra ID로 보호되는 .NET Azure 함수 웹 API MSAL.NET 인증 코드
Python Microsoft Entra ID로 보호되는 Python Azure 함수 웹 API MSAL Python 인증 코드

브라우저리스(헤드리스)

다음 샘플은 웹 브라우저가 없는 디바이스에서 실행되는 공용 클라이언트 애플리케이션을 보여 줍니다. 앱은 명령줄 도구이거나 Linux나 Mac에서 실행되는 앱 또는 IoT 애플리케이션일 수 있습니다. 샘플에는 다른 디바이스(예: 휴대폰)에서 대화형으로 로그인하는 사용자 이름으로 Microsoft Graph API에 액세스하는 앱이 있습니다. 이 클라이언트 애플리케이션은 MSAL(Microsoft 인증 라이브러리)을 사용합니다.

언어/
플랫폼
코드 샘플
GitHub
Auth
라이브러리
인증 흐름
.NET Core 텍스트 전용 디바이스에서, 보호되는 API 호출 MSAL.NET 디바이스 코드
Java 사용자 로그인 및 텍스트 전용 디바이스에서 보호되는 API 호출 MSAL Java 디바이스 코드
Python Microsoft Graph 호출 MSAL Python 디바이스 코드

Microsoft Teams 애플리케이션

다음 샘플은 사용자를 로그인시키는 Microsoft Teams Tab 애플리케이션을 보여 줍니다. 또한 MSAL(Microsoft 인증 라이브러리)을 사용하여 사용자 ID로 Microsoft Graph API를 호출하는 방법을 보여 줍니다.

언어/
플랫폼
코드 샘플
GitHub
Auth
라이브러리
인증 흐름
Node.js Teams Tab 앱: SSO(Single Sign-On) 및 Microsoft Graph 호출 MSAL 노드 OBO(On-Behalf-Of)

다중 테넌트 SaaS

다음 샘플에서는 모든 Microsoft Entra 테넌트에서 로그인을 허용하도록 애플리케이션을 구성하는 방법을 보여 줍니다. 다중 테넌트가 되도록 애플리케이션을 구성하면 SaaS(Software as a Service) 애플리케이션을 많은 조직에 제공할 수 있으므로 해당 동의한 후에 애플리케이션에 로그인할 수 있습니다.

다음 단계

더 많은 샘플 코드를 자세히 알아보려면 다음을 참조하세요.