Referência da API do usuário SCIM

Você pode usar a API do usuário SCIM para acessar, criar e modificar dados do usuário.

Cabeçalhos HTTP

A Snowflake SCIM API usa tokens de portador para autenticação HTTP.

Cada solicitação HTTP à Snowflake SCIM API permite os seguintes cabeçalhos HTTP:

Cabeçalho

Valor

Authorization (obrigatório)

Bearer <access_token>

Content-Type

application/scim+json

Accept-Encoding

utf-8

Accept-Charset

utf-8

Atributos do usuário

Você pode especificar os atributos do usuário no corpo das solicitações de API como pares chave-valor no formato JSON. Esses pares têm informações sobre o usuário, como seu nome de exibição ou endereço de e-mail. Os provedores de identidade podem especificar seus próprios nomes de chaves para cada atributo. Por exemplo, os provedores de identidade podem usar a chave lastName, em vez de familyName, para representar o sobrenome do usuário. O Snowflake não oferece suporte a atributos do usuário com múltiplos valores.

Importante

Na tabela abaixo, os atributos userName e loginName se referem ao atributo userName. O Snowflake oferece suporte à especificação de valores diferentes para os atributos userName e loginName.

O Snowflake oferece suporte aos seguintes atributos para o gerenciamento do ciclo de vida do usuário:

Atributo de usuário do SCIM

Atributo de usuário do Snowflake

Tipo

Descrição

id

ID

cadeia de caracteres

O identificador imutável e exclusivo (GUID) do usuário no Snowflake.

O Snowflake não retorna este valor na saída DESCRIBE USER ou SHOW USERS.

Para solicitações em pontos de extremidade que exigem esse atributo, como PATCH scim/v2/Users/{{id}}, o atributo id pode ser encontrado usando a função REST_EVENT_HISTORY. Verifique os logs do IdP para garantir que os valores correspondem.

userName

NAME, LOGIN_NAME

cadeia de caracteres

O identificador usado para fazer login no Snowflake. Para obter mais informações sobre esses atributos, consulte CREATE USER.

name.givenName

FIRST_NAME

cadeia de caracteres

O nome do usuário.

name.familyName

LAST_NAME

cadeia de caracteres

O sobrenome do usuário.

emails

EMAIL

cadeia de caracteres

O endereço de e-mail do usuário.

displayName

DISPLAY_NAME

cadeia de caracteres

O texto exibido na interface do usuário ao se referir ao usuário.

externalID

N/A

cadeia de caracteres

O identificador único estabelecido pelo cliente provisionador (por exemplo, Azure, Okta).

password

PASSWORD

cadeia de caracteres

A senha para o usuário.

Este valor não é retornado na resposta JSON.

Se a propriedade SYNC_PASSWORD na da integração de segurança SCIM for definida como FALSE e a solicitação da SCIM API especificar o atributo password, o Snowflake ignora o valor para o atributo password. Todos os outros atributos na solicitação de API são processados normalmente.

active

DISABLED

booleano

Desabilita o usuário quando definido como false.

groups

N/A

cadeia de caracteres

Uma lista de grupos aos quais o usuário pertence. O grupo displayName é necessário.

Os grupos de usuários são imutáveis e sua associação deve ser atualizada usando a API dos grupos SCIM.

meta.created

CREATED_ON

cadeia de caracteres

A hora em que o usuário foi adicionado ao Snowflake.

meta.lastModified

UPDATED_ON

cadeia de caracteres

A hora em que o usuário foi modificado pela última vez no Snowflake.

meta.resourceType

N/A

cadeia de caracteres

O tipo de recurso para o usuário. Você deve usar user como um valor para este atributo.

schemas

N/A

cadeia de caracteres

Uma matriz de cadeias de caracteres separadas por vírgulas especificando os URIs de namespace. O Snowflake oferece suporte aos seguintes valores:

  • 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

Atributos personalizados

Você pode definir atributos personalizados que não são definidos pelo RFC 7643, como defaultRole.

Você pode usar os seguintes namespaces para definir atributos personalizados ao fazer solicitações POST, PUT e PATCH:

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

Esse namespace fazia parte do original implementação SCIM no Snowflake. Você só pode usar esse namespace para definir atributos personalizados nas integração de segurança Okta SCIM.

Você não pode usar esse namespace para definir os atributos personalizados nas integrações de segurança do Microsoft Azure SCIM ou integrações de SCIM personalizadas.

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

