Partilhar via


Criar accessPackageAssignmentRequest

Namespace: microsoft.graph

Importante

As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor Versão.

No Microsoft Entra Gestão de Direitos, crie um novo objeto accessPackageAssignmentRequest. Esta operação é utilizada para atribuir um utilizador a um pacote de acesso, atualizar a atribuição ou remover uma atribuição de pacote de acesso.

Esta API está disponível nas seguintes implementações de cloud nacionais.

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

Permissões

Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.

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

Dica

Em cenários delegados com contas escolares ou profissionais, o utilizador com sessão iniciada também tem de ter uma função de administrador com permissões de função suportadas através de uma das seguintes opções:

  • Um utilizador especificado na specificAllowedTargets propriedade das políticas do pacote de acesso. Esta é a opção com menos privilégios.
  • Mais funções privilegiadas no sistema de Gestão de Direitos onde são suportadas as funções com menos privilégios para esta operação:
    • Gestor de atribuições de pacotes de acesso
    • Gestor de pacotes de acesso
    • Proprietário do catálogo
  • Mais funções de Microsoft Entra privilegiadas, em que as seguintes funções com menos privilégios são suportadas para esta operação:
    • Administrador de Governação de Identidades

Em cenários apenas de aplicações, a aplicação de chamadas pode ser atribuída a uma das funções suportadas anteriores em vez da permissão da aplicação EntitlementManagement.ReadWrite.All . Um utilizador especificado na specificAllowedTargets propriedade das políticas do pacote de acesso tem menos privilégios do que a permissão da aplicação EntitlementManagement.ReadWrite.All .

Para obter mais informações, veja Delegação e funções na gestão de direitos e como delegar a governação de acesso aos gestores de pacotes de acesso na gestão de direitos.

Solicitação HTTP

POST /identityGovernance/entitlementManagement/assignmentRequests

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório.
Content-Type application/json. Obrigatório.

Corpo da solicitação

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

Para um administrador pedir para criar uma atribuição para um utilizador, o valor da propriedade requestType é e a propriedade de atribuição contém o targetId do utilizador que está adminAdda ser atribuído, a propriedade assignmentPolicyId que identifica o accessPackageAssignmentPolicy e a propriedade accessPackageId que identifica o accessPackage.

Para um administrador pedir para atualizar uma atribuição (por exemplo, para expandir a atribuição ou atualizar respostas a perguntas), o valor da propriedade requestType é e a propriedade de atribuição contém a propriedade id que identifica o accessPackageAssignment que está adminUpdatea ser atualizado.

Para um administrador pedir para remover uma atribuição, o valor da propriedade requestType é e a propriedade de atribuição contém a propriedade ID que identifica o accessPackageAssignment que está adminRemovea ser removido.

Para um utilizador não administrador pedir para criar a sua própria atribuição para uma primeira atribuição ou renovação, o valor da propriedade requestType é userAdd. A propriedade de atribuição contém um objeto com o targetId com o id do utilizador. A propriedade assignmentPolicyId identifica o accessPackageAssignmentPolicy. A propriedade accessPackageId identifica o accessPackage. O utilizador que faz o pedido já tem de existir no diretório.

Para um utilizador não administrador pedir para atualizar as suas próprias atribuições, o valor da propriedade requestType é userUpdate. A propriedade de atribuição contém o targetId com o id dos utilizadores. A propriedade assignmentPolicyId identifica o accessPackageAssignmentPolicy. A propriedade accessPackageId identifica o accessPackage. O utilizador que faz o pedido já tem de existir no diretório.

Resposta

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

Se o tipo de pedido for adminAdd para este pedido, é também criado um accessPackageAssignment e, se necessário, um accessPackageSubject . Pode localizar esses objetos com os parâmetros de consulta ao listar accessPackageAssignments.

Exemplos

Exemplo 1: Administração pede uma atribuição direta para um utilizador que já se encontra no diretório

Solicitação

O exemplo seguinte mostra um pedido de atribuição direta, no qual o administrador pede a criação de uma atribuição para um utilizador. Como o accessPackageSubject pode ainda não existir, o valor do targetID é o ID de objeto do utilizador que está a ser atribuído, o valor do accessPackageId é o pacote de acesso pretendido para esse utilizador e o valor de assignmentPolicyId é uma política de atribuição direta nesse pacote de acesso.

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"
  }
}

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 tarefa

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

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

Solicitação

O exemplo seguinte mostra como remover uma tarefa.

POST https://graph.microsoft.com/beta/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 devolvidas a partir de uma chamada 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"
}

Exemplo 3: Pedir uma atribuição ao fornecer respostas a perguntas

O exemplo seguinte mostra como um utilizador pode pedir uma atribuição de pacote de acesso para si mesmo, respondendo a perguntas exigidas pela política durante o processo de pedido.

Solicitação

O exemplo a seguir mostra uma solicitação.

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"
    }
}

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 devolvidas a partir de uma chamada 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."
        }
    ]
}

Exemplo 4: Pedir um pacote e fornecer uma justificação

O exemplo seguinte mostra como pedir um pacote de acesso e fornecer justificação ao aprovador.

Solicitação

O exemplo a seguir mostra uma solicitação.

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"
}

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 devolvidas a partir de uma chamada 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": []
}

Exemplo 5: Pedir um pacote em nome de um funcionário direto

O exemplo seguinte mostra como um gestor pode pedir uma atribuição de pacote de acesso em nome do funcionário direto.

Observação

O requerente (gestor) é extraído do token e o objeto de destino é determinado pelo id funcionário direto que está a receber acesso.

Solicitação

O exemplo a seguir mostra uma solicitação.

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": []
}

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 devolvidas a partir 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": []
}

Exemplo 6: Administração pede uma atribuição direta para um utilizador que ainda não está no diretório

Solicitação

O exemplo seguinte mostra um pedido de atribuição direta, no qual o administrador é solicitado a criação de uma atribuição para um utilizador que não existe no diretório. O valor do accessPackageId é o pacote de acesso pretendido para esse utilizador e o valor de assignmentPolicyId é uma política de atribuição direta nesse pacote de acesso.

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"
  }
}

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/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": []
}

Exemplo 7: Pedir uma atualização para respostas para uma atribuição

O exemplo seguinte mostra como um administrador pode pedir atualizações a uma atribuição para editar as respetivas respostas a perguntas que foram respondidas durante o pedido de atribuição.

Solicitação

O exemplo a seguir mostra uma solicitação.

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"
    }
}

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 devolvidas a partir de uma chamada 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"
            }
        }
    ]
}

Exemplo 8: Atualizar a data de expiração de uma atribuição de pacote de acesso

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

Solicitação

O exemplo a seguir mostra uma solicitação.

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"
    }
}

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 devolvidas a partir de uma chamada 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": []
}