다음을 통해 공유


빠른 시작: Java 웹앱에서 사용자 로그인 및 Microsoft Graph API 호출

이 빠른 시작에서는 애플리케이션이 사용자를 로그인하고 Microsoft Graph API를 호출할 수 있는 방법을 보여주는 코드 샘플을 다운로드하고 실행합니다. Microsoft Entra 조직의 사용자는 애플리케이션에 로그인할 수 있습니다.

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

필수 조건

이 샘플을 실행하려면 다음이 필요합니다.

빠른 시작 앱 등록 및 다운로드

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

빠른 시작 애플리케이션을 시작하는 방법에는 기본(옵션 1) 및 수동(옵션 2)이라는 두 가지 방법이 있습니다.

옵션 1: 앱을 등록하고 자동으로 구성한 다음, 코드 샘플을 다운로드합니다.

  1. 최소한 클라우드 애플리케이션 관리자 자격으로 Microsoft Entra 관리 센터 - 앱 등록 빠른 시작 환경으로 이동합니다.
  2. 애플리케이션 이름을 입력한 다음, 등록을 선택합니다.
  3. 포털의 빠른 시작 환경에 있는 지침에 따라 자동으로 구성된 애플리케이션 코드를 다운로드합니다.

옵션 2: 애플리케이션 및 코드 샘플을 등록하고 수동으로 구성

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

애플리케이션을 등록하고 앱의 등록 정보를 수동으로 추가하려면 다음 단계를 따르세요.

  1. 최소한 클라우드 애플리케이션 관리자Microsoft Entra 관리 센터에 로그인합니다.
  2. 여러 테넌트에 액세스할 수 있는 경우 위쪽 메뉴의 설정 아이콘을 사용하여 디렉터리 + 구독 메뉴에서 애플리케이션을 등록하려는 테넌트로 전환합니다.
  3. ID>애플리케이션>앱 등록으로 이동하고 신규 등록을 선택합니다.
  4. 애플리케이션의 이름을 입력합니다(예: java-webapp). 앱 사용자에게 이 이름이 표시될 수 있습니다. 나중에 변경할 수 있습니다.
  5. 등록을 선택합니다.
  6. 개요 페이지에서 애플리케이션(클라이언트) ID디렉터리(테넌트) ID를 기록해 둡니다. 나중에 이러한 값이 필요합니다.
  7. 관리에서 인증을 선택합니다.
  8. 플랫폼 추가>을 선택합니다.
  9. 리디렉션 URI 섹션에서 https://localhost:8443/msal4jsample/secure/aad을 입력합니다.
  10. 구성을 선택합니다.
  11. 섹션의 리디렉션 URI에서 https://localhost:8443/msal4jsample/graph/me를 두 번째 리디렉션 URI로 입력합니다.
  12. 관리에서 인증서 및 비밀을 선택합니다. 클라이언트 비밀 섹션에서 새 클라이언트 비밀을 선택합니다.
  13. 키 설명(예: 앱 비밀)을 입력하고, 기본 만료를 그대로 유지하고, 추가를 선택합니다.
  14. 클라이언트 암호의 을 기록해 둡니다. 나중에 필요합니다.

2단계: 코드 샘플 다운로드

코드 샘플 다운로드

3단계: 코드 샘플 구성

  1. zip 파일을 로컬 폴더에 추출합니다.

  2. 선택 사항. 통합 개발 환경을 사용하는 경우 해당 환경에서 샘플을 엽니다.

  3. application.properties 파일을 엽니다. 이는 src/main/resources/ 폴더에서 찾을 수 있습니다. aad.clientId, aad.authorityaad.secretKey 필드의 값을 각각 애플리케이션 ID, 테넌트 ID 및 클라이언트 암호 값으로 바꿉니다. 다음과 같이 표시되어야 합니다.

     aad.clientId=Enter_the_Application_Id_here
     aad.authority=https://login.microsoftonline.com/Enter_the_Tenant_Info_Here/
     aad.secretKey=Enter_the_Client_Secret_Here
     aad.redirectUriSignin=https://localhost:8443/msal4jsample/secure/aad
     aad.redirectUriGraph=https://localhost:8443/msal4jsample/graph/me
     aad.msGraphEndpointHost="https://graph.microsoft.com/"
    

위의 코드에서:

  • Enter_the_Application_Id_here는 등록한 애플리케이션의 애플리케이션 ID입니다.
  • Enter_the_Client_Secret_Here는 등록한 애플리케이션의 인증서 및 비밀에서 만든 클라이언트 암호입니다.
  • Enter_the_Tenant_Info_Here는 등록한 애플리케이션의 디렉터리(테넌트) ID 값입니다.
  1. localhost와 함께 HTTPS를 사용하려면 server.ssl.key 속성을 제공합니다. 자체 서명된 인증서를 생성하려면 JRE에 포함된 keytool 유틸리티를 사용합니다.

예를 들면 다음과 같습니다.

keytool -genkeypair -alias testCert -keyalg RSA -storetype PKCS12 -keystore keystore.p12 -storepass password

server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=password
server.ssl.key-alias=testCert
  1. 생성된 키 저장소 파일을 resources 폴더에 배치합니다.

4단계: 코드 샘플 실행

프로젝트를 실행하려면 다음 단계 중 하나를 수행합니다.

  • 포함된 Spring Boot 서버를 사용하여 IDE에서 직접 실행합니다.
  • Maven을 사용하여 WAR 파일에 패키징한 다음, Apache Tomcat과 같은 J2EE 컨테이너 솔루션에 배포합니다.
