통합에 대한 종합 가이드에 오신 것을 환영합니다. 카우치베이스 와 함께 키클로크. 오늘날의 디지털 환경에서는 애플리케이션을 보호하고 ID를 효율적으로 관리하는 것이 무엇보다 중요합니다. SAML(보안 어설션 마크업 언어)과 다용도 ID 및 액세스 관리(IAM) 도구인 Keycloak은 이러한 목적을 위한 강력한 솔루션을 구성합니다.
이 문서에서는 SAML IdP(신원 공급자)를 사용하여 Couchbase를 설정하는 복잡한 과정을 살펴보겠습니다. Docker 환경 내에서 Keycloak을 사용하겠습니다. 이 통합을 통해 Couchbase의 보안을 강화하고 사용자 관리를 간소화하며 원활한 인증 환경을 제공할 수 있습니다.
이 가이드는 ID 관리에 대한 지식을 넓히고 싶거나 현재 설정을 개선하고자 하는 경우, SAML을 사용하여 Keycloak을 Couchbase 데이터베이스와 통합하는 단계별 접근 방식을 제공하기 위해 만들어졌습니다.
이 가이드가 끝날 때쯤이면 Couchbase와 SAML이 함께 작동하는 방식과 이러한 기술을 활용하여 시스템의 보안과 효율성을 강화하는 방법에 대해 충분히 이해하게 될 것입니다. 이 가이드에서는 주로 Keycloak을 SAML ID 공급자로 사용하지만, 여기에 설명된 단계와 원칙을 통해 자체 SAML ID 공급자를 효과적으로 구성할 수 있습니다.
전제 조건
설정 프로세스를 시작하기 전에 다음과 같은 전제 조건이 준비되어 있는지 확인하는 것이 중요합니다. 그래야 원활하고 효율적인 통합 프로세스를 진행할 수 있습니다:
-
- 기존 설정: Couchbase가 실행 중이어야 합니다. 이 가이드는 이미 시스템에 Couchbase를 설치하고 구성했다고 가정합니다.
- Docker: 컴퓨터에 Docker를 설치해야 합니다. Docker는 컨테이너화된 환경에서 Keycloak을 실행하는 데 사용되며, Keycloak을 위한 격리되고 일관된 플랫폼을 제공합니다. 다른 방식으로 Keycloak을 설치하여 실행 중인 경우 관련 섹션을 건너뛸 수 있습니다.
- 기본 지식:
- Docker: 키클로크는 Docker 컨테이너에 배포되므로 Docker 명령어와 개념을 숙지하는 것이 필수적입니다.
- 키클로크 및 SAML: 자세한 단계가 제공되겠지만, IAM 도구로서의 Keycloak과 인증 프로토콜로서의 SAML에 대한 기본적인 이해가 있으면 도움이 될 것입니다.
- 시스템 요구 사항: 시스템이 Docker 및 Keycloak을 원활하게 실행하기 위한 최소 요구 사항을 충족하는지 확인하세요. 여기에는 충분한 메모리, CPU 성능 및 디스크 공간이 포함됩니다.
- 네트워크 접근성: 네트워크 구성이 Keycloak이 실행될 Docker 컨테이너와 Couchbase가 호스팅되는 시스템 간의 통신을 허용하는지 확인하세요.
Keycloak 및 SAML 개요
ID 관리에서 Keycloak과 SAML의 역할을 이해하는 것은 통합을 파악하는 데 매우 중요합니다. 이 섹션에서는 두 구성 요소에 대한 개요와 설정에서 두 구성 요소의 중요성에 대해 설명합니다.
키클로크란 무엇인가요?
Keycloak은 최신 애플리케이션과 서비스를 대상으로 하는 오픈 소스 ID 및 액세스 관리 솔루션입니다. 사용자 인증 및 권한 부여를 포함한 광범위한 보안 기능을 제공합니다.
키클로크는 ID 공급자(IdP) 역할을 합니다. 로그인 메커니즘과 사용자 관리를 중앙 집중화하여 다양한 서비스와 애플리케이션을 위한 통합 액세스 포인트를 제공합니다.
SAML(보안 어설션 마크업 언어)
-
- SAML의 기본 사항: SAML은 당사자 간의 인증 및 권한 부여 데이터 교환을 위한 개방형 표준으로, 특히 IdP와 서비스 제공업체(SP) 간의 인증 및 권한 부여 데이터를 교환합니다.
- 인증의 중요성: SAML은 웹 기반 인증에 널리 사용됩니다. 이를 통해 사용자는 IdP가 관리하는 하나의 자격 증명 세트로 여러 애플리케이션에 로그인할 수 있으므로 보안과 사용자 경험이 모두 향상됩니다.
통합 혜택
-
- 강화된 보안: SAML을 Keycloak과 통합함으로써 Couchbase는 안전한 중앙 집중식 인증 메커니즘의 이점을 누릴 수 있습니다.
- 싱글 사인온(SSO): 사용자는 여러 애플리케이션에서 SSO 기능을 사용할 수 있으므로 여러 개의 로그인과 비밀번호를 사용할 필요가 없습니다.
1단계: Docker에서 키클로크 시작하기
시스템에서 이미 Docker가 실행 중이면 Docker 컨테이너에서 Keycloak을 쉽게 시작할 수 있습니다. 이 섹션에서는 Keycloak을 원활하게 실행하는 데 필요한 단계와 예제 명령을 제공합니다.
키클로크 배포 준비하기
-
- Docker가 실행 중인지 확인: 시스템에서 Docker가 활성화되어 있는지 확인합니다. 다음 명령을 실행하여 이를 확인할 수 있습니다.
도커 정보 또는도커 PS 를 터미널이나 명령 프롬프트에 입력하면 각각 Docker 설치 및 실행 중인 컨테이너에 대한 정보가 반환됩니다. - 포트 가용성: 키클로크는 일반적으로 포트에서 실행됩니다. 8080. 시스템에서 이 포트가 사용 가능한지 확인하거나 Docker 컨테이너를 실행할 때 다른 포트에 매핑할 계획을 세우세요.
- Docker가 실행 중인지 확인: 시스템에서 Docker가 활성화되어 있는지 확인합니다. 다음 명령을 실행하여 이를 확인할 수 있습니다.
키클로크 컨테이너 시작
기본 설정으로 Keycloak 컨테이너를 시작하려면 다음 명령을 사용하세요:
|
1 |
docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:22.0.5 start-dev |
교체 관리자 그리고 관리자 에 원하는 관리자 사용자 이름과 비밀번호를 입력합니다. 이렇게 하면 컨테이너가 시작될 때 Keycloak에 관리자 계정이 설정됩니다.
분리 모드: 선택적으로, 컨테이너를 분리된 모드로 실행하려면 -d 플래그를 설정합니다. 이렇게 하면 컨테이너가 백그라운드에서 실행되므로 터미널을 계속 사용할 수 있습니다.
키클로크 액세스
Keycloak 컨테이너가 실행 중이면, 다음 주소로 이동하여 Keycloak 관리 콘솔에 액세스할 수 있습니다. https://localhost:8080/auth 를 클릭합니다. 설정한 관리자 자격 증명으로 로그인합니다.
이 컨테이너는 데모 목적으로 개발 모드에서 실행하고 있다는 점에 유의하시기 바랍니다. 프로덕션 환경에서 Keycloak을 배포하는 방법에 대한 지침은 Keycloak 설명서를 참조하시기 바랍니다.
2단계: 키클로크를 SAML ID 공급자로 구성하기 1부
키클로크를 SAML ID 공급자로 구성하려면 새 영역과 해당 영역 내에 SAML 클라이언트를 설정해야 합니다. 다음 세부 단계를 따라 올바르게 설정하세요.
Keycloak 관리 콘솔에 액세스하기
-
- 웹 브라우저를 열고 다음 주소로 이동합니다. https://localhost:8080/auth.
- Keycloak 관리자 자격 증명으로 로그인합니다.
- 이제 다음과 같은 내용이 표시됩니다:

