> For the complete documentation index, see [llms.txt](https://docs.ggwp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ggwp.com/kr/id-iam/api-scim/api/schemas.md).

# 스키마

### 개요

이 `/Schemas` 엔드포인트는 이 SCIM 서비스에서 지원하는 스키마 정의를 반환합니다.

다음 내용을 설명합니다:

* 사용 가능한 리소스(예: User)
* 각 리소스 내의 속성
* 속성 유형 및 제약 조건

ID 공급자는 이 엔드포인트를 사용하여 다음을 수행합니다:

* 요청/응답 구조 검증
* 시스템 간 속성 매핑
* 프로비저닝 동작 구성

***

### 엔드포인트

```bash
GET /Schemas
GET /Schemas/{id}
```

***

### 전체 URL

```bash
https://api.ggwp.com/scim/v2/Schemas
https://api.ggwp.com/scim/v2/Schemas/{schemaId}
```

***

### 인증

Bearer 토큰 필요:

```http
Authorization: Bearer <access_token>
```

***

## 모든 스키마 가져오기

### 요청 예시

```bash
GET /Schemas
```

***

### 응답

```json
{
  "data": {
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
    "totalResults": 1,
    "Resources": [
      {
        "id": "urn:ietf:params:scim:schemas:core:2.0:User",
        "name": "User",
        "description": "사용자 계정",
        "endpoint": "/Users",
        "schema": "urn:ietf:params:scim:schemas:core:2.0:User"
      }
    ]
  },
  "message": "성공"
}
```

***

## ID로 스키마 가져오기

### 요청 예시

```bash
GET /Schemas/urn:ietf:params:scim:schemas:core:2.0:User
```

***

### 응답

### 성공 (200 OK)

```json
{
  "data": {
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Schema"],
    "id": "urn:ietf:params:scim:schemas:core:2.0:User",
    "name": "User",
    "description": "사용자 계정",
    "attributes": [
      {
        "name": "userName",
        "type": "string",
        "multiValued": false,
        "required": true,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "server"
      },
      {
        "name": "externalId",
        "type": "string",
        "multiValued": false,
        "required": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "server"
      },
      {
        "name": "displayName",
        "type": "string",
        "multiValued": false,
        "required": false,
        "mutability": "readWrite",
        "returned": "default"
      },
      {
        "name": "active",
        "type": "boolean",
        "multiValued": false,
        "required": false,
        "mutability": "readWrite",
        "returned": "default"
      },
      {
        "name": "emails",
        "type": "complex",
        "multiValued": false,
        "required": true,
        "mutability": "readWrite",
        "returned": "default",
        "subAttributes": [
          {
            "name": "value",
            "type": "string",
            "required": true
          },
          {
            "name": "primary",
            "type": "boolean"
          }
        ]
      },
      {
        "name": "roles",
        "type": "complex",
        "multiValued": false,
        "required": true,
        "mutability": "readWrite",
        "returned": "default",
        "subAttributes": [
          {
            "name": "value",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "name",
        "type": "complex",
        "multiValued": false,
        "required": false,
        "subAttributes": [
          {
            "name": "givenName",
            "type": "string"
          },
          {
            "name": "familyName",
            "type": "string"
          }
        ]
      }
    ]
  },
  "message": "성공"
}
```

***

## 속성 필드 설명

<table><thead><tr><th width="167">필드</th><th>설명</th></tr></thead><tbody><tr><td>name</td><td>속성 이름</td></tr><tr><td>type</td><td>데이터 유형(string, boolean, complex)</td></tr><tr><td>required</td><td>속성이 필수인지 여부</td></tr><tr><td>multiValued</td><td>배열 값을 나타냄</td></tr><tr><td>mutability</td><td>readOnly / readWrite</td></tr><tr><td>uniqueness</td><td>server / none</td></tr></tbody></table>

***

## 지원되는 스키마

### User 스키마

URN:

```json
urn:ietf:params:scim:schemas:core:2.0:User
```

***

### 핵심 속성

| 속성              | 설명        |
| --------------- | --------- |
| userName        | 고유 사용자 이름 |
| name.givenName  | 이름        |
| name.familyName | 성         |
| emails.value    | 이메일 주소    |
| active          | 사용자 상태    |
