> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alforse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Single Sign-On

> 검증된 이메일 도메인의 모든 사용자가 로그인할 때 자체 SAML 2.0 자격 증명 공급자로 이동하게 하고, 선택적으로 이를 유일한 로그인 방법으로 설정합니다.

Single Sign-On(SSO)은 Alforse 로그인을 Okta, Entra ID, Google Workspace 같은 회사의 SAML 2.0 자격 증명 공급자(IdP)에 위임합니다. 관리자가 한 번 설정하면 이후 이메일이 검증된 도메인에 속한 ERP 및 MES 사용자는 자동으로 IdP로 이동합니다.

## 시작하기 전에

* **사용 가능 여부.** **Single Sign-On** 섹션은 계정에서 SSO가 활성화된 경우에만 **설정 → 보안**에 나타납니다.
* **권한.** SSO 설정을 저장하려면 `settings` 업데이트 권한이 필요합니다.
* **IdP 액세스.** 자격 증명 공급자에서 SAML 애플리케이션을 생성할 권한이 필요합니다.
* **DNS 액세스.** 각 이메일 도메인에 TXT 레코드를 게시하게 됩니다.

매직 링크를 포함한 다른 로그인 방법은 [SAML SSO 필수](#requiring-sso)를 켜기 전까지 계속 작동합니다. 따라서 아무도 잠그지 않고 모든 것을 설정하고 테스트할 수 있습니다.

> [!NOTE]
>
> Feishu / Lark, DingTalk 또는 OpenID Connect로 로그인하려면 [Feishu/Lark, DingTalk, OIDC를 통한 Single Sign-On](https://docs.alforse.com/ko/docs/reference/sso-oidc-feishu-dingtalk.md)을 참조하십시오. 회사에는 연결이 하나만 있으므로, 해당 공급자 중 하나를 저장하면 SAML 연결이 대체됩니다.

## 자격 증명 공급자 연결

전체 설정은 **설정 → 보안**의 **"Single Sign-On"** 섹션에서 이루어집니다.

Alforse screenshot**설정 → 보안, 활성 연결이 있는 Single Sign-On 섹션: 서비스 공급자 세부 정보, SAML SSO 필수 스위치가 있는 자격 증명 공급자 카드, 이메일 도메인 카드**

전체 SSO 교환이 한 설정 화면에서 이루어집니다.

1. **Alforse의 세부 정보를 복사합니다.** **"서비스 공급자 세부 정보"** 카드에는 **"ACS URL"**과 **"SP 메타데이터 URL"**이 각각 복사 버튼과 함께 나열됩니다.
2. 이 두 URL을 사용하여 **IdP에서 SAML 애플리케이션을 생성합니다.** 어설션에 **이메일 속성**이 포함되어야 합니다. Alforse는 이메일로 각 로그인을 사람과 회사에 대응시킵니다.
3. **Alforse에 IdP 메타데이터를 제공합니다.** **"자격 증명 공급자"** 카드에서 **"IdP 메타데이터 URL"** 또는 원본 **"IdP 메타데이터 XML"** 중 하나만 입력하고(둘 다는 안 됨) **"연결"**을 선택합니다. 이후 변경 시에는 버튼이 **"변경 사항 저장"**으로 표시됩니다.
4. **연결이 활성인지 확인합니다.** Alforse가 "SAML SSO connection saved"(SAML SSO 연결이 저장되었습니다)라고 알리고 카드에 **"SAML SSO 필수"** 스위치와 **"비활성화"** 버튼이 표시됩니다.
5. 연결이 생기면 나타나는 **"이메일 도메인"** 카드에서 **이메일 도메인을 추가하고 검증합니다.** 사용자가 로그인에 사용하는 모든 도메인을 추가하고, 각각 표시되는 DNS 레코드를 게시한 다음 **"검증"**을 선택합니다. SSO 로그인은 검증된 도메인에 대해서만 라우팅됩니다.

## 서비스 공급자 URL

자격 증명 공급자에는 이 두 값이 필요합니다. **"서비스 공급자 세부 정보"** 카드의 값과 동일합니다.

| IdP의 설정 | 값 |
| - | - |
| **ACS URL**(Assertion Consumer Service, 싱글 사인온 URL, 응답 URL) | `https://api.alforse.com/api/web/auth/v1/sso/saml/acs` |
| **SP 메타데이터 URL**, **SP 엔터티 ID** 및 **대상**(audience)도 겸함 | `https://api.alforse.com/api/web/auth/v1/sso/saml/metadata` |

IdP가 서비스 공급자 메타데이터를 가져올 수 있다면 SP 메타데이터 URL을 제공하고, 그렇지 않으면 두 값을 직접 입력합니다.

## 도메인 검증

새 도메인은 **대기 중**으로 시작하며 카드에 표시되는 고유한 TXT 챌린지를 받습니다.

| 레코드 | 값 |
| - | - |
| **호스트** | `_alforse-challenge.example.com` |
| **유형** | `TXT` |
| **값** | `alforse-domain-verification=<your unique token>` |

도메인을 추가하면 Alforse가 "Domain added. Publish the TXT record shown below, then click Verify."(도메인이 추가되었습니다. 아래 TXT 레코드를 게시한 다음 검증을 클릭하세요.)라고 알립니다. DNS 공급자에서 레코드를 게시한 후 **"검증"**을 선택합니다.

| 결과 | 메시지 |
| - | - |
| 레코드를 찾았고 올바름 | "Domain verified — it can now route SAML SSO sign-ins"(도메인이 검증되었습니다. 이제 SAML SSO 로그인을 라우팅할 수 있습니다). 도메인이 **확인됨**으로 바뀝니다. |
| 아직 레코드 없음 | "No TXT record found yet. DNS changes can take a few minutes to propagate — check the record's host name and try again shortly."(아직 TXT 레코드를 찾을 수 없습니다. DNS 변경이 전파되는 데 몇 분이 걸릴 수 있습니다. 레코드의 호스트 이름을 확인하고 잠시 후 다시 시도하세요.) |
| 레코드 값이 잘못됨 | "A TXT record exists but its value does not match this company's verification token. Check that the record's value was copied exactly."(TXT 레코드가 있지만 값이 이 회사의 검증 토큰과 일치하지 않습니다. 레코드 값이 정확히 복사되었는지 확인하세요.) |
| 조회 실패 | "The DNS lookup failed. Check your network's outbound DNS access and try again."(DNS 조회에 실패했습니다. 네트워크의 아웃바운드 DNS 액세스를 확인하고 다시 시도하세요.) |

* **검증은 한 번만 합니다.** 이후에 TXT 레코드를 삭제해도 됩니다.
* **대기 중인 도메인은 아무 영향이 없습니다.** 도메인을 추가해도 검증되기 전에는 누구의 로그인 방식도 바뀌지 않으므로 안전하게 추가할 수 있습니다.

HEADS UP

**검증된 도메인은 하나의 회사에 속합니다**

DNS 제어를 가장 먼저 증명한 회사가 도메인을 보유하며, 나중에 DNS 제어권이 다른 사람에게 넘어가더라도 그 권리를 유지합니다. 도메인을 깔끔하게 넘기려면 현재 보유자가 **제거**를 선택하여 도메인을 해제해야 새 소유자가 검증할 수 있습니다.

## 사용자 경험

### 로그인

로그인 페이지는 먼저 이메일을 묻습니다. 사용자가 **"계속"**을 선택하면:

* 활성 IdP가 있는 도메인이면 해당 IdP로 리디렉션됩니다.
* 그렇지 않으면 표준 매직 링크 로그인을 계속합니다.

Alforse가 세션을 만들기 전에, IdP 어설션의 이메일 도메인이 연결의 **검증된** 도메인과 일치해야 합니다.

### 누가 들어올 수 있는가: 초대 우선 프로비저닝

SSO로는 스스로 가입할 수 없습니다.

| 사람 | 첫 SSO 로그인 |
| - | - |
| 기존 구성원 | SAML ID가 계정에 연결됩니다. |
| 대기 중인 초대가 있음 | 초대가 수락되고 지정된 역할이 적용됩니다. |
| 그 외 모든 사람 | 거부되며 계정이 생성되지 않습니다. |

누군가를 들어오게 하려면 [직원 디렉터리](https://docs.alforse.com/ko/docs/reference/people.md)에서 초대를 만들고 다시 시도하도록 안내하십시오.

### 2단계 인증

IdP가 자체 MFA 정책을 적용하므로 SSO 세션은 통제된 배포 환경에서도 Alforse 자체의 [2단계 인증 확인](https://docs.alforse.com/ko/docs/reference/two-factor.md)을 건너뜁니다. 매직 링크 로그인은 계속 Alforse의 확인을 거칩니다.

## SSO 필수화

**"SAML SSO 필수"**를 켜면 검증된 도메인의 사용자에게는 IdP가 유일하게 허용되는 로그인 방법이 됩니다. Alforse가 "SAML SSO is now required for covered domains"(이제 대상 도메인에 SAML SSO가 필수입니다)로 알리며, 이후 이 사용자들에게 매직 링크, Google, 패스키는 거부됩니다.

이 스위치는 연결이 활성인 뒤에만 나타나므로, 강제하기 전에 SSO 로그인이 작동하는지 확인할 수 있습니다.

| 목적 | 방법 | 결과 |
| - | - | - |
| 다른 방법을 다시 허용 | **"SAML SSO 필수"**를 끕니다 | "SAML SSO is no longer required for covered domains"(대상 도메인에 SAML SSO가 더 이상 필수가 아닙니다). 매직 링크, Google, 패스키가 다시 작동합니다. |
| SSO를 완전히 제거 | **"비활성화"**를 선택하고 확인합니다 | "SAML SSO connection deactivated"(SAML SSO 연결이 비활성화되었습니다). 연결이 삭제되고 도메인 권리가 해제되며 다른 방법이 다시 작동합니다. |
| 도메인 하나의 사용 중단 | 도메인에서 **제거**를 선택합니다 | "Domain removed"(도메인이 제거되었습니다). 다른 회사가 검증할 수 있도록 권리가 해제됩니다. |

## 관련 문서

**Feishu/Lark, DingTalk, OIDC**

Feishu 또는 Lark, DingTalk, 또는 모든 OpenID Connect 공급자를 통한 Single Sign-On입니다.

[Open](https://docs.alforse.com/ko/docs/reference/sso-oidc-feishu-dingtalk.md)

**2단계 인증**

매직 링크 로그인에 대한 Alforse 자체의 두 번째 인증 요소입니다.

[Open](https://docs.alforse.com/ko/docs/reference/two-factor.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.