SCIM 사용자 API 참조

SCIM 사용자 API를 사용하여 사용자 데이터에 액세스하고, 생성하고, 수정할 수 있습니다.

HTTP 헤더

Snowflake SCIM API는 HTTP 인증에 무기명 토큰을 사용합니다.

Snowflake SCIM API에 대한 각 HTTP 요청은 다음 HTTP 헤더를 허용합니다.

헤더

Authorization (필수)

Bearer <액세스_토큰>

Content-Type

application/scim+json

Accept-Encoding

utf-8

Accept-Charset

utf-8

사용자 속성

API 요청 본문에서 사용자 특성을 JSON 형식의 키-값 페어로 지정할 수 있습니다. 이러한 쌍에는 사용자의 표시 이름이나 이메일 주소와 같은 사용자 정보가 포함되어 있습니다. ID 공급자는 각 특성에 대해 고유한 키 이름을 지정할 수 있습니다. 예를 들어, ID 공급자는 사용자의 성을 나타내기 위해 familyName 대신 lastName 키를 사용할 수 있습니다. Snowflake는 다중값 사용자 특성을 지원하지 않습니다.

중요

아래 표에서 userNameloginName 특성은 모두 userName 특성을 참조합니다. Snowflake는 userNameloginName 특성에 대해 서로 다른 값을 지정하는 기능을 지원합니다.

사용자 수명 주기 관리를 위해 Snowflake가 지원하는 특성은 다음과 같습니다.

SCIM 사용자 속성

Snowflake 사용자 속성

타입

설명

id

ID

문자열

Snowflake에서 사용자의 변경 불가능한 고유 식별자(GUID)입니다.

Snowflake는 DESCRIBE USER 또는 SHOW USERS 출력에서 이 값을 반환하지 않습니다.

이 특성이 필요한 엔드포인트(예: PATCH scim/v2/Users/{{id}})에 대해서는 REST_EVENT_HISTORY 함수를 사용하여 id 특성을 찾을 수 있습니다. IdP 로그를 확인하여 값이 일치하도록 하십시오.

userName

NAME, LOGIN_NAME

문자열

Snowflake에 로그인하는 데 사용되는 식별자입니다. 이러한 특성에 대한 자세한 내용은 CREATE USER 섹션을 참조하십시오.

name.givenName

FIRST_NAME

문자열

사용자의 이름입니다.

name.familyName

LAST_NAME

문자열

사용자의 성입니다.

emails

EMAIL

문자열

사용자의 이메일 주소입니다.

displayName

DISPLAY_NAME

문자열

사용자를 지칭할 때 사용자 인터페이스에 표시되는 텍스트입니다.

externalID

N/A

문자열

프로비저닝 클라이언트(예: Azure, Okta)가 설정한 고유 식별자입니다.

password

PASSWORD

문자열

사용자의 비밀번호입니다.

이 값은 JSON 응답에서 반환되지 않습니다.

SCIM 보안 통합의 SYNC_PASSWORD 속성이 FALSE 로 설정되고 SCIM API 요청이 password 특성을 지정하는 경우, Snowflake는 password 특성의 값을 무시합니다. API 요청의 다른 모든 특성은 정상적으로 처리됩니다.

active

DISABLED

boolean

false 로 설정되면 사용자를 비활성화합니다.

groups

N/A

문자열

사용자가 속한 그룹의 목록입니다. 그룹 displayName 은 필수입니다.

사용자의 그룹은 변경할 수 없으며 SCIM 그룹 API 를 사용하여 구성원 자격을 업데이트해야 합니다.

meta.created

CREATED_ON

문자열

사용자가 Snowflake에 추가된 시간입니다.

meta.lastModified

UPDATED_ON

문자열

사용자가 마지막으로 Snowflake에서 수정한 시간입니다.

meta.resourceType

N/A

문자열

사용자의 리소스 유형입니다. 이 특성의 값으로 user 를 사용해야 합니다.

schemas

N/A

문자열

