创建 hardwareOathTokenAuthenticationMethodDevice

命名空间:microsoft.graph

重要

Microsoft Graph /beta 版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。

创建新的 hardwareOathTokenAuthenticationMethodDevice 对象。 此 API 支持两种方案:

  • 创建新的硬件令牌,而无需分配给用户。 然后,可以 分配给用户
  • 在同一请求中创建硬件令牌并将其分配给用户。

此 API 可用于以下国家级云部署

全局服务 美国政府 L4 美国政府 L5 (DOD) 由世纪互联运营的中国

权限

为此 API 选择标记为最低特权的权限。 只有在应用需要它时,才使用更高的特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考

权限类型 最低特权权限 更高特权权限
委派(工作或学校帐户) Policy.ReadWrite.AuthenticationMethod 不可用。
委派(个人 Microsoft 帐户) 不支持。 不支持。
应用程序 Policy.ReadWrite.AuthenticationMethod 不可用。

重要

对工作或学校帐户使用委托权限时,登录用户必须具有适当的Microsoft Entra角色或具有所需权限的自定义角色。 此作所需的最低特权内置角色是 身份验证策略管理员

若要在单个请求中创建硬件 OATH 令牌并将其分配给用户,登录用户还必须具有:

  • UserAuthenticationMethod.ReadWrite.All 委托权限。
  • 身份验证管理员 (最低特权角色,用于将硬件令牌分配给非管理员用户) 或特权身份验证管理员 (最低特权角色,用于将硬件令牌分配给管理员用户) 角色。

HTTP 请求

POST /directory/authenticationMethodDevices/hardwareOathDevices

请求标头

名称 说明
Authorization 持有者 {token}。 必填。 详细了解 身份验证和授权
Content-Type application/json. 必需。

请求正文

在请求正文中,提供 hardwareOathTokenAuthenticationMethodDevice 对象的 JSON 表示形式。

创建 hardwareOathTokenAuthenticationMethodDevice 时,可以指定以下属性。

属性 类型 说明
serialNumber String 特定硬件令牌的序列号,通常位于设备背面。 必填。
manufacturer String 硬件令牌的制造商名称。 必填。
model String 硬件令牌的模型名称。 必填。
secretKey String 供应商提供的特定硬件令牌的密钥。 必填。
timeIntervalInSeconds Int32 六位数验证码的刷新间隔(以秒为单位)。 可能的值为:30 或 60。 必填。
hashFunction hardwareOathTokenHashFunction 硬件令牌的哈希函数。 可能的值为:hmacsha1hmacsha256。 默认值为: hmacsha1。 可选。
assignTo identity 用户 ID(如果要直接将令牌分配给用户)。 可选。
displayName String 可提供给硬件 OATH 令牌的名称。 可选。

响应

如果成功,此方法在 201 Created 响应正文中返回响应代码和 hardwareOathTokenAuthenticationMethodDevice 对象。

示例

示例 1:创建没有用户分配的令牌

请求

以下示例显示了一个请求。

POST https://graph.microsoft.com/beta/directory/authenticationMethodDevices/hardwareOathDevices
Content-Type: application/json

{
  "displayName": "Token 1",
  "serialNumber": "TOTP123456",
  "manufacturer": "Contoso",
  "model": "Hardware Token 1000",
  "secretKey": "6PJ4UKIW33NNXYZAEHQNFUFTZF7WFTFB",
  "timeIntervalInSeconds": 30,
  "hashFunction": "hmacsha1"
}

响应

以下示例显示了相应的响应。

注意:为了提高可读性,可能缩短了此处显示的响应对象。

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

{
  "@odata.type": "#microsoft.graph.hardwareOathTokenAuthenticationMethodDevice",
  "id": "9b037532-f999-1ed9-13fd-849ffb995e11",
  "displayName": "Token 1",
  "serialNumber": "TOTP123456",
  "manufacturer": "Contoso",
  "model": "Hardware Token 1000",
  "secretKey": null,
  "timeIntervalInSeconds": 30,
  "status": "available",
  "lastUsedDateTime": null,
  "assignedTo": null,
  "hashFunction": "hmacsha1"
}

示例 2:创建令牌并将其分配给用户

请求

以下示例显示了一个请求。

POST https://graph.microsoft.com/beta/directory/authenticationMethodDevices/hardwareOathDevices
Content-Type: application/json

{
  "displayName": "Token 1",
  "serialNumber": "TOTP123456",
  "manufacturer": "Contoso",
  "model": "Hardware Token 1000",
  "secretKey": "6PJ4UKIW33NNXYZAEHQNFUFTZF7WFTFB",
  "timeIntervalInSeconds": 30,
  "hashFunction": "hmacsha1",
  "assignTo": {
    "id": "0cadbf92-####-####-####-############"
    }
}

响应

以下示例显示了相应的响应。

注意:为了提高可读性,可能缩短了此处显示的响应对象。

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

{
  "@odata.type": "#microsoft.graph.hardwareOathTokenAuthenticationMethodDevice",
  "id": "9b037532-f999-1ed9-13fd-849ffb995e11",
  "displayName": "Token 1",
  "serialNumber": "TOTP123456",
  "manufacturer": "Contoso",
  "model": "Hardware Token 1000",
  "secretKey": null,
  "timeIntervalInSeconds": 30,
  "status": "assigned",
  "lastUsedDateTime": null,
  "assignedTo": null,
  "hashFunction": "hmacsha1",
  "assignedTo": {
    "id": "0cadbf92-####-####-####-############",
    "displayName": "Amy Masters"
    }
}