Compartir a través de


Extensión del aprovisionamiento controlado por API para sincronizar atributos personalizados

De manera predeterminada, las aplicaciones de aprovisionamiento controladas por API admiten atributos de procesamiento que forman parte de los esquemas de usuario principal SCIM Estándar y de usuario Enterprise. El sistema de registros puede tener atributos personalizados que puede incluir como parte del aprovisionamiento controlado por API. En este tutorial avanzado se describe cómo ampliar la aplicación de aprovisionamiento controlado por API para procesar atributos personalizados adicionales.

Nota:

Antes de probar este escenario avanzado, recomendamos verificar que la configuración de tu aplicación de aprovisionamiento lista para usar funciona como se espera mediante uno de los siguientes clientes API Probador de Graph, cURL.

Escenario de ejemplo

Configuró la aplicación de aprovisionamiento controlada por API. La aplicación de aprovisionamiento consume correctamente los atributos que forman parte de los esquemas de usuario principal SCIM Estándar y de usuario Enterprise; además, aprovisiona usuarios en Microsoft Entra ID. Ahora quiere enviar dos atributos personalizados, HireDate y JobCode, desde el sistema de RR. HH. al punto de conexión de la API de aprovisionamiento de entrada. Querrá asignar estos dos atributos personalizados a los atributos employeeHireDate y jobTitle de Microsoft Entra.

Paso 1: Ampliar el esquema de la aplicación de aprovisionamiento

En este paso, agregaremos los dos atributos "HireDate" y "JobCode" que no forman parte del esquema SCIM estándar para la aplicación de aprovisionamiento y los usaremos en el flujo de datos de aprovisionamiento.

  1. Inicie sesión en el Centro de administración de Microsoft Entra al menos como Administrador de aplicaciones.
  2. Vaya a Aplicaciones de identidad>Aplicaciones>Empresariales.
  3. Abra la aplicación de aprovisionamiento controlada por API.
  4. Abra la hoja Aprovisionamiento.
  5. Haga clic en el botón Editar aprovisionamiento.
  6. Expanda la sección Asignaciones y haga clic en el vínculo de asignación de atributos.
    Captura de pantalla de Editar la asignación de atributos.
  7. Desplácese hacia abajo de la página Asignaciones de atributos. Seleccione Mostrar opciones avanzadas y haga clic en el vínculo Editar la lista de atributos de API. Captura de pantalla de Editar la lista de atributos de API.
  8. Desplácese hacia hasta el final de la página Editar la lista de atributos .
  9. Agregue los dos atributos siguientes a la lista como extensiones del esquema SCIM. Puede usar su propio espacio de nombres del esquema SCIM.
    urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate
    urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode
    Captura de pantalla de la adición de un atributo personalizado.
  10. Guarde los cambios

Nota:

Si solo desea agregar algunos atributos adicionales a la aplicación de aprovisionamiento, utilice el centro de administración de Microsoft Entra para ampliar el esquema. Si quiere agregar más atributos personalizados (supongamos que más de 20 atributos más), se recomienda usar el modo UpdateSchema del script de PowerShell CSV2SCIM que automatiza el proceso manual anterior.

Paso 2: Asignación de los atributos personalizados

Ahora agregaremos estas extensiones a la asignación de atributos de la aplicación de aprovisionamiento.

  1. Haga clic en el vínculo Agregar nueva asignación en la página Asignación de atributos. Captura de pantalla de Agregar nueva asignación.

  2. Asigne el atributo urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate a employeeHireDate. Haga clic en OK.
    Captura de pantalla de la asignación de fechas de contratación.

  3. A continuación, seleccione la asignación existente de title y haga clic en ella para editar la asignación.

  4. Edite la asignación de atributos a una expresión que incluya urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode como parte del atributo jobTitle de Microsoft Entra.

      Join("", [title], "(", [urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode], ")")
    

    Captura de pantalla de la asignación del puesto.

    Con esta asignación de expresiones, si title es “Tour Lead” y JobCode es “TL-1001”, el atributo jobTitle de Microsoft Entra se establecerá en “Tour Lead (TL-1001)”.

  5. Guarde las asignaciones de atributos.

