本文介绍如何创建应用程序,以便代表用户以编程方式访问 Microsoft 托管桌面 API。
API 访问需要 OAuth2.0 身份验证。 有关详细信息,请参阅 OAuth 2.0 授权代码流。
配置服务并获取访问令牌:
- 创建并注册Microsoft Entra应用程序。
- 在应用上配置Microsoft托管桌面的权限。
- 获取管理员同意。
- 使用此应用程序获取访问令牌。
- 使用令牌访问托管桌面 API Microsoft。
创建应用
若要使用 Microsoft 标识平台 终结点进行身份验证,必须先在 Azure 应用注册门户中注册应用。
对于将在其自己的标识下调用 Microsoft 托管桌面 API 的服务,需要为 Web 平台注册应用并复制以下值:
- Azure 应用注册门户分配的应用程序 ID。
- 客户端(应用程序)机密,可以是一个密码或是一个公钥/私钥对(证书)。
- 服务用于接收令牌响应的重定向 URL。
要分步了解如何通过 Azure 应用注册门户配置应用,请参阅注册应用。
使用 OAuth 2.0 客户端凭据授予流,应用使用 Microsoft Entra ID 分配的应用程序 ID 以及使用门户创建的客户端密码直接在 Microsoft 标识平台 终结点进行身份验证。
配置权限
若要在 Azure 应用注册门户中为应用配置委派权限,请执行以下操作:
- 在应用程序的“API 权限”页下,选择“添加我的组织使用>的权限 > API”类型“”新式工作区客户 API>“,选择”新式工作区客户 API”。
- 选择“ 委派的权限 > MWaaSDevice.Read”,然后选择“ 添加权限”。
- 若要在 Azure 应用注册门户中为应用配置其他委托权限, 请在应用程序的“ API 权限”页下,选择“ 添加权限 > ” ,选择“Microsoft Graph”。
- 选择“ 委派权限 > ”,选择 “offline_access ”和 “openid”,然后选择“ 添加权限”。
获取访问令牌
在 OAuth 2.0 客户端凭据授予流中,可使用在注册应用时保存的应用程序 ID 和客户端密码值直接从 Microsoft 标识平台 /token
终结点请求访问令牌。
获取 OAuth 2.0 授权代码流的访问令牌的第一步是将用户重定向到 Microsoft 标识平台 /authorize
终结点。 Microsoft Entra ID将用户登录并请求其同意应用请求的权限。 在授权代码授予流中,获得同意后,Microsoft Entra ID将向应用返回一个 authorization_code
,可在Microsoft 标识平台/令牌终结点兑换访问令牌。
授权请求
在 OAuth 2.0 客户端凭据授予流中,可使用在注册应用时保存的应用程序 ID 和客户端密码值直接从 Microsoft 标识平台 /token
终结点请求访问令牌。
https://login.microsoftonline.com/{tenantId}/oauth2/authorize
参数 | 条件 | 说明 |
---|---|---|
tenantId | 必需 | 租户的Microsoft Entra ID。 |
client_id | 必需 | 注册应用时分配的应用程序 ID。 |
范围 | 必需 | 必须包括: openid offline_access https://mwaas-services-customerapi-prod.azurewebsites.net/.default |
grant_type | 必需 | 必须是 client_credential 。 |
response_type | 必需 | 必须是代码。 |
redirect_uri | 建议 | 应用的 , redirect_uri 应用可在其中发送和接收身份验证响应。 它必须与在应用注册门户中注册的 redirect_uris 完全匹配。 |
授权响应
如果用户同意应用请求的权限,则响应将在代码参数中包含授权代码。
令牌请求
如果用户同意应用请求的权限,则响应将在代码参数中包含授权代码。
https://login.microsoftonline.com/{tenantId}/oauth2/token
参数 | 条件 | 说明 |
---|---|---|
tenantId | 必需 | 租户的Microsoft Entra ID。 |
client_id | 必需 | 注册应用时分配的应用程序 ID。 |
范围 | 必需 | 必须是 https://mwaas-services-customerapi-prod.azurewebsites.net/.default |
client_secret | 必需 | 在应用注册门户中为应用生成的客户端密码。 |
grant_type | 必需 | 必须是 authorization_code 。 |
代码 | 必需 | 作为授权请求的一部分获取的授权代码。 |
令牌响应
成功的 JSON 响应如下所示:
{
"token_type": "Bearer",
"expires_in": "3599",
"access_token": "access_token"
}
参数 | 说明 |
---|---|
access_token | 请求的访问令牌。 应用可以在调用 API 时使用此令牌。 |
token_type | 必须是持有者。 |
expires_in | 访问令牌的有效期是多久(以秒为单位)。 |
使用令牌访问托管桌面 API Microsoft
- 选择要使用的 API。
- 在发送到“Bearer {token}”的 http 请求中设置授权标头, (持有者是授权方案) 。