본문 바로가기
Web

Azure 인증 연동하기

by 준토리73 2024. 6. 28.

Azure 연동이 뭘까... 

 

SSO 연동이 아이디 하나로 로그인을 하는 것인데, 아이디만으로도 로그인을 하는 세상이라니.. 

아이디 뿐만 아니라 기존 App 에 뭔가 튼튼한 인증 절차를 넣을 수 없을까? 해서 나온것이 Azure라고 함. 

프로젝트의 솔루션 점유율이 꽤 되는 회사임에도 SSO가 지원되지 않고, MFA가 없기에 이방법을 통해 보안을 강화하고 있다고 한다. 

 

요즘 많은 앱들이 id/pw에서 MFA를 지원하기 시작했다고 함.

알고있는 id/pw외에 가지고 있는 물건에 대한 인증 또는 생체 인증을 덧붙여, 조금 더 안전하게 인증을 진행하고 있다는 것!

 

얼렁뚱땅 설명.. 일단 직접 해보는게 좋겠지해서 무작정 실제 연동하는 것을 시작해보았다. 

 

일단 윈도우에서 Spring Boot는 써봤지만 리눅스에서는 처음이라 연동하는 법에 대해서 정리를 해보자. 

 

 

📌 가이드를 참고하여 인증 연동을 해보자. 

https://learn.microsoft.com/ko-kr/azure/developer/java/spring-framework/configure-spring-boot-starter-java-app-with-azure-active-directory?toc=/entra/identity-platform/toc.json&bc=/entra/identity-platform/breadcrumb/toc.json

 

Spring 웹앱에 Microsoft Entra 계정으로 로그인 추가 - Java on Azure

Microsoft Entra 계정에서 로그인을 지원하는 Spring 웹앱을 개발하는 방법을 보여 줍니다.

learn.microsoft.com

 

 

📌 자바 설치(JDK17)  or 자바 업그레이드

우선 자바를 설치하자. 버전은 JDK 17로 긔긔. 

설치 경로는 연동할 프로그램의 자바 경로 위치 /vex/daemon/java 

기존에 있는 소프트 링크를 삭제(unlink나 rm) 후 새로운 소프트링크를 걸어주어야한다. (ln -s) 

jdk -> jdk-17.0.11
jre -> jdk-17.0.11

 

 

📌 리눅스에 Maven설치 

https://maven.apache.org/download.cgi

 

Maven – Download Apache Maven

Downloading Apache Maven 3.9.8 Apache Maven 3.9.8 is the latest release: it is the recommended version for all users. System Requirements Java Development Kit (JDK) Maven 3.9+ requires JDK 8 or above to execute. It still allows you to build against 1.3 and

maven.apache.org

위 링크로 접속해서 archives를 찾아 클릭해줌 

최신 버전으로 설치해준다! 

 

1. wget으로 설치 

wget http://apache.mirror.cdnetworks.com/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

 

2. 압축해제

tar -xf apache-maven-3.6.0-bin.tar.gz

 

📌 Maven 환경설정 

1. 환경변수 설정을 위해 profile.d에 maven.sh 생성

cd /etc/profile.d/
sudo vi maven.sh

 

2. maven.sh 파일에 내용 입력

# Apache Maven Environment Variables
# MAVEN_HOME for Maven 1 - M2_HOME for Maven 2
export MAVEN_HOME=/usr/local/maven
export PATH=${MAVEN_HOME}/bin:${PATH}

 

 

3.실행가능하게 변경 후 source 실행 

chmod +x maven.sh
source /etc/profile.d/maven.sh

 

4. 메이븐 버전 확인 

mvn --version

 

이때 설치를 제대로 했음에도 버전이 안뜬다면 경로 문제! 

MAVEN_HOME으로 환경 변수 설정한 경로와 같아야한다. 

 

 

📌 Microsoft Azure 앱 등록 등등 

Azure에서 앱 등록하는 것은 가이드에서 잘 나와있으니 거기서 참고하도록 한다.

 

 

 

📌 앱 구성 및 컴파일 

1. 밑의 링크에서 프로젝트 아카이브 파일을 디렉터리로 추출 

https://start.spring.io/

Add Dependency 후 Generate하면

demo.zip 이라는 파일이 나오는데 그것을 테스트하려는 서버에 넣자. 

 

2. 가이드에서 등록하고 생성한 값들을 사용하여 앱 등록에 대한 설정을 지정하자. 

# Enable related features.
spring.cloud.azure.active-directory.enabled=true
# Specifies your Active Directory ID:
spring.cloud.azure.active-directory.profile.tenant-id=22222222-2222-2222-2222-222222222222
# Specifies your App Registration's Application ID:
spring.cloud.azure.active-directory.credential.client-id=11111111-1111-1111-1111-1111111111111111
# Specifies your App Registration's secret key:
spring.cloud.azure.active-directory.credential.client-secret=AbCdEfGhIjKlMnOpQrStUvWxYz==

위의 값들은 임의로 넣은것이니 페이지에서 발급받은 걸로 tenant-id, client-id, client-secret 등을 넣어놓자.

 

 

mvn clean package
mvn springboot:run

 

🚫 오류 봉착 

 

1. 빌드는 잘 되었는데 8080 이 이미 사용중이라고 한다

=> Spring Boot 는 기본적으로 8080포트로 설정되어 있는데, 위의 오류는 웹 서버가 시작하지 못하고 포트 8080이 이미 사용중인 경우 발생. 

 

 

2. 빌드는 잘 되었는데 port 가 중복이라고 한다. 

 

=> 해결방법은 cmd 와 프로젝트 application.properties 에서 수정하여 해결할 수 있음. 

server.port=8088

 

 

 

 

댓글