네임스페이스 URIs를 지정하는 쉼표로 구분된 문자열 배열입니다. Snowflake는 다음 값을 지원합니다.

  • urn:ietf:params:scim:schemas:core:2.0:User

  • urn:ietf:params:scim:schemas:extension:enterprise:2.0:User

  • urn:ietf:params:scim:schemas:extension:2.0:User

사용자 지정 속성

defaultRole 같이 RFC 7643 에서 정의되지 않은 사용자 지정 특성을 설정할 수 있습니다.

POST, PUT, PATCH 요청을 수행할 때 다음 네임스페이스를 사용하여 사용자 지정 특성을 설정할 수 있습니다.

urn:ietf:params:scim:schemas:extension:enterprise:2.0:User

이 네임스페이스는 Snowflake에서 원래 SCIM 구현의 일부였습니다. 이 네임스페이스는 Okta SCIM 보안 통합 에서 사용자 지정 특성을 설정하기 위한 용도로만 사용할 수 있습니다.

이 네임스페이스를 사용하여 Microsoft Azure SCIM 보안 통합 또는 사용자 지정 SCIM 통합 에서 사용자 지정 특성을 설정할 수 없습니다.

urn:ietf:params:scim:schemas:extension:2.0:User

이 네임스페이스를 사용하여 모든 SCIM 통합에 대한 사용자 지정 특성을 설정할 수 있습니다. Microsoft Azure SCIM 보안 통합 또는 사용자 지정 SCIM 보안 통합 에서 사용자 지정 특성을 설정하려면 이 네임스페이스를 사용해야 합니다.

Snowflake는 다음 사용자 지정 특성을 지원합니다.

SCIM 사용자 지정 특성

Snowflake 사용자 속성

타입

설명

defaultWarehouse

DEFAULT_WAREHOUSE

문자열

로그인 시 사용자 세션에 대해 기본적으로 활성 상태인 가상 웨어하우스입니다.

defaultRole

DEFAULT_ROLE

문자열

로그인 시 사용자 세션에 대해 기본적으로 활성화되는 기본 역할입니다.

defaultSecondaryRoles

DEFAULT_SECONDARY_ROLES

문자열

로그인 시 사용자 세션에 대해 활성화되는 보조 역할 목록입니다. 이 특성은 ('ALL') 의 별칭으로 ALL 로 설정하거나 () 의 별칭으로 NONE 또는 "" 로 설정할 수 있습니다.

type

TYPE

문자열

사용자의 유형입니다. 기본값: null. 이 특성은 person, service, legacy_service 또는 null 로 설정할 수 있습니다. 사용자 유형에 대한 자세한 내용은 사용자의 TYPE 오브젝트 속성 섹션을 참조하십시오.

사용자가 있는지 확인

메서드 및 엔드포인트:

GET /scim/v2/Users?filter=userName eq "{{user_name}}"

설명:

userName 쿼리 매개 변수가 있는 사용자에 대한 세부 정보를 반환합니다.

HTTP 요청이 성공적으로 완료되면 200 응답 상태 코드 HTTP 을 반환합니다.

사용자에 대한 세부 정보 가져오기

메서드 및 엔드포인트:

GET /scim/v2/Users/{{user_id}}

설명:

user_id 경로 매개 변수와 연결된 사용자에 대한 세부 정보를 반환합니다.

HTTP 요청이 성공적으로 완료되면 200 응답 상태 코드 HTTP 을 반환합니다.

사용자 만들기

메서드 및 엔드포인트:

POST /scim/v2/Users

설명:

Snowflake에서 사용자를 만듭니다.

HTTP 요청이 성공적으로 완료되면 201 응답 상태 코드 HTTP 을 반환합니다.

사용자가 이미 존재하거나 다른 이유로 HTTP 요청이 실패한 경우 Snowflake는 HTTP 응답 상태 코드 409 를 반환합니다.

:

userNameloginName 이 동일한 값에 매핑된 사용자를 생성합니다.

{
  "schemas": [
    "urn:ietf:params:scim:schemas:core:2.0:User",
    "urn:ietf:params:scim:schemas:extension:2.0:User"
  ],
  "userName": "test_user_1",
  "password": "test",
  "name": {
    "givenName": "test",
    "familyName": "user"
  },
  "emails": [
    {"value": "test.user@snowflake.com"}
  ],
  "displayName": "test user",
  "active": true
}
Copy

