Creación de accessPackageAssignmentRequest

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

En Microsoft Entra Administración de derechos, cree un nuevo objeto accessPackageAssignmentRequest. Esta operación se usa para asignar un usuario a un paquete de acceso, actualizar la asignación o quitar una asignación de paquete de acceso.

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) EntitlementMgmt-SubjectAccess.ReadWrite EntitlementManagement.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación EntitlementManagement.ReadWrite.All No disponible.

Sugerencia

El rol y el permiso necesarios para el acceso delegado mediante cuentas profesionales o educativas dependen de la requestType solicitud que se envíe.

Solicitudes del usuario final : userAdd, userExtend, userUpdate, userRemovey approverRemove:

  • El usuario que ha iniciado sesión no necesita un rol de administrador.
  • El permiso con privilegios mínimos es EntitlementMgmt-SubjectAccess.ReadWrite.
  • Mantener el permiso no es suficiente por sí mismo: si un usuario final puede enviar una solicitud también se rige por el accessPackageAssignmentPolicy correspondiente, que controla quién se puede asignar a un paquete de acceso y quién puede solicitarlo (requestorSettings).

Solicitudes de administrador : adminAdd, adminUpdatey adminRemove:

  • El permiso con privilegios mínimos es EntitlementManagement.ReadWrite.All.
  • Al usuario que ha iniciado sesión se le debe asignar un rol de administrador compatible. Roles admitidos, de menos a más privilegios:

En escenarios de solo aplicación, se puede asignar a la aplicación que realiza la llamada uno de los roles admitidos anteriores en lugar del permiso de EntitlementManagement.ReadWrite.All aplicación. El rol administrador de asignación de paquetes de Access tiene menos privilegios que el permiso de aplicación EntitlementManagement.ReadWrite.All .

Para obtener más información, vea Delegación y roles en la administración de derechos y cómo delegar la gobernanza del acceso a administradores de paquetes de acceso en la administración de derechos.

Solicitud HTTP

POST /identityGovernance/entitlementManagement/assignmentRequests

Encabezados de solicitud

Nombre Descripción
Authorization {token} de portador. Obligatorio.
Content-Type application/json. Obligatorio.

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporcione una representación JSON del objeto accessPackageAssignmentRequest .

Para que un administrador solicite crear una asignación para un usuario, el valor de la propiedad requestType es adminAdd, y la propiedad assignment contiene el targetId con el identificador del usuario que se va a asignar, la propiedad assignmentPolicyId que identifica accessPackageAssignmentPolicy y la propiedad accessPackageId que identifica el accessPackage.

Para que un administrador solicite actualizar una asignación (por ejemplo, para ampliar la asignación o actualizar las respuestas a las preguntas), el valor de la propiedad requestType es adminUpdatey la propiedad assignment contiene la propiedad id que identifica el accessPackageAssignment que se está actualizando.

Para que un administrador solicite quitar una asignación, el valor de la propiedad requestType es adminRemovey la propiedad assignment contiene la propiedad id que identifica el accessPackageAssignment que se va a quitar.

Para que un usuario que no sea administrador solicite crear su propia asignación para una primera asignación o renovar la asignación, el valor de la propiedad requestType es userAdd. La propiedad assignment contiene un objeto con targetId con el id del usuario. La propiedad assignmentPolicyId identifica accessPackageAssignmentPolicy. La propiedad accessPackageId identifica accessPackage. El usuario que realiza la solicitud ya debe existir en el directorio.

Para que un usuario que no sea administrador solicite actualizar sus propias asignaciones, el valor de la propiedad requestType es userUpdate. La propiedad assignment contiene el targetId objeto con de id los usuarios. La propiedad assignmentPolicyId identifica accessPackageAssignmentPolicy. La propiedad accessPackageId identifica accessPackage. El usuario que realiza la solicitud ya debe existir en el directorio.

Respuesta

Si se ejecuta correctamente, este método devuelve un código de respuesta de la serie 200 y un nuevo objeto accessPackageAssignmentRequest en el cuerpo de la respuesta.

Si el tipo de solicitud es adminAdd para esta solicitud, también se crea un accessPackageAssignment y, si es necesario, un accessPackageSubject . Puede buscar esos objetos mediante los parámetros de consulta al enumerar accessPackageAssignments.

Ejemplos

Ejemplo 1: Administración solicita una asignación directa para un usuario que ya está en el directorio

Solicitud

