ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1. WSO2 Identity Server 설치 하기
    Tutorials & Tips/WSO2 Identity Server 2022. 4. 21. 18:38

    WSO2 Identity Server는 오픈 소스이며 WSO2 웹사이트 에서 다운로드할 수 있습니다. WSO2 Identity Server는 오픈 소스 제품이며 비용을 지불할 필요가 없습니다. (단, 기술 지원 및 패치관리를 위한 유료 subscription은 필요)

     

    WSO2의 통합 애자일 플랫폼의 일부인 WSO2 Identity Server는 인증 상황에 따라 능동적으로 대응하기 위한 Adaptive 인증 및 강력한 인증을 포괄적으로 지원하는 ID 연합 및 SSO에 최적화된 고유하게 유연한 오픈 소스 IAM 제품입니다. ID 관리자는 ID Federation 및 웹/모바일 애플리케이션 및 엔드포인트에 대한 접근을 제어하며, 온프레미스 및 클라우드 환경에서 다양한 ID 프로토콜을 연결할 수 있습니다.

     

    그럼 WSO2 Identity Server를 어떻게 설치하고, 설치 후 제품을 어떻게 시작하는지 알아보겠습니다.

     

    사전 준비 요구 사항

    WSO2는 오픈 소스 Java 제품(많은 Apache 프로젝트 포함)이며 JDK(Java Development Kit)가 필요합니다. 

    https://is.docs.wso2.com/en/latest/setup/installation-prerequisites/ 에 페이지를 참조하여 WSO2 Identity Server 설치 이전에 필요한 내용들을 자세히 확인할 수 있으며, 필수적인 사전 준비 항목을 아래와 같습니다.

    • 시스템 요구 사항 
      - 4 vCPU (x86_64 아키텍처)
      - 4 GB 메모리 및 10GB 하드 디스크
    • 시스템 호환 환경
      - 설치 및 구성 관련되어 호환되는 모든 환경 내역 (https://is.docs.wso2.com/en/latest/setup/environment-compatibility/)
    • Java Development Kit 8 / 11
      - Oracle JDK 8 / 11
      - Open JDK 8 / 11
    • DBMS
      - MySQL 8.0, MySQL 5.7
      - Oracle 19c, Oracle 12c
      - Microsoft SQL Server 2019
      - DB2 v11.5
      - Postgres 13, Postgres 12.2, Postgres 12.4
      - MariaDB 10.4.13

    DBMS의 경우에 미리 설치하지 않고, WSO2 Identity Server 를 설치하면 내장되어 있는 H2 DataBase 를 자동적으로 설치합니다. 하지만, 제품의 테이블 구조나 데이터 조회 차원에서 위의 지원 DataBase 중에 선택한 뒤에 WSO2 Identity Server 설치 이전에 Database 설치 및 DataBase 생성, ID/Password 를 미리 설정하도록 합니다.

     

    본 실습 과정에서는 MariaDB 10.5.11 버전으로 아래와 같은 환경으로 사전에 설치하여 구성하였으며, MariaDB 설치 및 Database 생성, ID/Password 설정은 관련 사이트들을 참조하시어 구성하시기 바랍니다.

    • DataBase Version : 10.5.11
    • DataBase Name : wso2carbon
    • 사용자 ID 및 Password : wso2user / xxxxxxx

    설치 파일 다운로드

    WSO2 사이트 (https://wso2.com/identity-server/) 접속 후, Try It Now 버튼을 클릭하여 다운로드 페이지로 이동합니다.

    아래 그림 1과 같이 다양한 플랫폼 (Linux/Unix, Windows, Docker, AWS, MacOS 등) 별  설치 파일을 제공하고 있음에 따라, 설치 대상 플랫폼에 해당하는 파일을 다운로드 하도록 합니다. 

    설치를 위해 Email 주소 등록 및 Software License 동의 체크 박스에 체크 후에 다운로드 가능합니다.

    여기서는 CentOS 상에 설치하기 위애 "Zip Archive" 버전으로 다운로드 받아 설치합니다.

    <그림 1> 플랫폼 별 설치 파일 다운로드 페이지

    OpenJDK 11 및 wso2 5.11 서버 설치

    다운로드한 openjdk 11 (openjdk-11.0.2_linux-x64_bin.tar) 과 zip 파일 형태 wso2 5.11 설치 파일(wso2is-5.11.0.zip)을  CentOS 서버에 업로드한 뒤에 압축을 해제하여 설치하도록 하며, CentOS 의 home 경로는 /home/wso2 입니다.

    <그림 2> openJDK 11 및 wso2 5.11 파일 업로드

    • OpenJDK 11 설치
      tar xvf openjdk-11.0.2_linux-x64_bin.tar -C /home/wso2
    • JAVA_HOME 및 JDK 경로 설정
      vi /home/wso2/.bash_profile
      ................
      export JAVA_HOME=/home/wso2/jdk-11.0.2
      PATH=$JAVA_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin

      export PATH

    <그림 3> JAVA_HOME 및 JDK 경로 설정

    • wso2 5.11 설치
      아래와 같이 unzip 명령어를 수행하여 wso2is-5.11.0.zip 압축 파일을 풀어서 설치하도록 합니다.
      unzip wso2is-5.11.0.zip -d /home/wso2

    Database 내 WSO2 용 Table 생성

    기본적으로 WSO2 Identity Server는 사용자 관리 및 레지스트리 데이터를 저장하기 위한 데이터베이스로 내장된 H2 데이터베이스를 사용합니다. MariaDB로 변경하기 위해서는 아래와 같은 절차를 수행하도록 합니다.

    Oracle, IBM DB2, MSSQL, MYSQL, PostgreSQL 등으로 변경하기 위해서는 아래 URL를 참조하시면 됩니다. (https://is.docs.wso2.com/en/latest/setup/working-with-databases/)

     

    데이터 소스는 데이터베이스에 대한 연결을 설정하는 데 사용되며, WSO2_IDENTITY_DB 및 WSO2_SHARED_DB 의 데이터소스는 기본 H2 데이터베이스에 연결하는 데 사용됩니다.

    • WSO2_SHARED_DB :  레지스트리 및 사용자 관리 데이터를 저장하는 데이터 소스.
    • WSO2_IDENTITY_DB : ID 관련 데이터를 저장하는 ID 서버 전용 데이터 소스

    MariaDB 데이터베이스를 설정한 후 아래 지침에 따라, WSO2_IDENTITY_DB 또는 WSO2_SHARED_DB 또는 둘 다를 

    MariaDB 데이터베이스로 지정할 수 있습니다.

     

    사용 중인 버전의 MariaDB에 해당하는 JDBC 드라이버를 다운로드하고, <IS_HOME>/repository/components/lib폴더 에 복사합니다. 여기서는 mariadb-java-client-2.4.3.jar 을 업로드하여 설정하였습니다.

     

    <그림 4> jdbc 드라이어 업로드

    기본 데이터 소스 변경

    <IS-HOME>/repository/conf/deployment.toml 파일에서 아래 sample을 참조하여 MariaDB로 변경할 구성을 추가합니다.

     

    1) url = "jdbc:mariadb://localhost:3306/wso2carbon?useSSL=false" 와 같이 MariaDB 주소 및 포트 번호, Database 명을 설정합니다.

     

    [user_store]
    type = "database_unique_id"

    [database.user]
    url = "jdbc:mariadb://localhost:3306/wso2carbon?useSSL=false"
    username = "wso2user"
    password = " xxxxxxxxxx"
    driver = "org.mariadb.jdbc.Driver"

    [realm_manager]
    data_source = "WSO2USER_DB"

    [database.identity_db]
    type = "mariadb"
    url = "jdbc:mariadb://localhost:3306/wso2carbon"
    username = "wso2user"
    password = "xxxxxxxxxx"

    [database.identity_db.pool_options]
    maxActive = "80"
    minIdle ="5"
    testOnBorrow = true
    validationQuery="SELECT 1"
    validationInterval="30000"
    defaultAutoCommit=false

    [database.shared_db]
    type = "mariadb"
    url = "jdbc:mariadb://localhost:3306/wso2carbon"
    username = "wso2user"
    password = "xxxxxxxxxx"

    [database.shared_db.pool_options]
    maxActive = "80"
    minIdle ="5"
    testOnBorrow = true
    validationQuery="SELECT 1"
    validationInterval="30000"

    Database Script 실행

    <IS-HOME>/dbscripts/ 로 이동하여 설치 구성한 Database에 해당되는 Database script 를 실행합니다. MariaDB 의 경우에는 mysql 버전의 script를 실행하도록 하도록 합니다.

    • WSO2_SHARED_DB
      <IS-HOME>/dbscripts/mysql.sql
    • WSO2_IDERNTITY_DB
      - <IS-HOME>/dbscripts/identity/mysql.sql
      - <IS-HOME>/dbscripts/identity/uma/mysql.sql
      - <IS-HOME>/dbscripts/consent/mysql.sql
    • StoredProcedure 수행
      - <IS-HOME>/dbscripts/identity/mysql/registry-cleanup
      - <IS-HOME>/dbscripts/identity/mysql/sessiondata-cleanup
      - <IS-HOME>/dbscripts/identity/mysql/token-cleanup

     

     

     

     

     

     

    해당 script 들이 정상적으로 완료된 후, 테이블 생성 내역을  DBeaver 등의 DB 연결 도구를 이용하여 확인하도록 합니다.

    <그림 5> 테이블 생성 후, DBeaver를 이용하여 Table 생성 여부 확인

    WSO2 Identity Server 실행

    WSO2 Identity Server의 아래 경로에서 Linux 계열의 경우 wso2server.sh 로, 윈도우즈 계열의 경우는 wso2server.bat 의 명령어를 수행하여 실행하도록 합니다.

    <그림 6> WSO2 Idetity Server 실행

    WSO2 Identity Server가 정상적으로 구동이 완료 여부를 확인하도록 하며, <IS-HOME>/repository/logs/wso2carbon.log 로그 파일을 확인하도록 합니다.

    <그림 7> WSO2 Identity Server 실행

    서버 구동이 완료되면, https://${WSO2 서버IP}:9443/ 을 접속하여 관리자 페이지에 접근이 가능하며, 초기 관리자 계정 및 password 는 admin / admin 입니다.

     

    <그림 8> WSO2 Identity Server 초기 로그인 페이지
    <그림 9> 초기 접속 메인 페이지

    댓글

Designed by Tistory.