userNameloginName 이 다른 값에 매핑된 사용자를 생성합니다.

참고

Okta를 ID 공급자로 사용하는 경우 다음 절차 를 따릅니다.

{
  "active": true,
  "displayName": "test user",
  "emails": [
    {"value": "test.user@snowflake.com"}
  ],
  "name": {
    "familyName": "test_last_name",
    "givenName": "test_first_name"
  },
  "password": "test_password",
  "schemas": [
    "urn:ietf:params:scim:schemas:core:2.0:User",
    "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
  ],
  "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
    "snowflakeUserName": "USER5"
  },
  "userName": "USER5"
}
Copy

사용자 특성 바꾸기

메서드 및 엔드포인트:

PATCH /scim/v2/Users/{{id}}

설명:

id 경로 매개 변수와 연결된 사용자의 특성을 바꿉니다.

이 HTTP 요청을 수행하려면 opreplace 로 설정해야 합니다.

active 에는 다음 값을 사용할 수 있습니다.

  • false: 사용자를 비활성화합니다.

  • true: 사용자를 활성화합니다.

HTTP 요청이 성공적으로 완료되었으면 200 응답 상태 코드 HTTP 을 반환합니다.

실패하면 HTTP 응답 코드 204 을 반환합니다.

:

사용자를 비활성화하고 givenNamedeactivated_user 로 업데이트합니다.

{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [
    {"op": "replace", "value": { "active": false }}
    {"op": "replace", "value": { "givenName": "deactivated_user" }}
  ],
}
Copy

userNameloginName 이 동일한 값에 매핑된 사용자를 업데이트합니다.

{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [
    {"op": "replace", "value": { "active": false }}
  ]
}
Copy

userNameloginName 이 다른 값에 매핑된 사용자를 업데이트합니다.

ID 공급자가 Okta인 경우, 이 절차 를 따릅니다.

{
  "Operations": [
    {
      "op": "replace",
      "path": "userName",
      "value": "test_updated_name"
    },
    {
      "op": "replace",
      "path": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.snowflakeUserName",
      "value": "USER5"
    }
  ],
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"]
}
Copy

사용자 업데이트

메서드 및 엔드포인트:

PUT /scim/v2/Users/{{id}}

설명:

id 경로 매개 변수와 연결된 사용자의 특성을 업데이트합니다.

실패하면 HTTP 응답 코드 400 을 반환합니다. 요청이 변경이 불가능한 특성을 변경하려고 하거나 변경하려는 특성이 Snowflake에 존재하지 않는 경우 HTTP 요청은 실패합니다.

:

사용자 및 해당 "defaultRole", "defaultSecondaryRoles", "defaultWarehouse" 특성을 업데이트합니다.

"defaultRole", "defaultSecondaryRoles", "defaultWarehouse" 특성을 지정하려면 extension 스키마 중 하나를 사용해야 합니다. defaultSecondaryRoles 특성에는 값으로 "ALL" 만 사용할 수 있습니다.

참고

PUT 메서드는 PATCH 메서드보다 비용이 더 많이 듭니다. 대신, PATCH 작업을 사용하십시오.

{
  "schemas": [
   "urn:ietf:params:scim:schemas:core:2.0:User",
   "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
  ],
  "userName": "test_user_1",
  "password": "test",
  "name": {
    "givenName": "test",
    "familyName": "user"
  },
  "emails": [{
    "primary": true,
    "value": "test.user@snowflake.com",
    "type": "work"
  }
  ],
  "displayName": "test user",
  "active": true,
  "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
    "defaultRole" : "test_role",
    "defaultSecondaryRoles" : "ALL",
    "defaultWarehouse" : "test_warehouse"
  }
}
Copy

사용자 삭제

메서드 및 엔드포인트:

DELETE /scim/v2/Users/{{id}}

설명:

id 경로 매개 변수와 연결된 사용자를 삭제합니다.