Você pode usar esse namespace para definir atributos personalizados para todas as interações de SCIM. Você deve usar este namespace para definir atributos personalizados nas integrações de segurança do Microsoft Azure SCIM ou integrações de segurança de SCIM personalizadas.

O Snowflake oferece suporte aos seguintes atributos personalizados:

Atributo personalizado de usuário SCIM

Atributo de usuário do Snowflake

Tipo

Descrição

defaultWarehouse

DEFAULT_WAREHOUSE

cadeia de caracteres

O warehouse virtual que está ativo por padrão para a sessão do usuário após o login.

defaultRole

DEFAULT_ROLE

cadeia de caracteres

A função principal que fica ativa por padrão para a sessão do usuário no login.

defaultSecondaryRoles

DEFAULT_SECONDARY_ROLES

cadeia de caracteres

A lista de funções secundárias que estão ativas para a sessão do usuário no login. Você pode definir esse atributo para ALL como um alias para ('ALL'), ou pode definir esse atributo para NONE ou "" como um alias para ().

type

TYPE

cadeia de caracteres

O tipo de usuário. Padrão: null. Você pode definir esse atributo como person, service, legacy_service ou null. Para obter mais informações sobre os tipos de usuários, consulte a propriedade do objeto TYPE de usuários.

Verificação de existência de um usuário

Método e ponto de extremidade:

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

Descrição:

Retorna detalhes sobre um usuário associado ao parâmetro de consulta userName.

Retorna o código de status de resposta HTTP 200, se a solicitação HTTP tiver sido concluída com sucesso.

Como obter detalhes sobre um usuário

Método e ponto de extremidade:

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

Descrição:

Retorna detalhes sobre um usuário associado ao parâmetro de caminho user_id.

Retorna o código de status de resposta HTTP 200, se a solicitação HTTP tiver sido concluída com sucesso.

Crie um usuário

Método e ponto de extremidade:

POST /scim/v2/Users

Descrição:

Cria um usuário no Snowflake.

Retorna o código de status de resposta HTTP 201, se a solicitação HTTP tiver sido concluída com sucesso.

Se o usuário já existe ou a solicitação HTTP falha por um motivo diferente, então o Snowflake retorna o código de status de resposta HTTP 409.

Exemplos:

Crie um usuário com userName e loginName mapeados para o mesmo valor:

{
  "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

Crie um usuário com userName e loginName mapeados para valores diferentes:

Nota

Se você usa o Okta como seu provedor de identidade, siga este procedimento.

{
  "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

Substituição de atributos do usuário

Método e ponto de extremidade:

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

Descrição:

Substitui atributos do usuário associados ao parâmetro de caminho id.

Você deve definir op como replace para executar essa solicitação HTTP.

active permite os seguintes valores:

  • false: desativa o usuário.

  • true: ativa o usuário.

Retorna o código de status de resposta HTTP 200 se a solicitação HTTP tiver sido concluída com sucesso.

Se não for bem-sucedido, o código de resposta HTTP 204 será retornado.

Exemplos:

Desativar um usuário e atualiza seu givenName para deactivated_user:

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

Atualize um usuário com userName e loginName mapeados para o mesmo valor:

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

Atualize um usuário com userName e loginName mapeados para valores diferentes.

Se o Okta for seu provedor de identidade, siga este procedimento.

{
  "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

Atualização de um usuário

Método e ponto de extremidade:

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

Descrição:

Atualiza os atributos do usuário associado ao parâmetro de caminho id.

Se não for bem-sucedido, o código de resposta HTTP 400 será retornado. A solicitação HTTP não será bem-sucedida se a solicitação tentar alterar atributos imutáveis ou se os atributos que estiverem sendo alterados não existirem no Snowflake.

Exemplos:

Atualize um usuário e seus atributos "defaultRole", "defaultSecondaryRoles" e "defaultWarehouse".

Para especificar os atributos "defaultRole", "defaultSecondaryRoles" e "defaultWarehouse", você deve usar um dos esquemas extension <label-scim_intro_user_attributes>. O atributo defaultSecondaryRoles só aceita "ALL" como um valor.

Nota

O método PUT é mais caro que o método PATCH. Use a operação PATCH em seu lugar.

{
  "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

Exclusão de um usuário

Método e ponto de extremidade:

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

Descrição:

Exclui o usuário associado ao parâmetro de caminho id.