Créer accessPackageAssignmentRequest

Espace de noms: microsoft.graph

Importante

Les API sous la version /beta dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .

Dans Microsoft Entra Entitlement Management, créez un objet accessPackageAssignmentRequest. Cette opération permet d’affecter un utilisateur à un package d’accès, de mettre à jour l’attribution ou de supprimer une attribution de package d’accès.

Cette API est disponible dans les déploiements cloud nationaux suivants.

Service global Gouvernement américain L4 Gouvernement américain L5 (DOD) Chine exploitée par 21Vianet

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme étant les moins privilégiées pour cette API. Utilisez une ou plusieurs autorisations privilégiées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, voir Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez la référence des autorisations.

Type d’autorisation Autorisations les moins privilégiées Autorisations à privilèges plus élevés
Déléguée (compte professionnel ou scolaire) EntitlementMgmt-SubjectAccess.ReadWrite EntitlementManagement.ReadWrite.All
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application EntitlementManagement.ReadWrite.All Non disponible.

Conseil

Le rôle et l’autorisation requis pour l’accès délégué à l’aide de comptes professionnels ou scolaires dépendent de la requestType demande soumise.

Demandes de l’utilisateur finaluserAdd, userExtend, userUpdateuserRemove, , et approverRemove:

  • L’utilisateur connecté n’a pas besoin d’un rôle d’administrateur.
  • L’autorisation la moins privilégiée est EntitlementMgmt-SubjectAccess.ReadWrite.
  • La détention de l’autorisation n’est pas suffisante en soi : la possibilité pour un utilisateur final de soumettre une demande est également régie par la stratégie accessPackageAssignmentPolicy correspondante, qui contrôle qui peut être affecté à un package d’accès et qui peut en faire la demande (requestorSettings).

Demandes de l’administrateuradminAdd, adminUpdate, et adminRemove:

  • L’autorisation la moins privilégiée est EntitlementManagement.ReadWrite.All.
  • Un rôle d’administrateur pris en charge doit être attribué à l’utilisateur connecté. Rôles pris en charge, du moins privilégié au plus privilégié :

Dans les scénarios d’application uniquement, l’application appelante peut se voir attribuer l’un des rôles pris en charge précédents au lieu de l’autorisation d’application EntitlementManagement.ReadWrite.All . Le rôle de gestionnaire d’attribution des attributions de package d’accès est moins privilégié que l’autorisation de l’application EntitlementManagement.ReadWrite.All .

Pour plus d’informations, voir Délégation et rôles dans la gestion des droits d’utilisation et comment déléguer la gouvernance des accès aux gestionnaires de packages d’accès dans la gestion des droits d’utilisation.

Requête HTTP

POST /identityGovernance/entitlementManagement/assignmentRequests

En-têtes de demande

Nom Description
Autorisation Porteur {token}. Obligatoire.
Content-Type application/json. Obligatoire.

Corps de la demande

Dans le corps de la demande, fournissez une représentation JSON de l’objet accessPackageAssignmentRequest .

Pour qu’un administrateur demande à créer une affectation pour un utilisateur, la valeur de la propriété requestType est adminAdd, et la propriété assignment contient le targetId avec l’ID de l’utilisateur affecté, la propriété assignmentPolicyId identifiant accessPackageAssignmentPolicy et la propriété accessPackageId identifiant accessPackage.

Pour qu’un administrateur demande à mettre à jour une affectation (par exemple, pour étendre l’affectation ou mettre à jour les réponses aux questions), la valeur de la propriété requestType est adminUpdate, et la propriété assignment contient la propriété id identifiant accessPackageAssignment en cours de mise à jour.

Pour qu’un administrateur demande la suppression d’une affectation, la valeur de la propriété requestType est adminRemove, et la propriété assignment contient la propriété id identifiant accessPackageAssignment en cours de suppression.

Pour qu’un utilisateur non-administrateur demande à créer sa propre affectation pour une première affectation ou un renouvellement d’affectation, la valeur de la propriété requestType est userAdd. La propriété d’affectation contient un objet avec le avec le targetIdid de l’utilisateur. La propriété assignmentPolicyId identifie accessPackageAssignmentPolicy. La propriété accessPackageId identifie accessPackage. L’utilisateur effectuant la demande doit déjà exister dans l’annuaire.

