Share via


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, se recomienda comprobar que la configuración de la aplicación de aprovisionamiento estándar funcione según lo previsto mediante uno de los siguientes clientes de API Graph Explorer, cURL o Postman.

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.
    Screenshot of edit attribute mapping.
  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. Screenshot of edit API attribute list.
  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
    Screenshot of adding custom attributes.
  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. Screenshot of add new mapping.

  2. Asigne el atributo urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate a employeeHireDate. Haga clic en OK.
    Screenshot of hire date mapping.

  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], ")")
    

    Screenshot of job title mapping.

    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. Abra el cliente de API (Graph Explorer, Postman o 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.
    Screenshot of bulk upload request.
  4. Transcurrido un tiempo, puede comprobar los registros de aprovisionamiento para verificar el cambio de atributo.
    Screenshot of provisioning logs.
  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.
    Screenshot of user profile.

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