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 |
---|---|
|
|
|
|
|
|
|
|
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 |
---|---|---|---|
|
|
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 |
|
|
cadeia de caracteres |
O identificador usado para fazer login no Snowflake. Para obter mais informações sobre esses atributos, consulte CREATE USER. |
|
|
cadeia de caracteres |
O nome do usuário. |
|
|
cadeia de caracteres |
O sobrenome do usuário. |
|
|
cadeia de caracteres |
O endereço de e-mail do usuário. |
|
|
cadeia de caracteres |
O texto exibido na interface do usuário ao se referir ao usuário. |
|
N/A |
cadeia de caracteres |
O identificador único estabelecido pelo cliente provisionador (por exemplo, Azure, Okta). |
|
|
cadeia de caracteres |
A senha para o usuário. Este valor não é retornado na resposta JSON. Se a propriedade |
|
|
booleano |
Desabilita o usuário quando definido como |
|
N/A |
cadeia de caracteres |
Uma lista de grupos aos quais o usuário pertence. O grupo Os grupos de usuários são imutáveis e sua associação deve ser atualizada usando a API dos grupos SCIM. |
|
|
cadeia de caracteres |
A hora em que o usuário foi adicionado ao Snowflake. |
|
|
cadeia de caracteres |
A hora em que o usuário foi modificado pela última vez no Snowflake. |
|
N/A |
cadeia de caracteres |
O tipo de recurso para o usuário. Você deve usar |
|
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:
|
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 |
---|---|---|---|
|
|
cadeia de caracteres |
O warehouse virtual que está ativo por padrão para a sessão do usuário após o login. |
|
|
cadeia de caracteres |
A função principal que fica ativa por padrão para a sessão do usuário no login. |
|
|
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 |
|
|
cadeia de caracteres |
O tipo de usuário. Padrão: |
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
eloginName
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 }
Crie um usuário com
userName
eloginName
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" }
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
comoreplace
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
paradeactivated_user
:{ "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [ {"op": "replace", "value": { "active": false }} {"op": "replace", "value": { "givenName": "deactivated_user" }} ], }
Atualize um usuário com
userName
eloginName
mapeados para o mesmo valor:{ "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [ {"op": "replace", "value": { "active": false }} ] }
Atualize um usuário com
userName
eloginName
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"] }
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 esquemasextension
<label-scim_intro_user_attributes>. O atributodefaultSecondaryRoles
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" } }
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
.