빠른 시작: MSAL 노드를 사용하여 Node.js 애플리케이션에서 사용자 로그인 및 Microsoft Graph API 호출

이 빠른 시작에서는 인증 코드 흐름을 사용하여 Node.js 웹앱에서 사용자를 로그인할 수 있는 방법을 보여주는 코드 샘플을 다운로드하고 실행합니다. 코드 샘플은 Microsoft Graph API를 호출하기 위한 액세스 토큰을 가져오는 방법도 보여줍니다.

자세한 내용은 샘플 작동 방식을 참조하세요.

이 빠른 시작에서는 인증 코드 흐름과 함께 Node.js용 Microsoft 인증 라이브러리(MSAL 노드)를 사용합니다.

필수 구성 요소

빠른 시작 애플리케이션 등록 및 다운로드

1단계: 애플리케이션 등록

이 문서의 단계는 시작하는 포털에 따라 약간 다를 수 있습니다.

  1. 최소한 클라우드 애플리케이션 관리자Microsoft Entra 관리 센터에 로그인합니다.
  2. 여러 테넌트에 액세스할 수 있는 경우 위쪽 메뉴의 설정 아이콘을 사용하여 디렉터리 + 구독 메뉴에서 애플리케이션을 등록하려는 테넌트로 전환합니다.
  3. ID>애플리케이션>앱 등록으로 이동하고 신규 등록을 선택합니다.
  4. 애플리케이션의 이름을 입력합니다. 이 이름은 앱의 사용자에게 표시될 수 있으며 나중에 변경할 수 있습니다.
  5. 지원되는 계정 유형에서 이 조직 디렉터리의 계정만을 선택합니다.
  6. 리디렉션 URI 형식을 으로 설정하고 값을 http://localhost:3000/auth/redirect로 설정합니다.
  7. 등록을 선택합니다.
  8. 나중에 사용할 수 있도록 앱 개요 페이지에서 애플리케이션(클라이언트) ID 값을 기록해 둡니다.
  9. 관리 아래에서 인증서 및 비밀>클라이언트 암호>새 클라이언트 암호를 선택합니다. 설명을 비워 두고 기본 만료를 그대로 둔 다음, 추가를 선택합니다.
  10. 나중에 사용할 수 있도록 클라이언트 암호의 값을 기록해 둡니다.

2단계: 프로젝트 다운로드

Node.js를 사용하여 웹 서버로 프로젝트를 실행하려면 주요 프로젝트 파일을 다운로드합니다.

3단계: 노드 앱 구성

프로젝트를 추출하고 ms-identity-node-main 폴더를 연 다음, App 폴더에서 index.js 파일을 엽니다. 위의 값을 다음과 같이 바꿉니다.

변수 설명 예시
Enter_the_Cloud_Instance_Id_Here 애플리케이션이 등록된 Azure 클라우드 인스턴스입니다. https://login.microsoftonline.com/(후행 슬래시 포함)
Enter_the_Tenant_Info_here 테넌트 ID 또는 주 도메인 contoso.microsoft.com 또는 aaaabbbb-0000-cccc-1111-dddd2222eeee
Enter_the_Application_Id_Here 등록한 애플리케이션의 클라이언트 ID 00001111-aaaa-2222-bbbb-3333cccc4444
Enter_the_Client_Secret_Here 등록한 애플리케이션의 클라이언트 암호 A1b-C2d_E3f.H4i,J5k?L6m!N7o-P8q_R9s.T0u
Enter_the_Graph_Endpoint_Here 앱에서 호출할 Microsoft Graph API 클라우드 인스턴스 https://graph.microsoft.com/(후행 슬래시 포함)
Enter_the_Express_Session_Secret_Here Express 세션 쿠키에 서명하는 데 사용되는 임의의 문자열 A1b-C2d_E3f.H4...

파일은 다음과 유사하게 표시되어야 합니다.

CLOUD_INSTANCE=https://login.microsoftonline.com/
TENANT_ID=aaaabbbb-0000-cccc-1111-dddd2222eeee
CLIENT_ID=00001111-aaaa-2222-bbbb-3333cccc4444
CLIENT_SECRET=A1b-C2d_E3f.H4...

REDIRECT_URI=http://localhost:3000/auth/redirect
POST_LOGOUT_REDIRECT_URI=http://localhost:3000

GRAPH_API_ENDPOINT=https://graph.microsoft.com/

EXPRESS_SESSION_SECRET=6DP6v09eLiW7f1E65B8k

4단계: 프로젝트 실행

Node.js를 사용하여 프로젝트를 실행합니다.

  1. 서버를 시작하려면 프로젝트의 디렉터리 내에서 다음 명령을 실행합니다.

    cd App
    npm install
    npm start
    
  2. http://localhost:3000/(으)로 이동합니다.

  3. 로그인을 선택하여 로그인 프로세스를 시작합니다.

    사용자가 처음으로 로그인하면 애플리케이션이 사용자 프로필에 액세스하고 로그인할 수 있도록 동의하라는 메시지가 표시됩니다. 성공적으로 로그인하면 애플리케이션 홈페이지로 다시 리디렉션됩니다.

자세한 정보

샘플 작동 방법

이 샘플은 localhost, 포트 3000에서 웹 서버를 호스팅합니다. 웹 브라우저가 이 주소에 액세스하면 앱이 홈페이지를 렌더링합니다. 사용자가 로그인을 선택하면 앱은 MSAL 노드 라이브러리에서 생성된 URL을 통해 브라우저를 Microsoft Entra 로그인 화면으로 리디렉션합니다. 사용자가 동의하면 브라우저는 ID 및 액세스 토큰과 함께 사용자를 애플리케이션 홈페이지로 다시 리디렉션합니다.

MSAL 노드

MSAL 노드 라이브러리는 사용자를 로그인하고 Microsoft ID 플랫폼으로 보호되는 API 액세스에 사용되는 토큰을 요청합니다. Node.js 패키지 관리자(npm)를 사용하여 최신 버전을 다운로드할 수 있습니다.

npm install @azure/msal-node

다음 단계

다음 다중 파트 자습서 시리즈에서 사용자를 로그인하는 ASP.NET Core 웹앱을 빌드하여 자세히 알아보세요.