通用打印 (UP) 打印机客户端 ID 注册
所需的 OEM 打印机客户端应用程序 API 权限
通用打印支持 Azure 颁发的 OAuth2 授权访问令牌。 开发通用打印就绪打印机需要 OEM 使用所需的权限集向 Azure 注册客户端应用程序。 OAuth2 定义 2 种类型的权限 请求。
委托的范围权限
作用域 | 显示字符串 | 说明 | 需要管理员同意 |
---|---|---|---|
Printer.Create | 创建并注册新打印机。 | 允许应用程序代表已登录用户创建和注册打印机。 | 是 |
应用程序范围权限
作用域 | 显示字符串 | 说明 | 需要管理员同意 |
---|---|---|---|
Printer.Read | 读取帐户有权访问的打印机。 | 允许应用程序在没有登录用户的情况下读取打印机。 | 是 |
PrinterProperties.ReadWrite | 读取和写入帐户有权访问的打印机属性和属性。 | 允许应用程序在没有登录用户的情况下读取和写入打印机属性和属性。 | 是 |
PrintJob.ReadWriteBasic | 读取和写入打印作业元数据。 | 允许应用程序在没有登录用户的情况下读取和写入用户打印作业的元数据。 | 是 |
PrintJob.Read | 读取打印作业元数据和有效负载。 | 允许应用程序在没有登录用户的情况下读取用户的打印作业的元数据和有效负载。 | 是 |
OEM 打印机客户端应用程序注册
- 使用公司的应用开发租户创建多租户应用。
- 配置多租户应用以请求上面定义的所需权限范围集。
- Printer.Create [委托]
- Printer.Read [应用程序]
- PrinterProperties.ReadWrite [应用程序]
- PrintJob.ReadWriteBasic [应用程序]
- PrintJob.Read [应用程序]
注册新应用程序
复制已注册的应用程序 ID 供以后使用
设置应用程序身份验证设置
使用 Azure 门户 添加所需的 API 权限
单击“添加权限”按钮后,浮出控件将显示在右侧。 在浮出控件中,选择“Microsoft API”。
可能需要在浮出控件中向下滚动才能找到“通用打印”
添加上面提及的权限。
添加所需的权限时,应用程序权限应如下所示:
如果要查找配置 API 权限的另一种方法,请参阅 “备用选项 ”。
更新 OEM 打印机客户端应用程序发布者
默认情况下,已注册的应用程序将具有“未验证”发布者。 如果保持不变,客户将在权限许可对话框中看到“未验证”。 请遵循 操作方法:配置应用程序的发布者域 以设置应用程序发布者。
有关快速参考,核心步骤包括:
注意
将此打印机客户端应用程序 ID 集成到打印机上运行的代码中后,首次使用此 ID 的打印机在客户租户中注册到通用打印时,系统会提示管理员istrator 同意此应用程序。
当发布者域更新到已验证的域时,应用程序权限请求同意对话框将显示已验证的域值。
示例 OAuth 2.0 设备身份验证请求
完成上述步骤后,可以通过向 HTTP 正文语法发出 HTTP POST 请求来 https://login.microsoftonline.com/organizations/oauth2/v2.0/devicecode
请求验证
client_id={registered printer client ID}&scope=https%3A%2F%2Fprint.print.microsoft.com%2F.default
POST https://login.microsoftonline.com/organizations/oauth2/v2.0/devicecode HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
client_id=3e41cb36-3180-4566-bf3d-51ec873419e5&scope=https%3A%2F%2Fprint.print.microsoft.com%2F.default
用于添加所需 API 权限的备用选项
- 在清单中查找
requiredResourceAccess
部分 - 将以下必需的 API 权限复制并粘贴到清单中。 最简单的方法是替换清单的整个
requiredResourceAccess
部分。
"requiredResourceAccess": [
{
"resourceAppId": "da9b70f6-5323-4ce6-ae5c-88dcc5082966",
"resourceAccess": [
{
"id": "3e306194-d6c5-43ad-afbb-0e7b16a9c10b",
"type": "Scope"
},
{
"id": "1c90a3a7-465b-49c4-adcc-c8ac83d3d3f8",
"type": "Role"
},
{
"id": "2b1bdd6b-9a0f-47c6-a806-b3e20cfd07a8",
"type": "Role"
},
{
"id": "b695614a-52ec-4835-9e13-bdf5ff4c7448",
"type": "Role"
},
{
"id": "11f87dac-027f-4d76-bd29-1ea1536b93da",
"type": "Role"
}
]
}
],
值 | 说明 |
---|---|
范围 | 此资源访问权限定义为使用委派权限范围。 |
角色 | 此资源访问权限定义为使用应用程序权限范围。 |
da9b70f6-5323-4ce6-ae5c-88dcc5082966 | Azure 全球云中的通用打印 ID。 |
3e306194-d6c5-43ad-afbb-0e7b16a9c10b | Printer.Create 权限的 ID。 |
1c90a3a7-465b-49c4-adcc-c8ac83d3d3f8 | PrinterProperties.ReadWrite 权限的 ID。 |
2b1bdd6b-9a0f-47c6-a806-b3e20cfd07a8 | Printer.Read 权限的 ID。 |
b695614a-52ec-4835-9e13-bdf5ff4c7448 | PrintJob.Read 权限的 ID。 |
11f87dac-027f-4d76-bd29-1ea1536b93da | PrintJob.ReadWriteBasic 权限的 ID。 |
- 保存更改。