> For the complete documentation index, see [llms.txt](https://docs.allganize.ai/allganize-alli-works/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.allganize.ai/allganize-alli-works/alli-dashboard/setting/authentication/saml-sso-okta/sso-okta.md).

# SSO 유저 속성 매핑(Okta 버전)

### 유저 속성 매핑 vs 그룹 속성 매핑 구분&#x20;

> **SAML 앱과 Alli 간 속성을 매핑할 때, 유저 개개인에게 1:1로 부여되는 ‘유저 속성’과, 여러 유저가 함께 속한 ‘그룹 속성’은 설정 방식과 적용 방식이 다릅니다.**
>
> * **유저 속성 매핑은 이름, 전화번호, 부서 등 각 유저에게 독립적으로 부여되는 정보를 Alli에서 변수로 받아 사용하는 방식입니다. 이때 `department` 등의 값을 Alli의 `GROUP` 변수에 1:1로 매핑하여, 유저 개별 속성을 기반으로 Alli 그룹을 설정할 수 있습니다.**
> * **그룹 속성 매핑은 앱 내에서 미리 정의된 그룹 단위(예: Product\_team, Engineer\_team 등)를 기반으로, 해당 그룹에 속한 여러 유저를 일괄적으로 Alli 그룹에 연결하는 방식입니다.**
>
> **예를 들어, `department` 필드를 유저 변수로 매핑하면, 각 유저의 속성에 설정된 부서 값이 해당 유저의 Alli 그룹으로 설정됩니다. 반면, 앱 내에서 그룹 단위로 유저가 묶여 있고, 그 그룹 정보를 `group` 필드 등으로 전달받는 경우, 해당 그룹 단위 정보가 Alli 그룹 설정에 활용됩니다.**
>
> **설정 목적에 따라 유저 속성과 그룹 속성을 정확히 구분하여 매핑을 진행해 주세요.**

### 상세 속성 매핑 설정 (Attribute Mapping)&#x20;

SAML 앱 내에서, Alli와 Google 디렉토리 간의 속성 매핑(Attribute Mapping)을 구성하는 방법을 알아보겠습니다.

#### 기본 사항

* EAML은 자동으로 매핑되므로 별도 설정이 필요 없습니다.
* Alli에서는 다음과 같은 유저 스콥 변수(User Scope Variables)를 지원합니다:
  * `FIRST_NAME`
  * `LAST_NAME`
  * `GROUP`&#x20;
  * `PHONE_NUM 등 일반적인 변수`&#x20;
* 다음 변수들은 지원되지 않습니다.&#x20;
  * `FILE`
  * `CATEGORY`
  * `DOCUMENTS`
  * `SNIPPETS`

### 유저 변수 매핑 &#x20;

<figure><img src="/files/N8ih3V4RPplMeWKQ8EyF" alt=""><figcaption><p>App > General > SAML Settings > Edit > Configure SAML 탭 </p></figcaption></figure>

<figure><img src="/files/W6uB7bTry6x0UfZ5K9Bp" alt=""><figcaption><p>Attribute Statements 탭 선택</p></figcaption></figure>

1. NAME에 Alli 변수가 Value에 Okta의 필드가 선택될 수 있게 알맞는 값을 넣어줍니다.&#x20;
2. 여기서는 예시로 First name과 Last name에 해당하는 필드를 선택하여 Alli의 변수명에 맞게 매핑하였습니다.

<figure><img src="/files/vJMgw3Eb0N3fVlYGx1Cq" alt=""><figcaption></figcaption></figure>

> 각 유저 변수명은 Alli 대시보드 > 설정 > 변수 탭에서 확인할 수 있습니다.

### 유저 그룹 매핑   &#x20;

<figure><img src="/files/N8ih3V4RPplMeWKQ8EyF" alt=""><figcaption><p>App > General > SAML Settings > Edit > Configure SAML 탭 </p></figcaption></figure>

<figure><img src="/files/igR2Egpehki5A0osTCkr" alt=""><figcaption><p>Attribute Statements 탭 선택</p></figcaption></figure>

1. Alli에서는 `부서`를 `GROUP`이라는 변수로 처리하기 때문에 Attribute Statements의 Name에는 반드시 `GROUP`을 입력합니다.
2. Value에는 앱 내의 부서에 해당하는 필드명을 입력합니다.&#x20;

반드시 아래 규칙을 따라야 합니다.

작성 규칙

1. 앞에는 `user.`를 붙입니다.
2. 그 뒤에는 User Attribute 이름의 소문자 버전을 입력합니다.

예를 들어, 해당 앱에서는 `division`이라는 속성이 그룹(부서)의 역할을 하므로, 아래와 같이 입력합니다:

```
user.division
```

<figure><img src="/files/TCrnN83Efcj87Az6Nurl" alt=""><figcaption></figcaption></figure>

* 해당 SAML 앱에서는 총 3개의 부서 타입이 있습니다:
  * `Engineering Division`
  * `Product Team`
  * `Sales Team`
* 위의 부서 정보가 Alli에도 동일하게 등록되어 있어야 그룹 매핑이 가능한 점에 주의해 주세요.<br>

**그룹 생성 및 권한 할당**

<figure><img src="/files/Ojc2bqZk7gyEGNVNDr9K" alt=""><figcaption></figcaption></figure>

1. Alli 대시보드 > 설정 > 멤버 > 그룹 탭으로 이동합니다.
2. 각각의 그룹(Engineering Division, Product Team, Sales Team)을 생성합니다.
3. 각 그룹에 필요한 권한을 할당합니다.

<figure><img src="/files/vQ9NXUg6XYDkIzLd3z64" alt=""><figcaption></figcaption></figure>

하기와 같이 연동된 SAML 앱을 통해 로그인한 유저는 매핑한 각 변수가 자동으로 할당됩니다.

### 그룹 매핑 (해당 앱 내에서 기본적으로 유저가 그룹 속성으로 묶여있을 경우, 한 유저가 여러개의 그룹에 속해있을 경우)

<figure><img src="/files/RA0Xke4Csdw0oEkhAjHn" alt=""><figcaption><p>Alli와 연동하는 해당 SSO 앱 내에서 그룹 조직(유저를 묶은 단위)을 추가합니다.</p></figcaption></figure>

<figure><img src="/files/MnfrD7IWynjKTaFZp2qs" alt=""><figcaption></figcaption></figure>

* 해당 SAML 앱에서는 단일 유저를 묶은 총 2개의 그룹을 추가했으며 각 그룹별로 유저가 할당되어 있습니다.
* 단 어떤 유저는 `Backend,` `Frontedn`2개의 그룹에 속해있는 경우도 있습니다.

<figure><img src="/files/vOKUKcIOACypB2Wc2H6H" alt=""><figcaption></figcaption></figure>

1. Group Attirbute Statements에서 Name에 GRUOP을 입력합니다.&#x20;
2. Fillter에 Matches regex를 선택하고 .\* 값을 넣어줍니다.

* 해당 Okta 앱에서 유저를 묶은 단위의 그룹은 총 두개입니다.
  * `Backend`
  * `Front`

<figure><img src="/files/mPvnn8OefvHA21Hdq4s1" alt=""><figcaption></figcaption></figure>

3. 위의 그룹 정보가 Alli에도 동일하게 등록되어 있어야 그룹 매핑이 가능한 점에 주의해 주세요.
4. 저장 버튼을 클릭합니다.<br>

**그룹 생성 및 권한 할당**

1. Alli 대시보드 > 설정 > 멤버 > 그룹 탭으로 이동합니다.

<figure><img src="/files/liTSFEJSztNkotWzqf2J" alt=""><figcaption></figcaption></figure>

1. 각각의 그룹(Backend, Front)를 생성합니다.
2. 각 그룹에 필요한 권한을 할당합니다.

SAML 방식으로 연동된 SSO 앱을 통해 로그인하는 사용자의 경우, 해당 SSO 앱에서 복수의 그룹에 속해 있더라도 그 정보는 자동으로 Alli에 반영됩니다.

* 사용자가 로그인할 때마다 SAML 앱에 등록된 그룹 정보가 Alli로 자동 갱신되어 반영됩니다.
* 따라서, SSO 앱에서 유저의 그룹 변경(추가, 삭제 등)이 발생하면 다음 로그인 시 해당 변경 사항이 Alli에도 적용됩니다.

> 단, Admin 권한(관리자 권한)은 Alli 시스템 내에서만 설정 가능한 고유 권한입니다.\
> 이 권한은 IDP(SAML 연동 시스템)와는 무관하게 Alli 대시보드에서 별도로 관리되므로, 로그인 시 자동 반영되지 않습니다.

<figure><img src="/files/TlF1ga8cTLF5gSb2hk7e" alt=""><figcaption></figcaption></figure>