IDE에서 프로젝트 실행

IDE에서 웹 애플리케이션을 실행하려면 실행을 선택한 다음, 프로젝트의 홈페이지로 이동합니다. 이 샘플의 경우 표준 홈 페이지 URL이 https://localhost:8443.입니다.

  1. 전면 페이지에서 로그인 단추를 선택하여 사용자를 Microsoft Entra ID로 리디렉션하고 자격 증명을 입력하라는 메시지를 표시합니다.

  2. 사용자가 인증되면 https://localhost:8443/msal4jsample/secure/aad로 리디렉션됩니다. 이제 사용자가 로그인되었으며, 사용자 계정에 대한 정보가 페이지에 표시됩니다. 샘플 UI에는 다음과 같은 단추가 있습니다.

    • 로그아웃: 애플리케이션에서 현재 사용자를 로그아웃하고 홈페이지로 리디렉션합니다.
    • 사용자 정보 표시: Microsoft Graph에 대한 토큰을 획득하고, 로그인한 사용자에 대한 기본 정보를 반환하는 토큰을 포함하는 요청을 사용하여 Microsoft Graph를 호출합니다.
Tomcat에서 프로젝트 실행

웹 샘플을 Tomcat에 배포하려면 소스 코드를 몇 가지 변경합니다.

  1. ms-identity-java-webapp/src/main/java/com.microsoft.azure.msalwebsample/MsalWebSampleApplication을 엽니다.

    • 모든 소스 코드를 삭제하고 다음 코드로 바꿉니다.

       package com.microsoft.azure.msalwebsample;
      
       import org.springframework.boot.SpringApplication;
       import org.springframework.boot.autoconfigure.SpringBootApplication;
       import org.springframework.boot.builder.SpringApplicationBuilder;
       import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
      
       @SpringBootApplication
       public class MsalWebSampleApplication extends SpringBootServletInitializer {
      
        public static void main(String[] args) {
         SpringApplication.run(MsalWebSampleApplication.class, args);
        }
      
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
         return builder.sources(MsalWebSampleApplication.class);
        }
       }
      
  2. Tomcat의 기본 HTTP 포트는 8080이지만 포트 8443을 통한 HTTPS 연결이 필요합니다. 이 설정을 구성하려면 다음을 수행합니다.

    • tomcat/conf/server.xml로 이동합니다.

    • <connector> 태그를 검색하고 기존 커넥터를 다음 커넥터로 바꿉니다.

      <Connector
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               port="8443" maxThreads="200"
               scheme="https" secure="true" SSLEnabled="true"
               keystoreFile="C:/Path/To/Keystore/File/keystore.p12" keystorePass="KeystorePassword"
               clientAuth="false" sslProtocol="TLS"/>
      
  3. 명령 프롬프트 창을 엽니다. 이 샘플의 루트 폴더(pom.xml 파일이 있는 위치)로 이동하고 mvn package을(를) 실행하여 프로젝트를 빌드합니다.

    • 이 명령은 /targets 디렉터리에 msal-web-sample-0.1.0.war 파일을 생성합니다.
    • 이 파일의 이름을 msal4jsample.war(으)로 변경
    • Tomcat 또는 기타 J2EE 컨테이너 솔루션을 사용하여 WAR 파일을 배포합니다.
      • msal4jsample.war 파일을 배포하려면 Tomcat 설치의 /webapps/ 디렉터리에 복사한 다음 Tomcat 서버를 시작합니다.
  4. 파일이 배포된 후 브라우저를 사용하여 https://localhost:8443/msal4jsample로 이동합니다.

Important

이 빠른 시작 애플리케이션에서는 클라이언트 암호를 사용하여 자체를 기밀 클라이언트로 식별합니다. 클라이언트 암호는 보안상의 이유로 프로젝트 파일에 일반 텍스트로 추가되므로, 이 애플리케이션을 프로덕션 환경으로 사용하기 전에 클라이언트 암호 대신 인증서를 사용하는 것이 좋습니다. 인증서를 사용하는 방법에 대한 자세한 내용은 애플리케이션 인증을 위한 인증서 자격 증명을 참조하세요.

자세한 정보

샘플 작동 방법

이 빠른 시작에서 생성된 샘플 앱의 작동 방식을 보여 주는 다이어그램

MSAL 가져오기

Java용 MSAL(MSAL4J)은 사용자를 로그인시키고 Microsoft ID 플랫폼으로 보호되는 API 액세스에 사용되는 토큰을 요청할 때 사용되는 Java 라이브러리입니다.

Maven이나 Gradle을 사용하여 MSAL4J를 애플리케이션에 추가하고 애플리케이션의 pom.xml(Maven) 또는 build.gradle(Gradle) 파일을 다음과 같이 변경하여 종속성을 관리합니다.

pom.xml에서:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>msal4j</artifactId>
    <version>1.0.0</version>
</dependency>

build.gradle에서:

compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'

MSAL 초기화

MSAL4J를 사용할 파일의 시작 부분에 다음 코드를 추가하여 Java용 MSAL에 대한 참조를 추가합니다.

import com.microsoft.aad.msal4j.*;

도움말 및 지원 

도움이 필요하거나, 문제를 보고하거나, 지원 옵션에 대해 알아보려면 개발자를 위한 도움말 및 지원을 참조하세요.

다음 단계

Microsoft ID 플랫폼에서 사용자를 로그인시키는 웹앱을 빌드하는 방법에 대한 자세한 내용은 다중 파트 시나리오 시리즈를 참조하세요.