共用方式為


通用列印 (UP) 印表機用戶端識別碼註冊

必要的 OEM 印表機用戶端應用程式 API 許可權

通用列印支援由 Azure 發出的 OAuth2 授權存取權杖。 開發通用列印就緒印表機需要 OEM 向 Azure 註冊具有所需許可權集的用戶端應用程式。 OAuth2 定義 2 種類型的許可權 要求。

委派的範圍許可權

範圍 顯示字串 描述 需要管理員同意
Printers.Create 建立並註冊新的印表機。 允許應用程式代表登入的使用者建立和註冊印表機。 Yes

應用程式範圍許可權

範圍 顯示字串 描述 需要管理員同意
Printers.Read 讀取帳戶有權存取的印表機。 允許應用程式讀取沒有登入使用者的印表機。 Yes
PrinterProperties.ReadWrite 讀取和寫入帳戶可存取的印表機屬性和屬性。 允許應用程式讀取和寫入印表機屬性和屬性,而不需要登入的使用者。 Yes
PrintJob.ReadWriteBasic 讀取和寫入列印工作中繼資料。 允許應用程式讀取和寫入使用者列印工作的中繼資料,而不需要登入的使用者。 Yes
PrintJob.Read 讀取列印工作中繼資料和承載。 允許應用程式讀取使用者列印工作的中繼資料和承載,而不需要登入的使用者。 Yes

OEM 印表機用戶端應用程式註冊

  1. 使用貴公司的應用程式開發租使用者建立多租使用者應用程式。
  2. 設定多租使用者應用程式,以要求上述定義所需的許可權範圍集合。
    • Printers.Create [Delegated]
    • Printers.Read [Application]
    • PrinterProperties.ReadWrite [Application]
    • PrintJob.ReadWriteBasic [Application]
    • PrintJob.Read [Application]

註冊新的應用程式

new app registration

completing the registration

複製已註冊的應用程式識別碼以供稍後使用

save client ID

設定應用程式驗證設定

configure app auth setting

使用Azure 入口網站新增必要的 API 許可權

add permissions

按一下 [新增許可權] 按鈕之後,飛出視窗會顯示在右側。 在飛出視窗中,選取 [Microsoft API]。

Microsoft API

您可能需要在飛出視窗中向下捲動以尋找「通用列印」

Universal Print API

新增上述許可權。

Delegated permissions

Application permissions

新增必要的許可權時,應用程式許可權看起來應該像這樣:

API permissions

如果您要尋找另一種方式來設定 API 許可權,請參閱 「替代選項」

更新 OEM 印表機用戶端應用程式發行者

根據預設,已註冊的應用程式會有「未驗證」發行者。 如果保持不變,客戶會在 [許可權同意] 對話方塊中看到 「未驗證」 。 請遵循 如何:設定應用程式的發行者網域 來設定應用程式發行者。

如需快速參考,核心步驟如下:

application branding page

updated application domain

注意

將此印表機用戶端應用程式識別碼整合到印表機上執行的程式碼後,第一次使用此識別碼的印表機在客戶租使用者中註冊通用列印時,系統會提示管理員istrator 同意此應用程式。

當發行者網域更新為已驗證的網域時,應用程式許可權要求同意對話方塊會顯示已驗證的網域值。

application admin consent

範例 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 許可權的替代選項

app manifest

  1. 在資訊清單中尋找 requiredResourceAccess 區段
  2. 將下列必要的 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"
            }
        ]
    }
],
Description
範圍 此資源存取權的定義是使用委派的許可權範圍。
角色 此資源存取的定義是使用應用程式許可權範圍。
da9b70f6-5323-4ce6-ae5c-88dcc5082966 Azure 全域雲端中的通用列印識別碼。
3e306194-d6c5-43ad-afbb-0e7b16a9c10b Printers.Create 許可權的識別碼。
1c90a3a7-465b-49c4-adcc-c8ac83d3d3f8 PrinterProperties.ReadWrite 許可權的識別碼。
2b1bd6b-9a0f-47c6-a806-b3e20cfd07a8 Printers.Read 許可權的識別碼。
b695614a-52ec-4835-9e13-bdf5ff4c7448 PrintJob.Read 許可權的識別碼。
11f87dac-027f-4d76-bd29-1ea1536b93da PrintJob.ReadWriteBasic 許可權的識別碼。

add permission scopes to manifest

  • 儲存變更。