새로운 영역 만들기
Keycloak에서 영역은 사용자, 클라이언트, 역할과 같은 구성 및 엔티티를 위한 최상위 컨테이너 역할을 하는 기본 개념입니다. 영역은 이러한 모든 요소를 관리할 수 있는 격리된 공간을 제공하기 때문에 영역을 만드는 것이 필수적입니다.
각 영역은 독립적인 ID 도메인의 역할을 하므로 사용자, 자격증명, 역할 및 클라이언트를 별도로 관리할 수 있으며, 이는 여러 부서, 조직 또는 환경이 있는 시나리오에서 특히 유용합니다. 따라서 도메인을 만드는 것은 Keycloak에서 ID 관리 솔루션을 설정하는 첫 번째 단계입니다.
-
- 왼쪽 상단 모서리에서 '마스터' 드롭다운을 클릭하고 "영역 만들기“.
- 새 영역의 이름을 지정합니다(예,
MyIdentityRealm)를 클릭하고 "만들기“.

SAML 클라이언트 설정
키클라우드에서 클라이언트는 인증 및 권한 부여를 위해 키클라우드에 의존하는 애플리케이션을 의미합니다. 클라이언트를 만드는 것은 사용자 액세스 및 신원 정보를 안전하게 관리할 수 있도록 Couchbase UI와 Keycloak 간의 연결 고리를 형성하기 때문에 필수적입니다. Keycloak에서 SAML 클라이언트를 생성하면 애플리케이션이 SAML을 사용하여 Keycloak을 통해 사용자를 인증할 수 있습니다.
-
- 새 영역에서 "클라이언트' 왼쪽 메뉴에서 클릭합니다.
- "클라이언트 만들기"을 클릭하고 "saml'를 클라이언트 프로토콜로 사용합니다.
- 에서 일반 설정 탭을 클릭하고 다음 필드를 입력합니다:
- 클라이언트 ID: SAML 서비스 공급자의 엔티티 ID를 입력합니다(예:,
카우치베이스-UI). - 이름: 클라이언트의 이름을 입력합니다. (예:,
카우치베이스). - 설명: 선택 사항으로 설명을 추가합니다.
- 클라이언트 다음
- 클라이언트 ID: SAML 서비스 공급자의 엔티티 ID를 입력합니다(예:,

-
- 에서 로그인 설정 탭을 클릭하고 다음 필드를 입력합니다:
- 홈 URL: Couchbase 서버의 URL을 입력합니다(예 https://127.0.0.1:8091)
- 유효한 리디렉션 URI입니다: IdP가 리디렉션할 수 있는 URI를 입력합니다(예 https://127.0.0.1:8091/*)
- 유효한 로그아웃 후 리디렉션 URI: 로그아웃 이벤트 후 IdP가 리디렉션하도록 허용할 URI를 입력합니다. (예 https://127.0.0.1:8091/*)
- 클릭 저장 를 클릭하여 새 SAML 클라이언트를 만듭니다.
- 에서 로그인 설정 탭을 클릭하고 다음 필드를 입력합니다:

현재 Keycloak 클라이언트 구성은 불완전하며 추후 해결될 예정입니다. 설정 프로세스를 완료하려면 먼저 Couchbase를 구성해야 합니다.
3단계: Couchbase Server로 SAML 구성하기
Keycloak이 SAML ID 공급자로 구성되면, 다음 단계는 Couchbase와 통합하는 것입니다. 이 통합을 통해 Couchbase는 SAML을 사용하여 Keycloak을 통해 사용자를 인증할 수 있습니다.
통합에 대한 이해
-
- 키클로크의 역할: Keycloak은 사용자 ID 및 자격 증명을 관리하는 SAML ID 공급자(IdP) 역할을 합니다.
- 카우치베이스의 역할: 카우치베이스는 인증을 위해 Keycloak에 의존하는 SAML 서비스 공급자(SP)로 작동합니다.
SAML 통합 준비
Couchbase를 SAML 서비스 공급자(SP)로 구성하려면 초기 단계에서 Keycloak에서 메타데이터를 다운로드해야 합니다.
메타데이터 엔드포인트는 Keycloak 관리 영역 내의 영역 설정 페이지로 이동하여 액세스할 수 있습니다.
- 설정 페이지를 엽니다.: SAML IdP 메타데이터 URL과 같은 Keycloak에서 필요한 정보를 수집하고, 키클라우드에서 영역 설정 페이지로 이동합니다:

-
- 엔드포인트 찾기엔드포인트 섹션까지 아래로 스크롤하여 새 창에서 SAML 2.0 ID 공급자 메타데이터를 엽니다. URL은 다음과 같이 표시되어야 합니다.
https://localhost:8080/auth/realms/{realm-name}/protocol/saml/descriptor. 우리의 경우https://localhost:8080/realms/MyIdentityRealm/protocol/saml/descriptor. 영역의 이름에 따라 다를 수 있습니다. 새 탭에서 이 파일을 열고 메타데이터 파일에서 주요 정보를 찾습니다. - 인증서 정보는 X509인증서 태그.
- 엔드포인트 찾기엔드포인트 섹션까지 아래로 스크롤하여 새 창에서 SAML 2.0 ID 공급자 메타데이터를 엽니다. URL은 다음과 같이 표시되어야 합니다.
|
1 2 3 |
<ds:X509Data> <ds:X509Certificate>MIICrTCCAZUCBgGM.....</ds:X509Certificate> </ds:X509Data> |
-
- 로그인 및 로그아웃 바인딩은 해당 로그인 및 로그아웃 바인딩에서 찾을 수 있습니다. 싱글사인온서비스 그리고 싱글로그아웃 서비스 태그를 추가합니다. 태그는 다음 코드 스니펫과 같은 모양이어야 합니다:
|
1 |
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://localhost:8080/realms/MyIdentityRealm/protocol/saml"/> |
|
1 |
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://localhost:8080/realms/MyIdentityRealm/protocol/saml"/> |
-
- 엔티티 ID는 엔티티 설명자 다음과 같이 표시되어야 합니다:
|
1 |
entityID="https://localhost:8080/realms/MyIdentityRealm" |
이 메타데이터 파일은 Couchbase에서 SAML을 구성하는 데 필요하므로 컴퓨터에 저장하세요. 인증서, entityId, 로그인 및 로그아웃 바인딩은 모두 Couchbase에서 SAML 구성을 만들 때 필요합니다.
서비스 제공업체로서 Couchbase 구성하기
Keycloak을 iDP(ID 공급자)로 설정했으면, 다음 단계는 SAML 서비스 공급자(SP)로 작동하도록 Couchbase 서버를 구성하는 것입니다. 이 섹션에서는 초기 설정 및 구성 프로세스에 대한 자세한 지침을 제공합니다.
-
- 카우치베이스 서버 UI에 로그인합니다: Couchbase 서버의 관리 UI에 로그인합니다. 여기에서 SAML 설정을 구성할 수 있습니다.
- 보안을 클릭합니다: 왼쪽 탐색에서 보안을 선택합니다.

- SAML 탭을 클릭합니다: 상단에서 SAML 탭을 찾아 클릭합니다. 그러면 SAML 구성 페이지가 열립니다.

- SAML 인증을 사용하도록 설정합니다: 텍스트 아래에 확인란이 있습니다. 이 설정을 켭니다.

메타데이터 구성
-
- SP 엔티티 ID: 카우치베이스 서버의 엔티티 ID를 설정합니다. 이는 Keycloak에서 clientId로 구성한 고유 식별자이며, 서비스를 인식하는 데 사용됩니다. Keycloak 화면에서 사용한 것과 동일한 엔티티 ID를 사용합니다: "카우치베이스-UI"
- 조직 세부 정보: 조직 이름 및 연락처 필드에 사용자 정보를 입력합니다.
- SP 기본 URL 유형: 선택 사용자 지정 URL 를 클릭하고 인터넷에서 서비스에 액세스할 수 있는 URL을 사용합니다. 다음을 지정합니다. https://127.0.0.1:8091 Couchbase 서버를 로컬에서 실행하고 있기 때문입니다.
- 서명 메타데이터: '아래에 지정된 인증서를 사용하여 메타데이터 서명' 토글이 활성화되어 있는지 확인합니다.

인증서 관리
서비스 공급자는 또한 노드 또는 클러스터 인증서와는 다른 개인 키와 X.509 인증서를 요구합니다. 이 특정 인증서는 SAML과 관련된 작업에 사용됩니다.
이 예에서는 자체 서명된 인증서를 사용하겠습니다.
|
1 |
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -sha256 -days 730 -nodes -subj "/C=CO/ST=State/L=City/O=Company/OU=Unit/CN=127.0.0.1" |
이 명령은 두 개의 파일(cert.pem 그리고 key.pem).
-
- 개인 키 업로드: 키 및 인증서 섹션을 열고 개인 키를 업로드합니다.
- 인증서 업로드인증서를 업로드할 수도 있습니다.
- 인증서 체인: 선택적으로 인증서 체인이 필요한 경우 체인을 업로드하세요. 제 예에서는 인증서가 자체 서명되어 있으므로 체인이 필요하지 않습니다.

ID 공급자 구성
-
- 메타데이터 열기: 이 구성의 메타데이터 섹션을 엽니다.

- 메타데이터 구성: 다음의 설정에서 IDP 메타데이터 로드를 변경합니다. URL 파일로
- 파일 열기: 이전 단계에서 Keycloak에서 다운로드한 파일을 찾습니다.
- 콘텐츠 복사: 전체 파일을 선택하고 콘텐츠를 클립보드에 복사합니다.
- XML 붙여넣기: Couchbase 서버로 돌아가서 텍스트 영역에 XML을 붙여넣습니다.

- 원격 피어 확인을 사용 설정합니다: 원격 피어 확인을 토글하여 켜져 있는지 확인합니다.

- 싱글 사인온 열기: 설정 섹션에서 싱글 사인온 열기
- 포스트 바인딩: 두 바인딩이 모두 게시물을 사용하도록 구성되었는지 확인합니다.

- 저장을 클릭합니다.: 저장을 클릭하여 구성을 유지합니다.

- 엔드포인트 정보 기록: 5단계에 필요하므로 SP 사용 URL과 SP 로그아웃 URL을 적어 두세요.
- 메타데이터 열기: 이 구성의 메타데이터 섹션을 엽니다.
5단계: 키클로크를 SAML ID 공급자로 구성하기 2부
SAML 기능
-
- 키클로크 열기: Keycloak 관리 콘솔로 돌아가서 로그인합니다.
- 클라이언트를 찾습니다: 클라이언트를 클릭하고 앞서 만든 SAML 클라이언트를 찾아서 엽니다.

- 아래로 스크롤하여 SAML 기능: 이 화면에서 아래로 스크롤하여 SAML 기능 섹션을 찾습니다. 구성이 아래 이미지에 표시된 설정과 일치하는지 확인합니다.

- 서명 및 암호화: SAML 기능 다음 섹션으로 이동하여 아래 그림에 표시된 구성과 일치하는지 확인합니다. 특히 서명 어설션 확인란을 선택합니다.

- 클릭 저장 를 클릭하여 새 SAML 클라이언트를 만듭니다.
클라이언트 인증서 설정
열기 키 섹션을 클릭하고 지침을 따릅니다.
-
- 아래로 스크롤하여 인증서

- 클릭 "가져오기 키": '키 가져오기' 옵션을 선택하면 대화창이 열리고, 여기서 Couchbase 서버에 업로드한 인증서를 선택할 수 있습니다. IdP(키클로크)는 이 인증서를 사용하여 Couchbase에서 보낸 요청의 서명을 검증합니다.
- 업로드 "인증서": 먼저 아카이브 형식에 대해 '인증서 PEM' 옵션을 선택한 다음 찾아보기 버튼을 클릭하여 PEM 형식의 인증서를 선택합니다.

- 가져오기: 가져오기를 클릭하여 키클로크에 인증서를 로드합니다.
- 다시 로드: 이 시점에서 전체 웹 페이지를 새로고침해야 합니다.
- 아래로 스크롤하여 인증서
세분화된 SAML 엔드포인트 구성
열기 고급 섹션을 클릭하고 지침을 따릅니다.
-
- 아래로 스크롤하여 "세분화된 SAML 엔드포인트 구성"

- 어설션 소비자 서비스 POST 바인딩 URL을 입력하세요.: Take 현재 SP 소비 URL 값을 Couchbase SAML 설정 페이지에서 가져와 Keycloak의 어설션 소비자 서비스 POST 바인딩 URL 필드에 붙여넣습니다.
- 입력 로그아웃 서비스 POST 바인딩 URL: 이 단계에서는 현재 SP 로그아웃 URL 필드에 붙여넣기하여 로그아웃 서비스 POST 바인딩 URL 필드에 입력합니다.

- 클릭 저장
- 아래로 스크롤하여 "세분화된 SAML 엔드포인트 구성"
통합 테스트
Keycloak 사용자 만들기
서비스 공급자(Couchbase)와 ID 공급자(Keycloak)를 모두 구성한 후에는 이제 통합 테스트를 진행하기 전에 테스트 사용자를 만들어야 합니다.
-
- 키클로크 열기: Keycloak 관리 콘솔로 돌아가서 로그인합니다.
- 선택 사용자: 사용자: 왼쪽의 사용자 메뉴 항목을 클릭합니다.

- "사용자 추가": '사용자 추가' 버튼을 클릭하여 새 Keycloak 테스트 사용자를 추가합니다.

- 만들기를 입력하면 키클로크에 사용자가 생성됩니다.
- 선택 자격 증명 탭을 클릭합니다: 사용자가 생성되면 사용자 수정 화면으로 이동합니다. 이 화면에서 자격증명 탭으로 이동하여 이 사용자에 대한 비밀번호를 설정했는지 확인합니다. 비밀번호 설정:

- 클릭 저장: 저장: 저장 다음 비밀번호 저장
SAML 이메일 매퍼 추가
이제 키클라우드 사용자와 카우치베이스 사용자를 매핑하는 데 어떤 사용자 속성을 사용할지 결정하는 것이 중요합니다. 이 예에서는 이메일 필드를 사용하지만 사용자 이름이나 다른 사용자 속성을 사용할 수도 있습니다.
-
- 키클로크 열기: Keycloak 관리 콘솔로 돌아가서 로그인합니다.
- 클라이언트를 찾습니다: 클라이언트를 클릭하고 앞서 만든 SAML 클라이언트를 찾아서 엽니다.

- 오픈 클라이언트 범위: 클라이언트 범위 열기
- 범위 링크를 클릭합니다.: 각 클라이언트에는 클라이언트의 이름을 딴 기본 범위가 있으며, 이 경우 다음과 같습니다. 카우치베이스-UI 전용. 범위 설정을 수정하려면 이 링크를 클릭합니다:

- 매퍼 추가: 범위 링크를 클릭한 후 나타나는 새 화면에서 "새 매퍼 구성" 버튼을 클릭합니다.

- 선택 사용자 속성: 표시되는 목록에서 "사용자 속성" 매퍼

-
- 양식 작성하기: 아래 이미지와 같은 값으로 양식을 작성하되, 특히 다음 사항에 주의하여 입력합니다. SAML 속성 이름 형식 로 설정되어 있습니다. 지정되지 않음.

- 저장: 클릭 저장 를 클릭하여 범위에 매퍼를 추가합니다.
- 양식 작성하기: 아래 이미지와 같은 값으로 양식을 작성하되, 특히 다음 사항에 주의하여 입력합니다. SAML 속성 이름 형식 로 설정되어 있습니다. 지정되지 않음.
매퍼를 사용하도록 Couchbase 구성하기
IdP는 이제 SAML 응답에서 이메일 속성을 전송하고 있지만 Couchbase는 아직 사용자 식별을 위해 이 속성을 활용하도록 구성되지 않았습니다:
-
- 카우치베이스 서버 UI에 로그인: Couchbase 서버의 관리 UI에 로그인합니다. 여기에서 SAML 설정을 구성할 수 있습니다.
- 보안을 클릭합니다.: 왼쪽 탐색에서 보안을 선택합니다.
- SAML 탭을 선택합니다: SAML 탭을 클릭하여 SAML 설정을 엽니다.
- 아래로 스크롤하여 설정으로 이동합니다.: 아래로 스크롤하여 설정 섹션을 열고 싱글 사인온 섹션에서 사용자 이름 매핑을 구성합니다.
- 속성을 구성합니다: '사용자 이름 속성' 필드를 Keycloak에서 지정한 SAML 속성 이름과 일치하도록 수정합니다. 이 예에서는 '이메일'을 사용했습니다.

사용자 간 매핑
사용자를 매핑하는 가장 간단한 방법은 Couchbase 서버에서 Keycloak의 사용자와 일치하는 외부 사용자를 만드는 것입니다. 이 예제에서는 그렇게 했습니다.
-
- Keycloak에서 이메일 찾기: Keycloak으로 돌아가 사용자의 이메일 주소를 찾습니다.
- 카우치베이스 서버 UI 열기: 카우치베이스 서버 UI 열기
- 보안을 클릭합니다.: 왼쪽에서 보안 링크를 찾을 수 있습니다.
- 사용자 탭을 엽니다.: 상단에 사용자/그룹 탭이 있으며, 이를 클릭하면 Couchbase 서버의 사용자 목록이 표시됩니다.

- 사용자 추가: 오른쪽 상단의 사용자 추가 버튼을 클릭합니다.
- 외부 사용자: 사용자를 "외부"로 설정했는지 확인해야 합니다. 문서 보기.
- 사용자 아이디를 입력합니다: 키클라우드 이메일을 이 필드에 복사합니다.

- 역할을 설정합니다: 오른쪽에서 사용자가 가져야 하는 정확한 역할을 선택해야 합니다.
- 그룹을 설정합니다: (선택 사항) 이전에 지정한 Couchbase 서버 그룹에 외부 사용자를 추가할 수도 있습니다.
이제 이 테스트 사용자로 로그인을 테스트할 준비가 되었습니다. 이제 Couchbase 로그인 페이지로 이동하여 SSO를 사용하여 로그인합니다:

그룹을 사용한 사용자 매핑
사용자 대 사용자 매핑은 좋은 시작이지만, SSO 사용자와 Couchbase 사용자를 일치시키는 더 나은 접근 방식은 SSO 그룹을 Couchbase 그룹에 매핑하는 것입니다. 그런 다음 이러한 Couchbase 그룹을 활용하여 적절한 역할을 할당하면 개별 사용자 간 매핑 없이도 세분화된 제어가 가능합니다.
Keycloak에서 새 그룹을 만들고 사용자를 할당합니다.
-
- 키클로크에 로그인합니다: Keycloak 관리자 콘솔에 로그인하고 영역을 선택합니다.
- 그룹을 클릭합니다.: 왼쪽 탐색에서 그룹 메뉴 항목을 클릭합니다.
- 키클로크에서 그룹 만들기. 라는 그룹을 만들려고 합니다. ro_admin 을 클릭합니다. 그룹 만들기 버튼을 클릭합니다.

- 그룹 이름 지정: 그룹 이름 "ro_admin"

- 그룹 만들기: 만들기 버튼을 클릭하여 그룹을 만듭니다.
- 테스트 사용자 열기: 왼쪽 탐색에서 사용자를 클릭하고 테스트 사용자를 찾아서 사용자를 엽니다.
- 그룹 탭을 선택합니다.: 그룹 탭을 클릭하면 현재 할당된 그룹을 볼 수 있습니다.

- 그룹 가입을 클릭합니다: 그룹에 참여하기 버튼을 클릭하여 방금 만든 새 그룹을 이 테스트 사용자에게 할당합니다.
- 그룹 이름을 선택합니다.: 체크 표시 ro_admin 목록에서 그룹 이름을 클릭하고 가입.

Keycloak에서 SAML 그룹 매퍼 설정하기
-
- 클라이언트로 이동합니다: 키클라우드에서 클라이언트를 열고 이전에 Couchbase 통합을 위해 생성한 클라이언트를 선택합니다.
- 클라이언트 범위 선택: 클라이언트 범위 탭을 선택하여 이 클라이언트의 기본 제공 범위를 편집합니다.
- 개방형 범위: 클라이언트 이름 전용인 범위 이름을 클릭합니다. 저희의 경우 이 이름이 호출됩니다: 카우치베이스-UI 전용

- 매퍼를 추가합니다: 매퍼 추가 -> 구성별을 클릭하고 목록에서 다음을 선택합니다. 그룹 목록 매퍼.

- 새 매퍼 설정: 아래 이미지에 표시된 대로 양식 필드를 작성합니다. 이렇게 하면 사용자 그룹을 Couchbase로 전송하는 그룹 매퍼가 설정됩니다. 그룹.

- 클릭 저장
Couchbase에서 SAML 그룹 구성 설정하기
-
- Couchbase에 로그인합니다: Couchbase 관리 콘솔에 로그인하고 다음으로 이동합니다. 보안 을 클릭하고 SAML 설정 페이지로 이동합니다.
- 아래로 스크롤하여 설정으로 이동합니다.: 아래로 스크롤하여 설정 섹션을 열고 싱글 사인온
- 그룹 매핑 섹션 찾기: 로 이동하여 그룹 설정 섹션으로 이동하여 아래 이미지와 같이 구성합니다. 설정에서 그룹 속성 확인란을 선택하고 바로 전에 Keycloak에서 설정한 속성의 이름을 입력합니다. 제 경우에는 그룹.


- 그룹 만들기: 보안으로 이동하여 그룹 추가 버튼을 클릭합니다.
- 그룹 세부 정보 입력: 그룹 이름을 입력하고 몇 가지 역할도 할당합니다. 이 예에서는 읽기 전용 관리자 그룹을 만들겠습니다.

- 클릭 저장
- Couchbase에 로그인합니다: Couchbase 관리 콘솔에 로그인하고 다음으로 이동합니다. 보안 을 클릭하고 SAML 설정 페이지로 이동합니다.
이제 초기 그룹 매핑 테스트를 수행할 준비가 되었습니다. 이전에 사용자 대 사용자 매핑 섹션에서 외부 사용자를 만든 경우 이 테스트를 진행하려면 해당 사용자를 삭제해야 합니다. 이 시나리오에서 Couchbase가 JIT(Just-In-Time) 사용자 프로비저닝을 수행한다는 점에 주목할 필요가 있습니다. 기존 외부 사용자가 필요하지 않으며, Couchbase가 자동으로 사용자를 생성하고 그룹 매핑에 따라 이 사용자에게 적절한 역할을 할당합니다.
문제 해결
문제가 발생하면 Keycloak과 Couchbase의 SAML 응답 및 요청 로그에서 잠재적인 오류나 잘못된 구성이 있는지 검토하세요. 또한 SAML 관련 문제를 해결하는 데 유용한 여러 가지 팁을 제공하는 SAML에 대한 이전 문서를 참조하세요.
보안 모범 사례
강력한 보안 관행을 구현하는 것은 Keycloak 및 Couchbase와 SAML을 통합할 때 매우 중요합니다. 이 섹션에서는 안전하고 강력한 설정을 보장하기 위한 주요 보안 고려 사항과 모범 사례를 강조합니다.
-
- HTTPS 사용: ACS(어설션 소비자 서비스) UR을 포함하여 Keycloak과 카우치베이스와 관련된 모든 통신에는 항상 HTTP 대신 HTTPS를 사용합니다.
- 인증서 및 키: 강력한 최신 암호화 인증서와 키를 SAML 어설션에 사용하세요. 이러한 인증서를 신뢰하도록 Keycloak 및 Couchbase를 구성하세요.
- 로그: 키클라우드와 카우치베이스의 로그를 정기적으로 검토하여 비정상적인 활동이나 보안 위반이 있는지 확인하세요.
- 감사 추적: Keycloak 및 Couchbase 내에서 중요한 작업 및 변경 사항에 대한 감사 추적 유지
- 기본 설정 검토: 보안을 강화하기 위해 Keycloak 및 Couchbase의 기본 구성을 주의 깊게 검토하고 수정하세요.
결론
이 가이드에서는 특히 Keycloak 내의 구성에 중점을 두고 Couchbase와 SAML Idp를 통합하는 단계를 살펴보았습니다. 이러한 통합을 통해 안전하고 효율적인 사용자 관리가 용이해지며, ID 공급자로서의 Keycloak의 강력한 기능을 활용할 수 있습니다. 사용자 관리의 보안과 효율성은 단순한 목표가 아니라 지속적인 프로세스라는 점을 기억하세요. 시스템을 정기적으로 업데이트하고, 최신 보안 동향에 대한 정보를 파악하고, 선제적으로 개선해 나가세요. 이 가이드에 대한 여러분의 피드백은 매우 소중합니다. 여러분의 경험, 어려움, 성공 사례를 자유롭게 공유해 주세요.