En el ejemplo siguiente se muestra una solicitud para una asignación directa, en la que el administrador solicita la creación de una asignación para un usuario. Dado que es posible que accessPackageSubject aún no exista, el valor de targetID es el identificador de objeto del usuario que se va a asignar, el valor de accessPackageId es el paquete de acceso deseado para ese usuario y el valor de assignmentPolicyId es una directiva de asignación directa en ese paquete de acceso.

POST https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/assignmentRequests
Content-type: application/json

{
  "requestType": "adminAdd",
  "assignment":{
     "targetId":"46184453-e63b-4f20-86c2-c557ed5d5df9",
     "assignmentPolicyId":"2264bf65-76ba-417b-a27d-54d291f0cbc8",
     "accessPackageId":"a914b616-e04e-476b-aa37-91038f0b165b"
  }
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

HTTP/1.1 201 Created
Content-type: application/json

{
  "id": "46184453-e63b-4f20-86c2-c557ed5d5df9",
  "requestType": "adminAdd",
  "requestState": "Submitted",
  "requestStatus": "Accepted"
}

Ejemplo 2: Quitar una asignación

Para quitar asignaciones, cree un nuevo objeto accessPackageAssignmentRequest con la siguiente configuración:

  • Valor de la propiedad requestType establecido en adminRemove.
  • En la propiedad assignment , incluya un objeto con el identificador del objeto accessPackageAssignment que se va a eliminar.

Solicitud

En el ejemplo siguiente se muestra cómo quitar una asignación.

POST https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/assignmentRequests
Content-type: application/json

{
    "requestType": "adminRemove",
    "assignment":{
     "id": "a6bb6942-3ae1-4259-9908-0133aaee9377"
    }
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad. Todas las propiedades se devuelven desde una llamada real.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#accessPackageAssignmentRequests/$entity",
    "id": "78eaee8c-e6cf-48c9-8f99-aae44c35e379",
    "requestType": "adminRemove",
    "requestState": "Submitted",
    "requestStatus": "Accepted"
}

Ejemplo 3: Solicitud de una asignación proporcionando respuestas a preguntas

En el ejemplo siguiente se muestra cómo un usuario puede solicitar una asignación de paquete de acceso por sí mismo respondiendo a las preguntas requeridas por la directiva durante el proceso de solicitud.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

POST https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/assignmentRequests
Content-type: application/json

{
    "@odata.type": "#microsoft.graph.accessPackageAssignmentRequest",
    "requestType": "userAdd",
    "answers": [
        {
            "@odata.type": "#microsoft.graph.accessPackageAnswerString",
            "displayValue": "This is the answer to a multiple choice question",
            "value": "MultipleChoiceAnswerValue",
            "answeredQuestion": {
                "@odata.type": "#microsoft.graph.accessPackageMultipleChoiceQuestion",
                "id": "8fe745e7-80b2-490d-bd22-4e708c77288c"
            }
        },
        {
            "@odata.type": "#microsoft.graph.accessPackageAnswerString",
            "value": "This is my answer to a text input question.",
            "displayValue": "This is my answer.",
            "answeredQuestion": {
                "@odata.type": "#microsoft.graph.accessPackageTextInputQuestion",
                "id": "7aaa18c9-8e4f-440f-bd5a-3a7ce312cbe6"
            }
        }
    ],
    "assignment": {
        "accessPackageId": "977c7ff4-ef8f-4910-9d31-49048ddf3120"
    }
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad. Todas las propiedades se devuelven desde una llamada real.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#accessPackageAssignmentRequests/$entity",
    "id": "7a6ab703-0780-4b37-8445-81f679b2d75c",
    "requestType": "userAdd",
    "state": "submitted",
    "status": "Accepted",
    "createdDateTime": null,
    "completedDateTime": null,
    "schedule": {
        "startDateTime": null,
        "recurrence": null,
        "expiration": {
            "endDateTime": null,
            "duration": null,
            "type": "notSpecified"
        }
    },
    "answers": [
        {
            "@odata.type": "#microsoft.graph.accessPackageAnswerString",
            "value": "MultipleChoiceAnswerValue",
            "answeredQuestion": {
                "@odata.type": "#microsoft.graph.accessPackageMultipleChoiceQuestion",
                "id": "8fe745e7-80b2-490d-bd22-4e708c77288c"   
            },
            "displayValue": "This is the answer to a multiple choice question"
        },
        {
            "@odata.type": "#microsoft.graph.accessPackageAnswerString",
            "value": "This is my answer to a text input question.",
            "answeredQuestion": {
                "@odata.type": "#microsoft.graph.accessPackageTextInputQuestion",
                "id": "7aaa18c9-8e4f-440f-bd5a-3a7ce312cbe6"
            },
            "displayValue": "This is my answer."
        }
    ]
}

Ejemplo 4: Solicitar un paquete y proporcionar una justificación

En el ejemplo siguiente se muestra cómo solicitar un paquete de acceso y proporcionar una justificación al aprobador.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

POST https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/assignmentRequests
Content-type: application/json

{
    "requestType": "UserAdd",
    "accessPackageAssignment": {
        "accessPackageId": "a914b616-e04e-476b-aa37-91038f0b165b"
    },
    "justification":"Need access to New Hire access package"
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad. Todas las propiedades se devuelven desde una llamada real.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#identityGovernance/entitlementManagement/assignmentRequests/$entity",
    "id": "9c1e258d-7723-43b1-ae21-e6eeeb324fe5",
    "requestType": "UserAdd",
    "requestState": "Submitted",
    "requestStatus": "Accepted",
    "createdDateTime": null,
    "completedDate": null,
    "justification": "Need access to New Hire access package",
    "isValidationOnly": false,
    "schedule": {
        "startDateTime": null,
        "recurrence": null,
        "expiration": {
            "endDateTime": null,
            "duration": null,
            "type": "notSpecified"
        }
    },
    "answers": [],
    "verifiedCredentialsData": [],
    "customExtensionHandlerInstances": [],
    "customExtensionCalloutInstances": []
}

Ejemplo 5: Solicitud de un paquete en nombre de un empleado directo

En el ejemplo siguiente se muestra cómo un administrador puede solicitar una asignación de paquete de acceso en nombre de su empleado directo.

Nota:

El solicitante (administrador) se extrae del token y el objeto de destino viene determinado por el id empleado directo que recibe acceso.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

POST https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/assignmentRequests
Content-type: application/json

{
   "assignment": {
       "accessPackageId": "5b98f958-0dea-4a5b-836e-109dccbd530c",
       "schedule": {
           "startDateTime": null,
           "stopDateTime": null
       },
       "assignmentPolicyId": "c5f7847f-83a8-4315-a754-d94a6f39b875",
       "target": {
           "displayName": "Idris Ibrahim",
           "email": "IdrisIbrahim@woodgrovebank.com",
           "objectId": "21aceaba-fe13-4e3b-aa8c-4c588d5e7387",
           "subjectType": "user"
       }
   },
   "justification": "Access for direct employee",
   "requestType": "UserAdd",
   "answers": []
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad. Todas las propiedades se devuelven desde una llamada real.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/entitlementManagement/assignmentRequests/$entity",
    "id": "445a3118-6bf2-4a19-94ad-5660295963fd",
    "requestType": "userAdd",
    "state": "submitted",
    "status": "Accepted",
    "createdDateTime": null,
    "completedDateTime": null,
    "schedule": {
        "startDateTime": null,
        "recurrence": null,
        "expiration": {
            "endDateTime": null,
            "duration": null,
            "type": "notSpecified"
        }
    },
    "answers": [],
    "customExtensionCalloutInstances": []
}

Ejemplo 6: Administración solicita una asignación directa para un usuario que aún no está en el directorio

Solicitud

En el ejemplo siguiente se muestra una solicitud para una asignación directa, en la que el administrador solicita la creación de una asignación para un usuario que no existe en el directorio. El valor de accessPackageId es el paquete de acceso deseado para ese usuario y el valor de assignmentPolicyId es una directiva de asignación directa en ese paquete de acceso.

POST https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/assignmentRequests
Content-type: application/json

{
  "requestType": "AdminAdd",
  "accessPackageAssignment":{
     "target": {
        "email": "user@contoso.com"
     },
     "assignmentPolicyId":"2264bf65-76ba-417b-a27d-54d291f0cbc8",
     "accessPackageId":"a914b616-e04e-476b-aa37-91038f0b165b"
  }
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#identityGovernance/entitlementManagement/assignmentRequests/$entity",
    "id": "cb32aef9-2976-496d-9804-eb432fd894a7",
    "requestType": "AdminAdd",
    "requestState": "Submitted",
    "requestStatus": "Accepted",
    "createdDateTime": null,
    "completedDate": null,
    "justification": null,
    "isValidationOnly": false,
    "schedule": {
        "startDateTime": null,
        "recurrence": null,
        "expiration": {
            "endDateTime": null,
            "duration": null,
            "type": "notSpecified"
        }
    },
    "answers": [],
    "verifiedCredentialsData": [],
    "customExtensionHandlerInstances": [],
    "customExtensionCalloutInstances": []
}

Ejemplo 7: Solicitud de una actualización a las respuestas de una asignación

En el ejemplo siguiente se muestra cómo un administrador puede solicitar actualizaciones a una asignación para editar sus respuestas a las preguntas que se respondieron durante la solicitud de la asignación.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

POST https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/assignmentRequests
Content-type: application/json

{
    "@odata.type": "#microsoft.graph.accessPackageAssignmentRequest",
    "id": "7a6ab703-0780-4b37-8445-81f679b2d75c",
    "requestType": "adminUpdate",
    "answers": [
        {
            "@odata.type": "#microsoft.graph.accessPackageAnswerString",
            "value": "UpdatedAnswerValue",
            "answeredQuestion": {
                "@odata.type": "#microsoft.graph.accessPackageMultipleChoiceQuestion",
                "id": "8fe745e7-80b2-490d-bd22-4e708c77288c"
            }
        },
        {
            "@odata.type": "#microsoft.graph.accessPackageAnswerString",
            "value": "My updated answer.",
            "displayValue": "This is my updated answer to the question.",
            "answeredQuestion": {
                "@odata.type": "#microsoft.graph.accessPackageTextInputQuestion",
                "id": "7aaa18c9-8e4f-440f-bd5a-3a7ce312cbe6"
            }
        }
    ],
    "assignment": {
        "id": "44c741c1-2cf4-40db-83b6-e0112f8e5a83"
    }
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad. Todas las propiedades se devuelven desde una llamada real.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#accessPackageAssignmentRequests/$entity",
    "id": "0c471116-e439-40a6-8441-fe739dd48dab",
    "requestType": "adminUpdate",
    "state": "submitted",
    "status": "Accepted",
    "createdDateTime": null,
    "completedDateTime": null,
    "schedule": {
        "startDateTime": null,
        "recurrence": null,
        "expiration": {
            "endDateTime": null,
            "duration": null,
            "type": "notSpecified"
        }
    },
    "answers": [
        {
            "@odata.type": "#microsoft.graph.accessPackageAnswerString",
            "value": "UpdatedAnswerValue",
            "displayValue": "This is the answer to a multiple choice question",
            "answeredQuestion": {
                "@odata.type": "#microsoft.graph.accessPackageMultipleChoiceQuestion",
                "id": "8fe745e7-80b2-490d-bd22-4e708c77288c"   
            }         
        },
        {
            "@odata.type": "#microsoft.graph.accessPackageAnswerString",
            "value": "My updated answer.",
            "displayValue": "This is my updated answer to the question.",
            "answeredQuestion": {
                "@odata.type": "#microsoft.graph.accessPackageTextInputQuestion",
                "id": "7aaa18c9-8e4f-440f-bd5a-3a7ce312cbe6"
            }
        }
    ]
}

Ejemplo 8: Actualización de la fecha de expiración de una asignación de paquete de acceso

En el ejemplo siguiente se muestra cómo actualizar la fecha de expiración de una asignación de paquete de acceso.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

POST https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/assignmentRequests
Content-type: application/json

{
    "@odata.type": "#microsoft.graph.accessPackageAssignmentRequest",
    "requestType": "adminUpdate",
    "schedule": {
        "startDateTime": "2023-05-23T20:04:02.39Z",
        "recurrence": null,
        "expiration": {
            "endDateTime": "2024-07-01T00:00:00.00Z",
            "duration": null,
            "type": "afterDateTime"
        }
    },
    "assignment": {
        "id": "329f8dac-8062-4c1b-a9b8-39b7132f9bff"
    }
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad. Todas las propiedades se devuelven desde una llamada real.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#identityGovernance/entitlementManagement/assignmentRequests/$entity",
    "id": "5b682fbb-d6e5-4118-a471-46dfc553e9cc",
    "requestType": "adminUpdate",
    "state": "submitted",
    "status": "Accepted",
    "createdDateTime": null,
    "completedDateTime": null,
    "schedule": {
        "startDateTime": "2024-06-07T15:53:35.333Z",
        "recurrence": null,
        "expiration": {
            "endDateTime": "2024-07-01T00:00:00Z",
            "duration": null,
            "type": "afterDateTime"
        }
    },
    "answers": [],
    "customExtensionCalloutInstances": []
}