Pour qu’un utilisateur non-administrateur demande à mettre à jour ses propres affectations, la valeur de la propriété requestType est userUpdate. La propriété d’affectation contient le targetId avec les id utilisateurs. La propriété assignmentPolicyId identifie accessPackageAssignmentPolicy. La propriété accessPackageId identifie accessPackage. L’utilisateur effectuant la demande doit déjà exister dans l’annuaire.

Réponse

En cas de réussite, cette méthode renvoie un code de réponse de la série 200 et un nouvel objet accessPackageAssignmentRequest dans le corps de la réponse.

Si le type de demande est adminAdd destiné à cette demande, un accessPackageAssignment et, si nécessaire, un accessPackageSubject sont également créés. Vous pouvez localiser ces objets à l’aide des paramètres de requête lors de la liste des accessPackageAssignments.

Exemples

Exemple 1 : L’Administration demande une affectation directe pour un utilisateur déjà présent dans l’annuaire

Demande

L’exemple suivant illustre une demande d’affectation directe, dans laquelle l’administrateur demande la création d’une affectation pour un utilisateur. Étant donné que le accessPackageSubject n’existe peut-être pas encore, la valeur de targetID est l’ID d’objet de l’utilisateur affecté, la valeur de accessPackageId est le package d’accès souhaité pour cet utilisateur et la valeur de assignmentPolicyId est une stratégie d’attribution directe dans ce package d’accès.

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

Réponse

L’exemple suivant illustre la réponse.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

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

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

Exemple 2 : Supprimer un devoir

Pour supprimer des attributions, créez un objet accessPackageAssignmentRequest avec les paramètres suivants :

  • Valeur de la propriété requestType définie sur adminRemove.
  • Dans la propriété assignment , incluez un objet avec l’identificateur de l’objet accessPackageAssignment à supprimer.

Demande

L’exemple suivant montre comment supprimer une affectation.

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

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

Réponse

L’exemple suivant illustre la réponse.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité. Toutes les propriétés sont retournées à partir d’un appel réel.

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

Exemple 3 : demander un devoir en fournissant des réponses à des questions

L’exemple suivant montre comment un utilisateur peut demander une attribution de package d’accès pour lui-même en répondant à des questions requises par la stratégie pendant le processus de demande.

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité. Toutes les propriétés sont retournées à partir d’un appel réel.

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

Exemple 4 : demander un package et fournir une justification

L’exemple suivant montre comment demander un package d’accès et fournir une justification à l’approbateur.

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité. Toutes les propriétés sont retournées à partir d’un appel réel.

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

Exemple 5 : Demander un package au nom d’un employé direct

L’exemple suivant montre comment un responsable peut demander une attribution de package d’accès au nom de son employé direct.

Remarque

Le demandeur (responsable) est extrait du jeton et l’objet cible est déterminé par l’employé direct qui reçoit l’accès id .

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité. Toutes les propriétés sont retournées à partir d’un appel réel.

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

Exemple 6 : Administration demande une affectation directe pour un utilisateur qui n’est pas encore dans l’annuaire

Demande

L’exemple suivant montre une demande d’affectation directe, dans laquelle l’administrateur demande la création d’une affectation pour un utilisateur qui n’existe pas dans l’annuaire. La valeur d’accessPackageId est le package d’accès souhaité pour cet utilisateur, et la valeur de assignmentPolicyId est une stratégie d’attribution directe dans ce package d’accès.

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

Réponse

L’exemple suivant illustre la réponse.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

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

Exemple 7 : demander une mise à jour des réponses d’un devoir

L’exemple suivant montre comment un administrateur peut demander une mise à jour d’un devoir pour modifier ses réponses aux questions auxquelles il a répondu lors de la demande de devoir.

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité. Toutes les propriétés sont retournées à partir d’un appel réel.

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

Exemple 8 : mise à jour de la date d’expiration d’une attribution de package d’accès

L’exemple suivant montre comment mettre à jour la date d’expiration d’une attribution de package d’accès.

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité. Toutes les propriétés sont retournées à partir d’un appel réel.

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