Azure 연동이 뭘까...
SSO 연동이 아이디 하나로 로그인을 하는 것인데, 아이디만으로도 로그인을 하는 세상이라니..
아이디 뿐만 아니라 기존 App 에 뭔가 튼튼한 인증 절차를 넣을 수 없을까? 해서 나온것이 Azure라고 함.
프로젝트의 솔루션 점유율이 꽤 되는 회사임에도 SSO가 지원되지 않고, MFA가 없기에 이방법을 통해 보안을 강화하고 있다고 한다.
요즘 많은 앱들이 id/pw에서 MFA를 지원하기 시작했다고 함.
알고있는 id/pw외에 가지고 있는 물건에 대한 인증 또는 생체 인증을 덧붙여, 조금 더 안전하게 인증을 진행하고 있다는 것!
얼렁뚱땅 설명.. 일단 직접 해보는게 좋겠지해서 무작정 실제 연동하는 것을 시작해보았다.
일단 윈도우에서 Spring Boot는 써봤지만 리눅스에서는 처음이라 연동하는 법에 대해서 정리를 해보자.
📌 가이드를 참고하여 인증 연동을 해보자.
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. 밑의 링크에서 프로젝트 아카이브 파일을 디렉터리로 추출
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
'Web' 카테고리의 다른 글
[JAVA] 취약점 관련 오류 IOException :javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure (0) | 2024.01.16 |
---|---|
Nginx란 ? (0) | 2024.01.11 |
[Web] REST API 이모저모.. (0) | 2023.11.13 |
댓글