创建 accessPackageAssignmentRequest
命名空间:microsoft.graph
在Azure AD管理中,创建新的 accessPackageAssignmentRequest 对象。 此操作用于将用户分配给访问包或删除访问包分配。
Permissions
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
| 权限类型 |
权限(从最低特权到最高特权) |
| 委派(工作或学校帐户) |
EntitlementManagement.ReadWrite.All |
| 委派(个人 Microsoft 帐户) |
不支持。 |
| Application |
EntitlementManagement.ReadWrite.All |
HTTP 请求
POST /identityGovernance/entitlementManagement/assignmentRequests
| 名称 |
说明 |
| Authorization |
持有者 {token}。必需。 |
| Content-Type |
application/json. Required. |
请求正文
在请求正文中,提供 accessPackageAssignmentRequest 对象的 JSON 表示形式。
对于要请求为用户创建工作分配的管理员,requestType AdminAdd属性的值为 ,targetId分配属性包含要分配的用户的 、标识 accessPackageAssignmentPolicy 的 assignmentPolicyId 属性和标识 accessPackage 的 accessPackageId 属性。
对于请求删除工作分配的管理员,requestType AdminRemove属性的值为 ,分配属性包含标识要删除的 accessPackageAssignment 的 id 属性。
对于非管理员用户请求为第一个分配或续订分配创建自己的工作分配, requestType 属性的值为 UserAdd。 赋值 属性包含具有 的用户 targetId id 的对象。 assignmentPolicyId 属性标识 accessPackageAssignmentPolicy。 accessPackageId 属性标识 accessPackage。 提出请求的用户必须已存在于 目录中。
对于非管理员用户请求扩展其自己的分配, requestType 属性的值为 UserExtend。 assignment 属性包含与targetId``id用户的 的 。 assignmentPolicyId 属性标识 accessPackageAssignmentPolicy。 accessPackageId 属性标识 accessPackage。 提出请求的用户必须已存在于 目录中。
响应
如果成功,此方法在响应正文中返回 200 系列响应代码和新 accessPackageAssignmentRequest 对象。
如果这是请求, AdminAdd 则随后会 创建 accessPackageAssignment ,如果需要,还会创建 accessPackageSubject 。 在列出 accessPackageAssignments 时,可以使用查询参数查找这些参数。
示例
示例 1:管理员为目录中已有的用户请求直接分配
请求
下面是直接分配请求的一个示例,其中管理员请求为用户创建工作分配。 由于 accessPackageSubject 可能尚不存在, targetID 的值是所分配用户的对象 ID, accessPackageId 的值是该用户所需的访问包, assignmentPolicyId 的值是该访问包中的直接分配策略。
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"
}
}
响应
下面展示了示例响应。
注意: 为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 201 Created
Content-type: application/json
{
"id": "7e382d02-4454-436b-b700-59c7dd77f466",
"requestType": "AdminAdd",
"requestState": "Submitted",
"requestStatus": "Accepted"
}
示例 2:删除工作分配
若要删除分配,请创建具有以下设置的新 accessPackageAssignmentRequest 对象:
- requestType 属性的值设置为
AdminRemove。
- 在 assignment 属性中,包括具有要删除的 accessPackageAssignment 对象的标识符的对象。
请求
以下示例演示如何删除工作分配。
POST https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/assignmentRequests
Content-type: application/json
{
"requestType": "AdminRemove",
"assignment":{
"id": "a6bb6942-3ae1-4259-9908-0133aaee9377"
}
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var accessPackageAssignmentRequest = new AccessPackageAssignmentRequestObject
{
RequestType = AccessPackageRequestType.AdminRemove,
Assignment = new AccessPackageAssignment
{
Id = "a6bb6942-3ae1-4259-9908-0133aaee9377"
}
};
await graphClient.IdentityGovernance.EntitlementManagement.AssignmentRequests
.Request()
.AddAsync(accessPackageAssignmentRequest);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
const options = {
authProvider,
};
const client = Client.init(options);
const accessPackageAssignmentRequest = {
requestType: 'userAdd',
assignment: {
accessPackageId: 'd7be3253-b9c6-4fab-adef-30d30de8da2b'
}
};
await client.api('/identityGovernance/entitlementManagement/assignmentRequests')
.post(accessPackageAssignmentRequest);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/v1.0/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/identityGovernance/entitlementManagement/assignmentRequests"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphAccessPackageAssignmentRequest *accessPackageAssignmentRequest = [[MSGraphAccessPackageAssignmentRequest alloc] init];
[accessPackageAssignmentRequest setRequestType: [MSGraphAccessPackageRequestType userAdd]];
MSGraphAccessPackageAssignment *assignment = [[MSGraphAccessPackageAssignment alloc] init];
[assignment setAccessPackageId:@"d7be3253-b9c6-4fab-adef-30d30de8da2b"];
[accessPackageAssignmentRequest setAssignment:assignment];
NSError *error;
NSData *accessPackageAssignmentRequestData = [accessPackageAssignmentRequest getSerializedDataWithError:&error];
[urlRequest setHTTPBody:accessPackageAssignmentRequestData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
AccessPackageAssignmentRequest accessPackageAssignmentRequest = new AccessPackageAssignmentRequest();
accessPackageAssignmentRequest.requestType = AccessPackageRequestType.ADMIN_REMOVE;
AccessPackageAssignment assignment = new AccessPackageAssignment();
assignment.id = "a6bb6942-3ae1-4259-9908-0133aaee9377";
accessPackageAssignmentRequest.assignment = assignment;
graphClient.identityGovernance().entitlementManagement().assignmentRequests()
.buildRequest()
.post(accessPackageAssignmentRequest);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewAccessPackageAssignmentRequest()
requestType := "userAdd"
requestBody.SetRequestType(&requestType)
assignment := msgraphsdk.NewAccessPackageAssignment()
requestBody.SetAssignment(assignment)
assignment.SetAdditionalData(map[string]interface{}{
"accessPackageId": "d7be3253-b9c6-4fab-adef-30d30de8da2b",
}
result, err := graphClient.IdentityGovernance().EntitlementManagement().AssignmentRequests().Post(requestBody)
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
Import-Module Microsoft.Graph.Identity.Governance
$params = @{
RequestType = "userAdd"
Assignment = @{
AccessPackageId = "d7be3253-b9c6-4fab-adef-30d30de8da2b"
}
}
New-MgEntitlementManagementAssignmentRequest -BodyParameter $params
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
响应
下面展示了示例响应。
注意: 为了提高可读性,可能缩短了此处显示的响应对象。所有属性都将通过实际调用返回。
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"
}