Paso 3: Carga de solicitud masiva con atributos personalizados

  1. Abre tu cliente de API (Explorador de gráficos / cURL).
  2. Copie y pegue la solicitud masiva con atributos personalizados.
  3. Envíe la solicitud masiva a la dirección URL del punto de conexión de la API de aprovisionamiento.
    Captura de pantalla de la solicitud de carga masiva.
  4. Transcurrido un tiempo, puede comprobar los registros de aprovisionamiento para verificar el cambio de atributo.
    Captura de pantalla de los registros de aprovisionamiento.
  5. También puede comprobar el cambio en el perfil de usuario de Microsoft Entra. El valor de Employee hire date refleja la zona horaria del inquilino.
    Captura de pantalla del perfil de usuario.

Apéndice

Solicitud masiva con atributos personalizados

La solicitud masiva incluye los atributos personalizados que se configuraron en los pasos anteriores.

Cuerpo de la solicitud

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:BulkRequest"],
    "Operations": [
    {
        "method": "POST",
        "bulkId": "701984",
        "path": "/Users",
        "data": {
            "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:contoso:1.0:User"],
            "externalId": "701984",
            "userName": "bjensen@example.com",
            "name": {
                "formatted": "Ms. Barbara J Jensen, III",
                "familyName": "Jensen",
                "givenName": "Barbara",
                "middleName": "Jane",
                "honorificPrefix": "Ms.",
                "honorificSuffix": "III"
            },
            "displayName": "Babs Jensen",
            "nickName": "Babs",
            "emails": [
            {
              "value": "bjensen@example.com",
              "type": "work",
              "primary": true
            }
            ],
            "addresses": [
            {
              "type": "work",
              "streetAddress": "234300 Universal City Plaza",
              "locality": "Hollywood",
              "region": "CA",
              "postalCode": "91608",
              "country": "USA",
              "formatted": "100 Universal City Plaza\nHollywood, CA 91608 USA",
              "primary": true
            }
            ],
            "phoneNumbers": [
            {
              "value": "555-555-5555",
              "type": "work"
            }
            ],
            "userType": "Employee",
            "title": "Tour Guide",
            "preferredLanguage": "en-US",
            "locale": "en-US",
            "timezone": "America/Los_Angeles",
            "active":true,
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
                "employeeNumber": "701984",
                "costCenter": "4130",
                "organization": "Universal Studios",
                "division": "Theme Park",
                "department": "Tour Operations",
                "manager": {
                  "value": "89607",
                  "displayName": "John Smith"
                 }
            },
            "urn:ietf:params:scim:schemas:extension:contoso:1.0:User": {
                "HireDate": "2021-05-01T00:00:00-05:00",
                "JobCode": "TG-1001"
            }            
        }
    },
    {
        "method": "POST",
        "bulkId": "701985",
        "path": "/Users",
        "data": {
            "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:contoso:1.0:User"],
            "externalId": "701985",
            "userName": "Kjensen@example.com",
            "name": {
                "formatted": "Ms. Kathy J Jensen, III",
                "familyName": "Jensen",
                "givenName": "Kathy",
                "middleName": "Jane",
                "honorificPrefix": "Ms.",
                "honorificSuffix": "III"
            },
            "displayName": "Kathy Jensen",
            "nickName": "Kathy",
            "emails": [
            {
              "value": "kjensen@example.com",
              "type": "work",
              "primary": true
            }
            ],
            "addresses": [
            {
              "type": "work",
              "streetAddress": "100 Oracle City Plaza",
              "locality": "Hollywood",
              "region": "CA",
              "postalCode": "91618",
              "country": "USA",
              "formatted": "100 Oracle City Plaza\nHollywood, CA 91618 USA",
              "primary": true
            }
            ],
            "phoneNumbers": [
            {
              "value": "555-555-5545",
              "type": "work"
            }
            ],
            "userType": "Employee",
            "title": "Tour Lead",
            "preferredLanguage": "en-US",
            "locale": "en-US",
            "timezone": "America/Los_Angeles",
            "active":true,
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
              "employeeNumber": "701984",
              "costCenter": "4130",
              "organization": "Universal Studios",
              "division": "Theme Park",
              "department": "Tour Operations",
              "manager": {
                "value": "701984",
                "displayName": "Barbara Jensen"
             }
            },
            "urn:ietf:params:scim:schemas:extension:contoso:1.0:User": {
                "HireDate": "2022-07-15T00:00:00-05:00",
                "JobCode": "TL-1003"
            }            
        }
    }
],
    "failOnErrors": null
}

Pasos siguientes