Create accessPackageAssignmentRequest

Namespace: microsoft.graph

No Gerenciamento de Direitos do Microsoft Entra, crie um novo objeto accessPackageAssignmentRequest. Essa operação é usada para atribuir um usuário a um pacote de acesso, atualizar a atribuição ou remover uma atribuição de pacote de acesso.

Essa API está disponível nas seguintes implantações de nuvem nacional.

Serviço global Governo dos EUA L4 US Government L5 (DOD) China operada pela 21Vianet

Permissões

Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.

Tipo de permissão Permissões menos privilegiadas Permissões com privilégios mais elevados
Delegado (conta corporativa ou de estudante) EntitlementMgmt-SubjectAccess.ReadWrite EntitlementManagement.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application EntitlementManagement.ReadWrite.All Indisponível.

Dica

A função e a requestType permissão necessárias para o acesso delegado usando contas corporativas ou de estudante dependem da solicitação que está sendo enviada.

Solicitações do usuário finaluserAdd, userUpdate, userRemovee approverRemove:

  • O usuário conectado não precisa de uma função de administrador.
  • A permissão menos privilegiada é EntitlementMgmt-SubjectAccess.ReadWrite.
  • Manter a permissão não é suficiente por si só — se um usuário final pode enviar uma solicitação também é regido pelo accessPackageAssignmentPolicy correspondente, que controla quem pode ser atribuído a um pacote de acesso e quem pode solicitá-lo (allowedTargetScope, specificAllowedTargetse requestorSettings).

Solicitações do administradoradminAdd, adminUpdatee adminRemove:

  • A permissão menos privilegiada é EntitlementManagement.ReadWrite.All.
  • O usuário conectado deve receber uma função de administrador compatível. Funções com suporte, do menos para o mais privilegiado:

Em cenários somente de aplicativo, o aplicativo de chamada pode receber uma das funções com suporte anteriores em vez da permissão do EntitlementManagement.ReadWrite.All aplicativo. A função do gerenciador de atribuição de pacotes de acesso é menos privilegiada do que a permissão do EntitlementManagement.ReadWrite.All aplicativo.

Para obter mais informações, consulte Delegação e funções no gerenciamento de direitos e como delegar governança de acesso para gerenciadores de pacotes de acesso no gerenciamento de direitos.

Solicitação HTTP

POST /identityGovernance/entitlementManagement/assignmentRequests

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
Content-Type application/json. Obrigatório.

Corpo da solicitação

No corpo da solicitação, forneça uma representação JSON do objeto accessPackageAssignmentRequest .

Para que um administrador solicite a criação de uma atribuição para um usuário, o valor da propriedade requestType é adminAdd, e a propriedade de atribuição contém targetId com a ID do usuário que está sendo atribuído, a propriedade assignmentPolicyId identificando o accessPackageAssignmentPolicy e a propriedade accessPackageId identificando o accessPackage.

Para que um administrador solicite a atualização de uma tarefa (por exemplo, para estender a tarefa ou atualizar as respostas às perguntas), o valor da propriedade requestType é adminUpdate, e a propriedade de atribuição contém a propriedade id que identifica o accessPackageAssignment que está sendo atualizado.

Para que um administrador solicite a remoção de uma atribuição, o valor da propriedade requestType é adminRemove, e a propriedade de atribuição contém a propriedade id que identifica o accessPackageAssignment que está sendo removido.

Para um usuário não administrador solicitar a criação de sua própria atribuição para uma primeira tarefa ou para renovar uma atribuição, o valor da propriedade requestType é userAdd. A propriedade assignment contém um objeto com o targetId com o id do usuário. A propriedade assignmentPolicyId identifica o accessPackageAssignmentPolicy. A propriedade accessPackageId identifica o accessPackage. O usuário que faz a solicitação já deve existir no diretório.

Para que um usuário não administrador solicite a atualização de sua própria atribuição, o valor da propriedade requestType é userUpdate. A propriedade de atribuição contém a propriedade ID que identifica o accessPackageAssignment que está sendo atualizado. A propriedade schedule contém o agendamento atualizado.

Resposta

Se for bem-sucedido, esse método retornará um código de resposta da série 200 e um novo objeto accessPackageAssignmentRequest no corpo da resposta.

Se esta for uma adminAdd solicitação ou userAdd , após qualquer verificação de aprovação, um accessPackageAssignment e, se necessário, um accessPackageSubject também serão criados. Você pode localizá-los usando os parâmetros de consulta ao listar accessPackageAssignments.

Exemplos

Exemplo 1: o Administração solicita uma atribuição direta para um usuário que já está no diretório

Solicitação

O exemplo a seguir mostra uma solicitação de atribuição direta, na qual o administrador solicita a criação de uma atribuição para um usuário. Como o accessPackageSubject pode ainda não existir, o valor de targetID é a ID de objeto do usuário que está sendo atribuído, o valor de accessPackageId é o pacote de acesso desejado para esse usuário e o valor de assignmentPolicyId é uma política de atribuição direta nesse pacote de acesso.

