Compartir a través de


Problemas conocidos y soluciones con el cumplimiento de protocolo SCIM 2.0 del servicio de aprovisionamiento de usuarios de Microsoft Entra ID

Microsoft Entra ID puede aprovisionar automáticamente usuarios y grupos en cualquier aplicación o sistema fronted por un servicio web con la interfaz definida en la especificación del protocolo System for Cross-Domain Identity Management (SCIM) 2.0.

La compatibilidad de Microsoft Entra con el protocolo SCIM 2.0 se describe en Uso del sistema para administración de identidades entre dominios (SCIM) para aprovisionar automáticamente usuarios y grupos de Microsoft Entra ID a aplicaciones, que enumera las partes específicas del protocolo que implementa para aprovisionar automáticamente usuarios y grupos de Microsoft Entra ID a aplicaciones que admiten SCIM 2.0.

En este artículo se describen los problemas actuales y pasados con el cumplimiento del protocolo SCIM 2.0 en el servicio de aprovisionamiento de usuarios de Microsoft Entra, así como la forma de solucionar estos problemas.

Descripción del trabajo de aprovisionamiento

El servicio de aprovisionamiento usa el concepto de trabajo para operar con una aplicación. El jobID se puede encontrar en la barra de progreso. Todas las aplicaciones de aprovisionamiento nuevas se crean con un jobID a partir de scim. El trabajo de SCIM representa el estado actual del servicio. Los trabajos más antiguos tienen el identificador customappsso. Este trabajo representa el estado del servicio en 2018.

Si usa una aplicación en la galería, el trabajo suele contener el nombre de la aplicación (por ejemplo, zoom snowFlake o dataBricks). Puede omitir esta documentación cuando se usa una aplicación de la galería. Este artículo se aplica principalmente a las aplicaciones que no son de la galería con el valor de jobID establecido en SCIM o customAppSSO.

Problemas de cumplimiento y estado de SCIM 2.0

En , cualquier elemento marcado como fijo significa que el comportamiento adecuado se puede encontrar en el trabajo sciM. Hemos realizado trabajos para garantizar la compatibilidad con versiones anteriores de los cambios que hemos realizado. Se recomienda usar el nuevo comportamiento para todas las nuevas implementaciones y actualizar las implementaciones existentes. El comportamiento de customappSSO que era el predeterminado antes de diciembre de 2018 ya no se admite.

Nota

Para los cambios realizados en 2018, es posible volver al comportamiento de customappsso. En el caso de los cambios realizados desde 2018, puede usar las direcciones URL para revertir al comportamiento anterior. Hemos realizado trabajos para garantizar la compatibilidad con versiones anteriores de los cambios que hemos realizado, permitiéndole revertir al valor de jobID anterior o mediante el uso de una marca. Sin embargo, como se mencionó anteriormente, no se recomienda implementar el comportamiento anterior, ya que ya no se admite. Se recomienda usar el nuevo comportamiento para todas las nuevas implementaciones y actualizar las implementaciones existentes.

Problema de cumplimiento de SCIM 2.0 ¿Fijo? Fecha de corrección Compatibilidad
Microsoft Entra ID requiere "/scim" en la raíz de la dirección URL del punto de conexión SCIM de la aplicación 18 de diciembre de 2018 cambiar a una versión anterior: customappSSO
Los atributos de extensión usan notación de puntos . antes de los nombres de atributo en lugar de la notación de dos puntos ":" 18 de diciembre de 2018 cambiar a una versión anterior: customappSSO
Las solicitudes de revisión para los atributos multivalor tienen una sintaxis de filtro de ruta no válida. 18 de diciembre de 2018 cambiar a una versión anterior: customappSSO
Las solicitudes de creación de grupos contienen un URI de esquema no válido. 18 de diciembre de 2018 cambiar a una versión anterior: customappSSO
Actualización del comportamiento de las revisiones para garantizar el cumplimiento (por ejemplo, activo como booleano y eliminación de las pertenencia a grupos adecuadas) No Por determinar uso de marca de características

Marcas para modificar el comportamiento de SCIM

Use las marcas en la dirección URL del inquilino de la aplicación para cambiar el comportamiento predeterminado del cliente SCIM.

Marcas SCIM para el comportamiento posterior.

Use la siguiente dirección URL para actualizar el comportamiento de las revisiones para garantizar el cumplimiento de SCIM. La marca modifica los comportamientos siguientes:

  • Solicitudes realizadas para deshabilitar usuarios
  • Solicitudes para agregar un atributo de cadena de un solo valor
  • Solicitudes para reemplazar varios atributos
  • Solicitudes para quitar un miembro del grupo

Actualmente, este comportamiento solo está disponible cuando se usa la marca, pero se convertirá en el comportamiento predeterminado durante los próximos meses. Tenga en cuenta que esta marca de característica no funciona actualmente con el aprovisionamiento a petición.

Solicitudes de ejemplo para ayudar a describir lo que el motor de sincronización envía actualmente frente a las solicitudes que se envían una vez habilitada la marca de característica.

Solicitudes realizadas para deshabilitar usuarios:

Sin marca de características

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "Replace",
          "path": "active",
          "value": "False"
      }
  ]
}

Con la marca de características

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "replace",
          "path": "active",
          "value": false
      }
  ]
}

Solicitudes realizadas para agregar un atributo de cadena de valor único:

Sin marca de características

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
    {
      "op": "Add",
      "path": "nickName",
      "value": "Babs"
    }
  ]
}

Con la marca de características

{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [
    {
      "op": "add",
      "path": "nickName",
      "value": "Babs"
    }
  ]
}

Solicitudes para reemplazar varios atributos:

