创建 temporaryAccessPassAuthenticationMethod
命名空间:microsoft.graph
重要
Microsoft Graph版本下的 /beta API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
在用户上创建新的 temporaryAccessPassAuthenticationMethod 对象。 用户只能有一个临时访问通行证。 可在临时访问密码的开始时间和结束时间之间使用密码。 如果用户需要新的临时访问通行证:
- 虽然当前临时访问通行证有效 , 但管理员需要删除现有的临时访问通行证并在用户上创建新通行证。 删除有效的临时访问通行证将撤销用户的会话。
- 临时访问通行证过期后 - 新的临时访问传递会覆盖当前的临时访问通行证,并且不会撤消用户的会话。
权限
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
| 权限类型 |
权限(从最低特权到最高特权) |
| 委派(工作或学校帐户) |
UserAuthenticationMethod.ReadWrite.All |
| 委派(个人 Microsoft 帐户) |
不支持。 |
| 应用 |
UserAuthenticationMethod.ReadWrite.All |
对于管理员对另一用户执行操作的委派方案,管理员需要以下 Azure AD 角色之一:
HTTP 请求
POST /users/{id | userPrincipalName}/authentication/temporaryAccessPassMethods
| 名称 |
说明 |
| Authorization |
Bearer {token}。必需。 |
| Content-Type |
application/json. Required. |
请求正文
在请求正文中,提供 temporaryAccessPassAuthenticationMethod 对象的 JSON 表示形式。
下表描述了创建 temporaryAccessPassAuthenticationMethod 时可以使用的可选属性。
| 属性 |
类型 |
说明 |
必需 |
| startDateTime |
DateTimeOffset |
如果未设置临时访问密码,则在创建时可以使用 temporaryAccessPass 的日期和时间。 |
否 |
| lifetimeInMinutes |
Int32 |
临时AccessPass 的生存期(以分钟为单位),从创建时间开始,或者在 startDateTime(如果设置)。 最小 10,最大 43200 (等效于 30 天) 。 |
否 |
| isUsableOnce |
布尔值 |
确定传递是否限制为一次性使用。 如果为 True , 则可以使用一次,如果为 False, 则可在临时AccessPass生命时间内多次使用该通行证。 多用临时访问传递 (isUsableOnce = false) ,只有在临时访问传递身份验证方法策略允许的情况下,才能创建并用于登录。 |
否 |
响应
如果成功,此方法在响应正文中返回 201 Created 响应代码和 temporaryAccessPassAuthenticationMethod 对象。
示例
请求
POST https://graph.microsoft.com/beta/users/kim@contoso.com/authentication/temporaryAccessPassMethods
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.temporaryAccessPassAuthenticationMethod",
"startDateTime": "2021-01-26T00:00:00.000Z",
"lifetimeInMinutes": 60,
"isUsableOnce": false
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var temporaryAccessPassAuthenticationMethod = new TemporaryAccessPassAuthenticationMethod
{
StartDateTime = DateTimeOffset.Parse("2022-06-05T00:00:00Z"),
LifetimeInMinutes = 60,
IsUsableOnce = false
};
await graphClient.Users["{user-id}"].Authentication.TemporaryAccessPassMethods
.Request()
.AddAsync(temporaryAccessPassAuthenticationMethod);
const options = {
authProvider,
};
const client = Client.init(options);
const temporaryAccessPassAuthenticationMethod = {
startDateTime: '2022-06-05T00:00:00.000Z',
lifetimeInMinutes: 60,
isUsableOnce: false
};
await client.api('/users/071cc716-8147-4397-a5ba-b2105951cc0b/authentication/temporaryAccessPassMethods')
.version('beta')
.post(temporaryAccessPassAuthenticationMethod);
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/beta/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/users/kim@contoso.com/authentication/temporaryAccessPassMethods"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphTemporaryAccessPassAuthenticationMethod *temporaryAccessPassAuthenticationMethod = [[MSGraphTemporaryAccessPassAuthenticationMethod alloc] init];
[temporaryAccessPassAuthenticationMethod setStartDateTime: "2021-01-26T00:00:00Z"];
[temporaryAccessPassAuthenticationMethod setLifetimeInMinutes: 60];
[temporaryAccessPassAuthenticationMethod setIsUsableOnce: false];
NSError *error;
NSData *temporaryAccessPassAuthenticationMethodData = [temporaryAccessPassAuthenticationMethod getSerializedDataWithError:&error];
[urlRequest setHTTPBody:temporaryAccessPassAuthenticationMethodData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
TemporaryAccessPassAuthenticationMethod temporaryAccessPassAuthenticationMethod = new TemporaryAccessPassAuthenticationMethod();
temporaryAccessPassAuthenticationMethod.startDateTime = OffsetDateTimeSerializer.deserialize("2022-06-05T00:00:00Z");
temporaryAccessPassAuthenticationMethod.lifetimeInMinutes = 60;
temporaryAccessPassAuthenticationMethod.isUsableOnce = false;
graphClient.users("071cc716-8147-4397-a5ba-b2105951cc0b").authentication().temporaryAccessPassMethods()
.buildRequest()
.post(temporaryAccessPassAuthenticationMethod);
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewTemporaryAccessPassAuthenticationMethod()
startDateTime, err := time.Parse(time.RFC3339, "2022-06-05T00:00:00.000Z")
requestBody.SetStartDateTime(&startDateTime)
lifetimeInMinutes := int32(60)
requestBody.SetLifetimeInMinutes(&lifetimeInMinutes)
isUsableOnce := false
requestBody.SetIsUsableOnce(&isUsableOnce)
userId := "user-id"
result, err := graphClient.UsersById(&userId).Authentication().TemporaryAccessPassMethods().Post(requestBody)
Import-Module Microsoft.Graph.Identity.SignIns
$params = @{
StartDateTime = [System.DateTime]::Parse("2022-06-05T00:00:00.000Z")
LifetimeInMinutes = 60
IsUsableOnce = $false
}
New-MgUserAuthenticationTemporaryAccessPassMethod -UserId $userId -BodyParameter $params
响应
注意: 为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.temporaryAccessPassAuthenticationMethod",
"id": "81757535-e21e-4330-a338-33b8038ff12b",
"temporaryAccessPass": "nc+&G=xwDKCz",
"createdDateTime": "2021-01-25T23:53:35.5026721Z",
"startDateTime": "2021-01-26T00:00:00Z",
"lifetimeInMinutes": 60,
"isUsableOnce": false,
"isUsable": false,
"methodUsabilityReason": "NotYetValid"
}