주:
- 이 자습서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 자격 증명, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 완료했으면 이러한 값을 자신의 클라우드 환경과 관련된 값으로 대체하십시오.
Single Sign-On용 ID 도메인과 Rocket.Chat 통합
소개
Rocket.Chat는 정교한 보안 및 개인 정보 보호 문제가 있는 조직을 위한 안전하고 사용자 정의가 가능한 오픈 소스 통신 플랫폼입니다. Rocket.Chat는 사용자 데이터 및 대화에 대한 완전한 제어를 제공합니다. 이 플랫폼은 네이티브 앱, 타사 애플리케이션과의 원활한 통합, 채널 간 협업, SAML(Security Assertion Markup Language) 기반 SSO(Single Sign-On) 및 API를 사용한 구성 제어를 지원합니다.
Oracle Cloud Infrastructure Identity and Access Management(OCI IAM)는 사용자 및 역할 관리, 사용자 통합 및 프로비저닝, Oracle SSO 구성을 통한 보안 애플리케이션 통합, SAML/OAuth 기반 ID 제공자(IdP) 관리를 위한 컨테이너입니다.
이 사용지침서에서는 Rocket.Chat 설치를 자동화하고 OCI IAM을 SSO용 IdP으로 통합합니다.
목표
-
Terraform 기반 스택을 사용하여 다음 리소스를 생성합니다.
- 키 저장소 및 HSM(하드웨어 보안 모듈) 보호 키입니다.
- 인증서 및 인증 기관(CA)의 약어입니다.
- Rocket.Chat를 호스트할 OCI 컴퓨트 인스턴스입니다.
- Rocket.Chat에 안전하게 액세스할 수 있는 OCI 로드 밸런서입니다.
-
컴퓨트 인스턴스에 Rocket.Chat을 자동으로 배포하고 생성된 로드 밸런서를 여기에 추가합니다.
-
Rocket.Chat를 설정하고 OCI IAM용 SAML 기반 IdP을 생성합니다.
-
OCI IAM 및 Rocket.Chat 간 SSO 플로우를 테스트합니다.
필요 조건
-
활성 OCI 구독.
-
ID 도메인 및 관리 계정입니다.
-
OCI IAM 및 Terraform에 대해 잘 알고 있어야 합니다.
-
기존 VCN 및 공용 서브넷.
-
수신 트래픽에 대해 다음 포트가 열려 있는 보안 목록입니다.
유형 소스 포트 소스 CIDR 대상 포트 프로토콜 설명 수신 모두 0.0.0.0/0 22 TCP SSH 수신 모두 0.0.0.0/0 3000 TCP Rocket.Chat 서버의 경우 수신 모두 0.0.0.0/0 443 TCP 표준 HTTPS 포트 수신 모두 0.0.0.0/0 80 TCP 포트에 대한 TCP 트래픽: 80
작업 1: 스택을 배치하여 Rocket.Chat 설치 및 자동화된 Terraform 스택을 사용하여 SAML 애플리케이션 생성
Rocket.Chat는 다른 방법을 사용하여 배치할 수 있습니다. 이 사용지침서에서는 Docker 및 Docker 작성과 함께 배포 옵션을 사용했습니다. 자세한 내용은 Rocket.Chat 배포를 참조하십시오.
Rocket.Chat 설치를 용이하게 하기 위해 Terraform 자동화 스택을 만들었습니다. 이 스택은 다음을 수행합니다.
- VM.Standard.E2.1 구성의 호스트 Linux 상자를 만듭니다.
- Rocket.Chat를 설치합니다.
- 인터넷을 통해 키 저장소, HSM 보호 키, 인증 기관 및 SSL(Secure Sockets Layer) 통신을 위한 인증서를 만듭니다.
- 로드 밸런서를 배치하고 SSL을 통해 Rocket.Chat에 액세스하도록 구성합니다.
- 기존 ID 도메인 아래에 SAML 애플리케이션을 생성합니다.
주: 링크된 스택을 실행하기 전에 생성할 리소스에 대한 서비스 제한을 확인해야 합니다. 자세한 내용은 IAM With Identity Domains Limits을 참조하십시오.
-
Full_Stack_Rocket.Chat.zip에서 Rocket.Chat 전체 스택을 다운로드합니다.
Rocket.Chat 전체 스택 zip 파일이 다운로드되면 파일의 압축을 풀고
-rchat.pem
파일의 내용을 개별 개인 키 콘텐츠로 바꿉니다.참고: OCI 콘솔에서 OCI Resource Manager를 사용하여 오류를 방지할 수 있도록 스택을 배포할 수 있습니다.
-
OCI 콘솔에 관리 사용자로 로그인하고 개발자 서비스로 이동한 다음 리소스 관리자에서 스택을 누릅니다.
-
컴파트먼트를 선택하고 스택 생성을 누릅니다. 스택 구성 섹션에서 단계 1에서 다운로드한 스택 zip 파일을 선택하여 스택을 배치하고 다음을 누릅니다.
-
변수 구성 페이지에서 컴퓨트 인스턴스 및 기타 리소스를 생성하는 데 필요한 세부정보를 입력하고 다음을 누릅니다.
참고: 컴퓨트 인스턴스 및 로드 밸런서를 생성하려면 퍼블릭 접속이 가능한 기존 VCN이 필요합니다.
-
검토 페이지에서 제공된 세부정보를 검토하고 생성을 누릅니다.
-
스택 세부정보 페이지에서 계획을 누릅니다. Success 출력이 표시됩니다.
-
스택 세부정보 페이지에서 적용을 누릅니다. Success 출력이 표시됩니다.
-
스택이 성공적으로 실행된 후 Rocket.Chat를 호스팅하는 컴퓨트 인스턴스와 IAM 도메인의 SAML 애플리케이션에 연결된 로드 밸런서를 찾을 수 있습니다.
주: 스택 실행에 약 40분이 걸릴 수 있습니다. 작업이 성공할 때까지 기다립니다.
작업 2: Rocket.Chat 관리 계정 설정
이 작업에서는 로컬 시스템의 hosts 파일을 업데이트한 다음 배치된 리소스를 검증합니다.
Windows의 경우: C:\Windows\System32\Drivers\etc\hosts
.
Linux의 경우: /etc/hosts
Public IP Address of Load Balancer your-domain-name.com
https://your-domain-name.com:443
에서 Rocket.Chat에 액세스하면 설정 페이지로 재지정됩니다.
주: 관리 비밀번호를 안전하게 유지하려면 Rocket.Chat에서 SAML IdP을 생성하는 동안 이 비밀번호가 필요합니다.
작업 3: Single Sign-On을 위해 Rocket.Chat에 SAML IdP 생성
-
Rocket.Chat 인스턴스에 로그인하고 작업영역 및 설정으로 이동합니다.
-
설정 창에서 SAML을 입력하고 열기를 누릅니다.
-
접속 페이지에서 사용을 선택합니다. 다음 세부 정보를 입력하고 변경 사항 저장을 누릅니다. 관리자 비밀번호를 묻는 프롬프트가 표시될 경우 비밀번호를 입력합니다.
-
사용자 정의 제공자:
idcs
를 입력합니다. -
사용자 정의 시작점 업데이트: 사용자 정의 시작점을 입력합니다. 예:
https://idcs-xxxx.identity.oraclecloud.com/fed/v1/idp/sso
. -
IDP SLO 재지정 URL: IdP SLO 재지정 URL을 입력합니다. 예:
https://idcs-xxxx.identity.oraclecloud.com/fed/v1/idp/slo
. -
사용자정의 발행자: 사용자정의 발행자를 입력합니다. 예:
https://your-domain-name.com/_saml/metadata/idcs
. -
사용자정의 인증서: 스택을 사용하여 생성된 SAML 애플리케이션에서 서명 인증서를 다운로드하고 콘텐츠를 복사합니다.
주: BEGIN CERTIFICATE 및 END CERTIFICATE 행을 제외시키십시오.
-
공용 인증서 콘텐츠: 인증서의 전체 콘텐츠를 복사합니다.
-
서명 검증 유형: 검증 서명 검증을 선택합니다.
주: 동일한 사용자정의 제공자 정적 값을 사용합니다. 그렇지 않으면 SSO가 작업 1에서 생성된 SAML 애플리케이션에서 참조되므로 실패할 수 있습니다.
-
-
일반 사항 페이지의 사용자 인터페이스 섹션에서 단추 텍스트 및 기타 세부정보를 변경해야 할 경우 업데이트하고 변경 사항 저장을 누릅니다.
작업 4: OCI IAM을 사용하여 Rocket.Chat에 대한 SSO 테스트
-
브라우저를 열고 Rocket.Chat
https://demo.rocketchat.com:443
에 대한 URL을 입력합니다. -
OCI IAM ID 도메인 사인인 페이지가 나타납니다. 이전에 만든 사용자의 Username(사용자 이름) 및 Password(암호)를 사용합니다.
-
인증에 성공하면 사용자가 Rocket.Chat 홈 페이지로 재지정됩니다.
참고: 공통 사용자가 OCI IAM 및 Rocket.Chat에서 동일한 전자메일 주소로 생성되어 있어야 합니다.
OCI IAM을 사용한 Rocket.Chat SSO에 대한 일반적인 문제 해결 시나리오
-
도메인, 도메인, 설정 및 세션 설정에서 CORS(Cross-Origin Resource Sharing) 허용이 사용으로 설정되어 있는지 확인합니다.
-
Rocket.Chat 인스턴스를 로드하는 데 시간이 걸리는 경우 인스턴스에 SSH로 접속하고 다음 명령으로 Docker 구성을 재시작할 수 있습니다.
docker compose down docker compose up -d
관련 링크
확인
- 작성자 - Chetan Soni(클라우드 솔루션 엔지니어)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Integrate Rocket.Chat with Identity Domains for Single Sign-On
G12059-03
August 2024