Sin marca de características

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "Replace",
          "path": "displayName",
          "value": "Pvlo"
      },
      {
          "op": "Replace",
          "path": "emails[type eq \"work\"].value",
          "value": "TestBcwqnm@test.microsoft.com"
      },
      {
          "op": "Replace",
          "path": "name.givenName",
          "value": "Gtfd"
      },
      {
          "op": "Replace",
          "path": "name.familyName",
          "value": "Pkqf"
      },
      {
          "op": "Replace",
          "path": "externalId",
          "value": "Eqpj"
      },
      {
          "op": "Replace",
          "path": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber",
          "value": "Eqpj"
      }
  ]
}

Con la marca de características

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "replace",
          "path": "emails[type eq \"work\"].value",
          "value": "TestMhvaes@test.microsoft.com"
      },
      {
          "op": "replace",
          "value": {
              "displayName": "Bjfe",
              "name.givenName": "Kkom",
              "name.familyName": "Unua",
              "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber": "Aklq"
          }
      }
  ]
}

Solicitudes realizadas para quitar un miembro del grupo:

Sin marca de características

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "Remove",
          "path": "members",
          "value": [
              {
                  "value": "u1091"
              }
          ]
      }
  ]
}

Con la marca de características

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "remove",
          "path": "members[value eq \"7f4bc1a3-285e-48ae-8202-5accb43efb0e\"]"
      }
  ]
}
  • Dirección URL de degradación: Una vez que el nuevo comportamiento compatible con SCIM se convierte en el valor predeterminado en la aplicación que no es de la galería, puede usar la siguiente dirección URL para revertir al comportamiento antiguo y no compatible con SCIM: AzureAdScimPatch2017

Actualización desde el trabajo customappsso anterior al trabajo de SCIM

Elimine el trabajo existente customappsso y cree un nuevo trabajo SCIM.

  1. Inicie sesión en el Centro de administración de Microsoft Entra como al menos un administrador de aplicaciones.

  2. Vaya a Aplicacionesempresariales>.

  3. Busque y seleccione la aplicación SCIM existente.

  4. En la sección Propiedades de la aplicación SCIM existente, copie el identificador de objeto.

  5. En una nueva ventana del explorador web, vaya a https://developer.microsoft.com/graph/graph-explorer e inicie sesión como administrador para el inquilino de Microsoft Entra ID donde se agrega la aplicación.

  6. En el Probador de Graph, ejecute el comando siguiente para buscar el identificador del trabajo de aprovisionamiento. Reemplace "[object-id]" por el id. de la entidad de servicio (id. de objeto) que se copió en el tercer paso.

    GET https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs

    Obtener trabajos obtener trabajos

  7. En los resultados, copie la cadena "ID" completa que comienza con "customappsso" o "scim".

  8. Ejecute el comando siguiente para recuperar la configuración de asignación de atributos, de modo que pueda realizar una copia de seguridad. Utilice el mismo [object-id] que antes y reemplace [job-id] con el identificador del trabajo de aprovisionamiento copiado en el paso anterior.

    GET https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs/[job-id]/schema

  9. Copie la salida JSON desde el último paso y guárdela en un archivo de texto. El código JSON contiene las asignaciones de atributos personalizadas que ha agregado a la aplicación anterior y deben ser aproximadamente unas miles de líneas de código JSON.

  10. Ejecute el comando siguiente para eliminar el trabajo de aprovisionamiento:

    DELETE https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs/[job-id]

  11. Ejecute el comando siguiente para crear un nuevo trabajo de aprovisionamiento que tenga las correcciones del servicio más recientes.

POST https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs { "templateId": "scim" }

  1. En los resultados del último paso, copie la cadena "ID" completa que comienza con "scim". Si lo desea, vuelva a aplicar las asignaciones de atributos anteriores; para ello, ejecute el comando siguiente, reemplace [new-job-id] por el nuevo identificador de trabajo que ha copiado y escriba la salida JSON del paso 7 como cuerpo de la solicitud.

PUT https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs/[new-job-id]/schema { <your-schema-json-here> }

  1. Vuelva a la primera ventana del explorador web y seleccione la pestaña Aprovisionamiento de la aplicación.
  2. Compruebe la configuración y, a continuación, inicie el trabajo de aprovisionamiento.

Le permitimos cambiar de nuevo al comportamiento anterior, pero no se recomienda, ya que customappsso no se beneficia de algunas de las actualizaciones que realizamos y es posible que no se admita para siempre.

  1. Inicie sesión en el Centro de administración de Microsoft Entra como al menos un administrador de aplicaciones.

  2. Vaya a Aplicacionesempresariales>.

  3. En la sección Crear aplicación , cree una nueva aplicación que no sea de la galería .

  4. En la sección Propiedades de la nueva aplicación personalizada, copie el identificador de objeto.

  5. En una nueva ventana del explorador web, vaya a https://developer.microsoft.com/graph/graph-explorer e inicie sesión como administrador para el inquilino de Microsoft Entra ID donde se agrega la aplicación.

  6. En el Probador de Graph, ejecute el comando siguiente para inicializar la configuración de aprovisionamiento de la aplicación. Reemplace "[object-id]" por el id. de la entidad de servicio (id. de objeto) que se copió en el tercer paso.

    POST https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs { templateId: "customappsso" }

  7. Vuelva a la primera ventana del explorador web y seleccione la pestaña Aprovisionamiento de la aplicación.

  8. Complete la configuración del aprovisionamiento de usuarios como lo haría normalmente.

Pasos siguientes

Más información sobre el aprovisionamiento y desaprovisionamiento en aplicaciones SaaS