Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s
126 lines
4.1 KiB
Plaintext
126 lines
4.1 KiB
Plaintext
---
|
|
title: SSO 구성
|
|
description: 안전한 엔터프라이즈 인증을 위해 Single Sign-On(SSO)을 구성하세요.
|
|
---
|
|
|
|
## SSO에 대하여
|
|
|
|
Single Sign-On(SSO)을 사용하면 팀 구성원이 조직의 아이덴티티 제공자(IdP)를 통해 Twenty에 로그인할 수 있습니다. 이는 다음을 제공합니다:
|
|
|
|
* **중앙집중식 액세스 제어**: 한 곳에서 액세스를 관리합니다
|
|
* **강화된 보안**: 기존 보안 정책을 활용합니다
|
|
* **향상된 사용자 경험**: 모든 도구에서 하나의 자격 증명만 사용합니다
|
|
|
|
## 지원되는 제공자
|
|
|
|
Twenty는 다음 제공자와 SSO를 지원합니다:
|
|
|
|
* **SAML 2.0**: 대부분의 엔터프라이즈 아이덴티티 제공자와 호환됩니다
|
|
* **Google Workspace**: Google을 사용하는 조직용
|
|
* **Microsoft Entra ID** (이전 명칭: Azure AD): Microsoft 환경용
|
|
|
|
## SSO 설정
|
|
|
|
### 사전 준비
|
|
|
|
* Organization 플랜(클라우드 및 셀프 호스팅 워크스페이스)
|
|
* 아이덴티티 제공자에 대한 관리자 권한
|
|
* Twenty 워크스페이스에 대한 관리자 권한
|
|
|
|
### 구성 단계
|
|
|
|
#### 1. SSO 설정에 액세스
|
|
|
|
1. **설정 → 보안**으로 이동하세요.
|
|
2. **SSO 구성** 섹션을 찾으세요
|
|
3. **SSO 구성**을 클릭하세요
|
|
|
|
#### 2) 제공자 선택
|
|
|
|
목록에서 아이덴티티 제공자를 선택하거나, 다른 제공자의 경우 "Custom SAML"을 선택하세요.
|
|
|
|
#### 3. 아이덴티티 제공자 구성
|
|
|
|
아이덴티티 제공자를 다음 정보로 구성해야 합니다:
|
|
|
|
* **Entity ID**: Twenty에서 제공
|
|
* **ACS URL**: 인증용 콜백 URL
|
|
* **Certificate**: 보안 통신용
|
|
|
|
#### 4. Twenty에 제공자 상세 정보 입력
|
|
|
|
* **SSO URL**: 제공자의 로그인 URL
|
|
* **Entity ID**: 제공자의 식별자
|
|
* **Certificate**: 제공자의 X.509 인증서
|
|
|
|
#### 5. 테스트 및 활성화
|
|
|
|
1. 구성을 확인하려면 **구성 테스트**를 클릭하세요
|
|
2. 테스트가 성공하면 SSO를 활성화하세요
|
|
3. 사용자 프로비저닝 설정을 구성하세요.
|
|
|
|
## 사용자 프로비저닝
|
|
|
|
### Just-in-Time(JIT) 프로비저닝
|
|
|
|
* 최초 로그인 시 사용자가 자동으로 생성됩니다
|
|
* 사용자에게 기본 역할이 자동으로 할당됩니다
|
|
* 사용자를 수동으로 생성할 필요가 없습니다
|
|
|
|
### 수동 프로비저닝
|
|
|
|
* 사용자가 로그인하기 전에 초대하세요
|
|
* 특정 역할을 사전 할당
|
|
* 워크스페이스에 액세스할 수 있는 대상을 보다 세밀하게 제어
|
|
|
|
## SSO 사용자 관리
|
|
|
|
### 역할 할당
|
|
|
|
SSO 사용자도 일반 사용자와 마찬가지로 역할을 할당할 수 있습니다:
|
|
|
|
1. **설정 → 구성원**으로 이동하세요.
|
|
2. 사용자를 찾으세요
|
|
3. 필요에 따라 역할을 변경하세요
|
|
|
|
### 액세스 권한 철회
|
|
|
|
SSO 사용자의 액세스를 제거하려면:
|
|
|
|
* 아이덴티티 제공자에서 제거하거나,
|
|
* Twenty 워크스페이스에서 제거하세요
|
|
|
|
## 모범 사례
|
|
|
|
### 보안
|
|
|
|
* **SSO 필수**: SSO 사용자에 대해 비밀번호 로그인을 비활성화
|
|
* **정기 감사**: 주기적으로 액세스를 검토
|
|
* **강력한 IdP 정책**: 아이덴티티 제공자에서 MFA를 적용
|
|
|
|
### 사용자 관리
|
|
|
|
* **명확한 명명**: 디렉터리에서 일관된 명명 규칙 사용
|
|
* **그룹 매핑**: IdP 그룹을 Twenty 역할에 매핑(가능한 경우)
|
|
* **오프보딩 프로세스**: 디프로비저닝 워크플로우에 Twenty를 포함
|
|
|
|
## 문제 해결
|
|
|
|
### 일반적인 문제
|
|
|
|
* **인증서 오류**: 인증서가 만료되지 않았는지 확인
|
|
* **URL 불일치**: ACS URL이 정확히 일치하는지 확인
|
|
* **사용자를 찾을 수 없음**: JIT 프로비저닝 설정을 확인
|
|
|
|
### 도움 받기
|
|
|
|
문제가 발생하면 다음 정보를 포함하여 지원팀에 문의하세요:
|
|
|
|
* 수신한 오류 메시지
|
|
* 사용 중인 아이덴티티 제공자
|
|
* 구성 세부 정보(민감한 데이터 제외)
|
|
|
|
<Tip>
|
|
조직에 SSO 구성이 필요하신가요? SSO 및 ID 설정을 전문으로 하는 [공인 Twenty 파트너를 찾아보세요](https://twenty.com/partners/list?categories=SOLUTIONING\&ref=docs-sso). *(Twenty와 직접 논의하길 원하시나요? [contact@twenty.com](mailto:contact@twenty.com))*
|
|
</Tip>
|