POST https://graph.microsoft.com/v1.0/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"
  }
}

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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

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

Exemplo 2: Remover uma atribuição

Para remover atribuições, crie um novo objeto accessPackageAssignmentRequest com as seguintes configurações:

  • O valor da propriedade requestType definida como adminRemove.
  • Na propriedade de atribuição , inclua um objeto com o identificador do objeto accessPackageAssignment a ser excluído.

Solicitação

O exemplo a seguir mostra como remover uma atribuição.

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

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

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade. Todas as propriedades são retornadas de uma chamada real.

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

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

Exemplo 3: Solicite uma tarefa fornecendo respostas às perguntas

O exemplo a seguir mostra como um usuário pode solicitar uma atribuição de pacote de acesso para si mesmo respondendo às perguntas exigidas pela política durante o processo de solicitação.

Solicitação

O exemplo a seguir mostra uma solicitação.

POST https://graph.microsoft.com/v1.0/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"
    }
}

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade. Todas as propriedades são retornadas de uma chamada real.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$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."
        }
    ]
}

Exemplo 4: Solicitar um pacote e fornecer uma justificativa

O exemplo a seguir mostra como solicitar um pacote de acesso e fornecer uma justificativa ao aprovador.

Solicitação

O exemplo a seguir mostra uma solicitação.

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

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

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade. Todas as propriedades são retornadas de uma chamada real.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$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": []
}

Exemplo 5: o Administração solicita uma atribuição direta para um usuário que ainda não está no diretório

Solicitação

O exemplo a seguir mostra uma solicitação de atribuição direta, na qual o administrador solicita a criação de uma atribuição para um usuário que não existe no diretório. O valor de accessPackageId é o pacote de acesso desejado para esse usuário, e o valor de assignmentPolicyId é uma política de atribuição direta nesse pacote de acesso.

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

{
  "requestType": "AdminAdd",
  "assignment":{
     "target": {
        "email": "user@contoso.com"
     },
     "assignmentPolicy":{
        "id": "11114b50-0a08-4f96-83e9-1d714aa2cd79"
     },
     "accessPackage": {
        "id": "11115C72-0612-4C43-A044-FC0A4E71A4C5"
     }
  }
}

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$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": []
}

Exemplo 6: Solicitar uma atualização das respostas de uma tarefa

O exemplo a seguir mostra como um administrador pode solicitar atualizações para uma tarefa a fim de editar suas respostas às perguntas que foram respondidas durante a solicitação da tarefa.

Solicitação

O exemplo a seguir mostra uma solicitação.

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

{
    "@odata.type": "#microsoft.graph.accessPackageAssignmentRequest",
    "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"
    }
}

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade. Todas as propriedades são retornadas de uma chamada real.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$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"
            }
        }
    ]
}

Exemplo 7: Atualizar a data de validade de uma atribuição de pacote de acesso

O exemplo a seguir mostra como atualizar a data de validade de uma atribuição de pacote de acesso.

Solicitação

O exemplo a seguir mostra uma solicitação.

POST https://graph.microsoft.com/v1.0/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"
    }
}

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade. Todas as propriedades são retornadas de uma chamada real.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$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": []
}

Exemplo 8: Atualizar as respostas e a data de validade para uma atribuição de pacote de acesso

O exemplo a seguir mostra como um usuário pode atualizar suas respostas e a data de validade de sua atribuição de pacote de acesso.

Solicitação

O exemplo a seguir mostra uma solicitação.

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

{
    "requestType": "userUpdate",
    "answers": [
        {
            "@odata.type": "#microsoft.graph.accessPackageAnswerString",
            "value": "My updated answer.",
            "answeredQuestion": {
                "@odata.type": "#microsoft.graph.accessPackageTextInputQuestion",
                "id": "0d31cc60-968e-4f92-955b-443fed03d6f6"
            }
        }

    ],
    "schedule": {
        "startDateTime": "2024-09-18T20:49:16.17Z",
        "recurrence": null,
        "expiration": {
            "endDateTime": "2024-10-18T20:49:15.17Z",
            "duration": null,
            "type": "afterDateTime"
        }
    },
    "assignment": {
        "id": "329f8dac-8062-4c1b-a9b8-39b7132f9bff"
    }
}

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade. Todas as propriedades são retornadas de uma chamada real.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/entitlementManagement/assignmentRequests/$entity",
    "id": "e0f8458c-7681-42ad-a0b5-0c9587c4dad8",
    "requestType": "userUpdate",
    "state": "submitted",
    "status": "Accepted"
}

Exemplo 9: Solicitar um pacote em nome de um funcionário direto

O exemplo a seguir mostra como um gerente pode solicitar uma atribuição de pacote de acesso em nome de seu funcionário direto.

Observação

O solicitante (gerente) é extraído do token e o objeto de destino é determinado pelo id funcionário direto que está recebendo acesso.

Solicitação

O exemplo a seguir mostra uma solicitação.

POST https://graph.microsoft.com/v1.0/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": []
}

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade. Todas as propriedades são retornadas de uma chamada 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": []
}