Sincronize usuários dos seus sistemas de identidade locais para o RAM pelo protocolo SCIM, protegido por autorização OAuth 2.0.
Pré-requisitos
Recomendamos que um administrador do RAM ou um usuário do RAM com permissões de gerenciamento de OAuth execute as operações deste tópico.
Visão geral
O SCIM (System for Cross-domain Identity Management) padroniza o gerenciamento de identidades em aplicações na nuvem. O SCIM 2.0 usa um modelo de objetos em que todos herdam de Resource, com os atributos
id,externalIdemeta. A especificação RFC 7643 estende esse modelo com User, Group e EnterpriseUser. Este tópico aborda o recurso User.O OAuth (Open Authorization) permite que aplicações de terceiros acessem recursos do usuário sem expor credenciais. O Alibaba Cloud oferece suporte a três tipos de aplicações OAuth: Web Application, Native Application e Server Application. A Web Application e a Native Application usam OAuth de 3 pernas (3-legged), enquanto a Server Application usa OAuth de 2 pernas (2-legged). O SCIM emprega OAuth de 2 pernas para comunicação entre cliente e API, conforme definido na especificação OAuth 2.0. Consulte Visão geral das aplicações OAuth.
Endpoint SCIM do Alibaba Cloud:
https://scim.aliyun.com.Endpoint OAuth do Alibaba Cloud para obter um
access_token:https://oauth.aliyun.com/v1/token.
Etapa 1: Criar e autorizar uma aplicação OAuth
Faça logon no console do RAM com sua conta Alibaba Cloud.
No painel de navegação à esquerda, clique em OAuth (Preview).
-
Na aba Enterprise Applications, clique em Create Application.
Em Application Type, selecione Server Application. Consulte Criar uma aplicação.
Após a criação, obtenha o
client_idna página de detalhes da aplicação. -
Clique no nome da aplicação. Na aba OAuth Scope, clique em Add OAuth Scopes.
Para OAuth Scope, selecione /acs/scim. Consulte Gerenciar escopos OAuth.
-
Autorize a aplicação OAuth.
Na aba OAuth Scope, clique em Grants.
Na página Third-party Application Authorization, selecione Alibaba Cloud Cross-domain Identity Management Service e clique em Grants.
-
Na aba App Secrets, clique em Create Secret para criar um segredo de aplicação.
ImportanteO AppSecretValue aparece apenas uma vez durante a criação e não pode ser recuperado posteriormente. Armazene-o com segurança.
Etapa 2: Sincronizar dados de usuários
Sincronize dados de usuários por meio de um cliente, como o One Identity, ou diretamente pelas APIs SCIM.
Cliente: Configure as definições SCIM em um cliente como o One Identity para sincronizar os dados dos usuários. Consulte a documentação do One Identity.
-
API SCIM: Mapeie usuários locais para usuários do RAM. Crie, exclua, consulte e atualize os seguintes atributos de usuário do RAM.
id: ID do usuário RAM, globalmente único e gerado pelo servidor.-
externalId: ID único especificado pelo cliente que associa um usuário do RAM a um usuário no seu sistema local.NotaUsuários do RAM criados no console não possuem o atributo
externalId. userName: Nome único especificado pelo cliente para cada usuário.displayName: Nome de exibição do usuário RAM, conforme especificado pelo cliente.
Para sincronizar dados de usuários com as APIs SCIM:
-
Obtenha o ID (client_id) e o valor do segredo (AppSecretValue) da aplicação de servidor autorizada.
client_id: ID da aplicação. Obtenha esse ID na Etapa 1: Criar e autorizar uma aplicação OAuth.
AppSecretValue: Segredo da aplicação. Obtenha-o na Etapa 1: Criar e autorizar uma aplicação OAuth.
-
Para obter um
access_token, envie uma solicitação com oclient_ide oAppSecretValueparahttps://oauth.aliyun.com/v1/token.O cabeçalho Authorization deve usar o formato
"Authorization: Basic Base64Encode(client_id:AppSecretValue)". Por exemplo, se client_id=cid e AppSecretValue=123456, o cabeçalho Authorization deverá ser"Authorization: Basic Y2lkOjEyMzQ1Ng==".Exemplo de solicitação:
curl --location --request POST --header "Authorization: Basic Y2lkOjEyMzQ1Ng==" https://oauth.aliyun.com/v1/token?grant_type=client_credentials&client_id=463790568674183****Exemplo de resposta:
{ "scope": "/acs/scim", "request_id": "8dc768e0-d6fe-4f52-a788-05631dd6c584", "access_token": "eyJ***hKg", "token_type": "Bearer", "expires_in": "3599" } -
Consulte os valores de
ResourceTypeeSchemacompatíveis com o SCIM do Alibaba Cloud.Para consultar o
ResourceTypecompatível:curl --location --request GET 'https://scim.aliyun.com/ResourceTypes'Para consultar o
Schemacompatível:curl --location --request GET 'https://scim.aliyun.com/Schemas' -
Crie, consulte, atualize e exclua usuários do RAM.
-
Crie um usuário do RAM.
Especifique userName, displayName e externalId correspondentes ao usuário no seu sistema local.
Exemplo de solicitação:
curl --location --request POST 'https://scim.aliyun.com/Users' \ --header 'Authorization: Bearer eyJ***hKg' \ --header 'Content-Type: application/json' \ --data-raw '{ "displayName": "j2gg0s_****", "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "6e74eec4-ddb5-4e74-bd12-5e7b99b2****", "userName": "j2gg0screatedbyscim_exa****" }'Exemplo de resposta:
{ "displayName": "j2gg0s_****", "meta": { "created": "2020-02-14T03:58:59Z", "location": "https://scim.aliyun.com/Users/27648498165273****", "lastModified": "2020-02-14T03:58:59Z", "resourceType": "User" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "6e74eec4-ddb5-4e74-bd12-5e7b99b2****", "id": "27648498165273****", "userName": "j2gg0screatedbyscim_exa****" } -
Consulte um usuário específico do RAM.
Use
GET /Users/{id}para consultar um usuário do RAM porid.Use
GET /Users?filter=externalId eq xxxpara consultar um usuário do RAM porexternalId.-
Use
GET /Users?filter=userName eq xxxpara consultar um usuário do RAM poruserName.Exemplo de solicitação:
curl --location --request GET 'https://scim.aliyun.com/Users?filter=userName%20eq%20%22j2gg0screatedbyscim****%22' \ --header 'Authorization: Bearer eyJ***hKg'Exemplo de resposta:
{ "startIndex": 1, "totalResults": 1, "itemsPerPage": 30, "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "Resources": [ { "displayName": "j2gg0screatedbyscim****", "meta": { "created": "2019-12-11T01:53:19Z", "location": "https://scim.aliyun.com/Users/27769827602919****", "lastModified": "2019-12-11T02:10:39Z", "resourceType": "User" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "6e74eec4-ddb5-4e74-bd12-5e7b99b2****", "id": "27769827602919****", "userName": "j2gg0screatedbyscim****" } ] }NotaPara filtros SCIM, o Alibaba Cloud aceita apenas as operações
andeeqnos atributosid,userNameeexternalId.
-
Atualize atributos de usuário do RAM.
Exemplo de solicitação:
curl --location --request PUT 'https://scim.aliyun.com/Users/27648498165273****' \ --header 'Authorization: Bearer eyJ***hKg' \ --header 'Content-Type: application/json' \ --data-raw '{ "displayName": "j2gg0s_new_****", "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "6e74eec4-ddb5-4e74-bd12-5e7b99b2****", "userName": "j2gg0screatedbyscim_new_exa****" }'Exemplo de resposta:
{ "displayName": "j2gg0s_new_****", "meta": { "created": "2020-02-14T03:58:59Z", "location": "https://scim.aliyun.com/Users/27648498165273****", "lastModified": "2020-02-14T04:03:55Z", "resourceType": "User" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "6e74eec4-ddb5-4e74-bd12-5e7b99b2****", "id": "27648498165273****", "userName": "j2gg0screatedbyscim_new_exa****"} -
Exclua um usuário do RAM.
Exemplo de solicitação:
curl --location --request DELETE 'https://scim.aliyun.com/Users/27648498165273****' \ --header 'Authorization: Bearer eyJ***hKg' \ --header 'Content-Type: application/json'Um código de status HTTP 204 confirma a exclusão bem-sucedida.
NotaO Alibaba Cloud não oferece suporte a exclusão lógica (soft delete). Mapeie quaisquer operações de exclusão lógica para exclusão física (hard delete) antes de sincronizar os dados.
-