Sincronice usuarios desde sus sistemas de identidad locales hacia RAM a través del protocolo SCIM, protegido mediante autorización OAuth 2.0.
Requisitos previos
Se recomienda que un administrador de RAM o un usuario de RAM con permisos de gestión de OAuth realice las operaciones descritas en este tema.
Descripción general
SCIM (System for Cross-domain Identity Management) estandariza la gestión de identidades en aplicaciones en la nube. SCIM 2.0 utiliza un modelo de objetos donde todos heredan de Resource con los atributos
id,externalIdymeta. RFC 7643 extiende estos conceptos con User, Group y EnterpriseUser. Este tema se centra en el recurso User.OAuth (Open Authorization) permite que aplicaciones de terceros accedan a recursos de usuario sin exponer credenciales. Alibaba Cloud admite tres tipos de aplicaciones OAuth: Web Application, Native Application y Server Application. Tanto Web Application como Native Application usan OAuth de 3 patas, mientras que Server Application emplea OAuth de 2 patas. SCIM utiliza OAuth de 2 patas para la comunicación entre cliente y API, según lo define la especificación OAuth 2.0. Overview of OAuth applications.
Endpoint de SCIM de Alibaba Cloud:
https://scim.alibabacloud.com.Endpoint de OAuth de Alibaba Cloud para obtener un
access_token:https://oauth.aliyun.com/v1/token.
Paso 1: Crear y autorizar una aplicación OAuth
Inicie sesión en la consola de RAM con su cuenta de Alibaba Cloud.
En el panel de navegación izquierdo, haga clic en OAuth (Preview).
-
En la pestaña Enterprise Applications, haga clic en Create Application.
En Application Type, seleccione Server Application. Create an application.
Una vez creada la aplicación, obtenga el
client_iddesde la página de detalles de la aplicación. -
Haga clic en el nombre de la aplicación. En la pestaña OAuth Scope, haga clic en Add OAuth Scopes.
En OAuth Scope, seleccione /acs/scim. Manage OAuth scopes.
-
Autorice la aplicación OAuth.
En la pestaña OAuth Scope, haga clic en Grants.
En la página Third-party Application Authorization, seleccione Alibaba Cloud Cross-domain Identity Management Service y luego haga clic en Grants.
-
En la pestaña App Secrets, haga clic en Create Secret para crear un secreto de aplicación.
ImportanteEl valor AppSecretValue se muestra únicamente durante la creación y no puede recuperarse posteriormente. Guárdelo de forma segura.
Paso 2: Sincronizar datos de usuarios
Puede sincronizar los datos de usuarios mediante un cliente como One Identity o directamente a través de las API de SCIM.
Cliente: Configure los parámetros de SCIM en un cliente como One Identity para sincronizar los datos de usuarios. Consulte la documentación de One Identity.
-
API de SCIM: Asigne usuarios locales a usuarios de RAM. Puede crear, eliminar, consultar y actualizar los siguientes atributos de usuario de RAM.
id: Identificador del usuario de RAM, único a nivel global y generado por el servidor.-
externalId: Identificador único especificado por el cliente que vincula al usuario de RAM con un usuario en su sistema local.NotaLos usuarios de RAM creados desde la consola no incluyen el atributo
externalId. userName: Nombre único especificado por el cliente para cada usuario.displayName: Nombre para mostrar del usuario de RAM, definido por el cliente.
Para sincronizar datos de usuarios mediante las API de SCIM:
-
Obtenga el ID (client_id) y el valor del secreto (AppSecretValue) de la aplicación de servidor autorizada.
client_id: Identificador de la aplicación. Puede obtenerlo en Step 1: Create and authorize an OAuth application.
AppSecretValue: Secreto de la aplicación. Puede obtenerlo en Step 1: Create and authorize an OAuth application.
-
Para obtener un
access_token, envíe una solicitud que incluyaclient_idyAppSecretValueahttps://oauth.aliyun.com/v1/token.El encabezado Authorization debe seguir el formato
"Authorization: Basic Base64Encode(client_id:AppSecretValue)". Por ejemplo, si client_id=cid y AppSecretValue=123456, el encabezado Authorization debe ser"Authorization: Basic Y2lkOjEyMzQ1Ng==".Ejemplo de solicitud:
curl --location --request POST --header "Authorization: Basic Y2lkOjEyMzQ1Ng==" https://oauth.aliyun.com/v1/token?grant_type=client_credentials&client_id=463790568674183****Ejemplo de respuesta:
{ "scope": "/acs/scim", "request_id": "8dc768e0-d6fe-4f52-a788-05631dd6c584", "access_token": "eyJ***hKg", "token_type": "Bearer", "expires_in": "3599" } -
Consulte los valores de
ResourceTypeySchemacompatibles con SCIM de Alibaba Cloud.Para consultar los valores de
ResourceTypeadmitidos:curl --location --request GET 'https://scim.alibabacloud.com/ResourceTypes'Para consultar los valores de
Schemaadmitidos:curl --location --request GET 'https://scim.alibabacloud.com/Schemas' -
Cree, consulte, actualice y elimine usuarios de RAM.
-
Crear un usuario de RAM.
Especifique userName, displayName y externalId que correspondan al usuario en su sistema local.
Ejemplo de solicitud:
curl --location --request POST 'https://scim.alibabacloud.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****" }'Ejemplo de respuesta:
{ "displayName": "j2gg0s_****", "meta": { "created": "2020-02-14T03:58:59Z", "location": "https://scim.alibabacloud.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****" } -
Consultar un usuario específico de RAM.
Utilice
GET /Users/{id}para consultar un usuario de RAM porid.Utilice
GET /Users?filter=externalId eq xxxpara consultar un usuario de RAM porexternalId.-
Utilice
GET /Users?filter=userName eq xxxpara consultar un usuario de RAM poruserName.Ejemplo de solicitud:
curl --location --request GET 'https://scim.alibabacloud.com/Users?filter=userName%20eq%20%22j2gg0screatedbyscim****%22' \ --header 'Authorization: Bearer eyJ***hKg'Ejemplo de respuesta:
{ "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.alibabacloud.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, Alibaba Cloud solo admite las operaciones
andyeqsobre los atributosid,userNameyexternalId.
-
Actualizar atributos de un usuario de RAM.
Ejemplo de solicitud:
curl --location --request PUT 'https://scim.alibabacloud.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****" }'Ejemplo de respuesta:
{ "displayName": "j2gg0s_new_****", "meta": { "created": "2020-02-14T03:58:59Z", "location": "https://scim.alibabacloud.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****"} -
Eliminar un usuario de RAM.
Ejemplo de solicitud:
curl --location --request DELETE 'https://scim.alibabacloud.com/Users/27648498165273****' \ --header 'Authorization: Bearer eyJ***hKg' \ --header 'Content-Type: application/json'Un código de estado HTTP 204 confirma que la eliminación se realizó correctamente.
NotaAlibaba Cloud no admite eliminación lógica. Antes de sincronizar datos, convierta cualquier operación de eliminación lógica en una eliminación definitiva.
-