ユニバーサル プリント (UP) プリンター クライアント ID の登録

OEM Printer Client Application API に必要なアクセス許可

ユニバーサル プリントでは、Azure によって発行された OAuth2 認可アクセス トークンがサポートされています。 ユニバーサル プリント対応プリンターを開発するには、OEM が必要なアクセス許可のセットを使用してクライアント アプリケーションを Azure に登録する必要があります。 OAuth2 は 2 種類のアクセス許可 要求を定義します。

委任された範囲のアクセス許可

範囲 表示文字列 説明 管理者の同意が必要
Printers.Create 新しいプリンターを作成して登録します。 サインインしているユーザーの代わりに、アプリケーションでプリンターの作成と登録を行うことができます。 はい

アプリケーション スコープのアクセス許可

範囲 表示文字列 説明 管理者の同意が必要
Printers.Read アカウントがアクセスできるプリンターを読み取りします。 アプリケーションがサインイン済みユーザーなしでプリンターを読み取ることができます。 はい
PrinterProperties.ReadWrite アカウントがアクセスできるプリンターのプロパティと属性の読み取りと書き込みをします。 サインイン済みユーザーなしで、アプリケーションがプリンターのプロパティと属性を読み取りと書き取りを行えるようにします。 はい
PrintJob.ReadWriteBasic 印刷ジョブのメタデータの読み取りと書き込みをします。 サインイン済みユーザーなしで、アプリケーションがユーザーの印刷ジョブのメタデータの読み取りと書き取りを行えるようにします。 はい
PrintJob.Read 印刷ジョブのメタデータとペイロードの読み取りをします。 サインイン済みユーザーなしで、アプリケーションがユーザーの印刷ジョブのメタデータとペイロードを読み取りを行えるようにします。 はい

OEM プリンターのクライアント アプリケーションの登録

  1. 会社のアプリ開発テナントを使用してマルチテナント アプリを作成します。
  2. 必要なアクセス許可スコープのセットを、上記で定義されているように要求するようにマルチテナント アプリを構成します。
    • Printers.Create [Delegated]
    • Printers.Read [Application]
    • PrinterProperties.ReadWrite [Application]
    • PrintJob.ReadWriteBasic [Application]
    • PrintJob.Read [Application]

新しいアプリケーションの登録

new app registration

completing the registration

後で使用するために、登録したアプリケーション ID をコピーします

save client ID

アプリケーション認証設定を設定する

configure app auth setting

Azure portal を使用して必要な API アクセス許可を追加する

add permissions

「アクセス許可の追加」ボタンをクリックすると、右側にポップアップが表示されます。 ポップアップで、「Microsoft API」を選択します。

Microsoft API

「ユニバーサル プリント」を見つけるには、ポップアップ内を下にスクロールする必要がある場合があります。

Universal Print API

上記で言及したアクセス許可を追加します。

Delegated permissions

Application permissions

必要なアクセス許可が追加されると、アプリケーションのアクセス許可は次のようになります。

API permissions

API アクセス許可を構成する別の方法を探している場合は、「代替オプション」を参照してください。

OEM プリンター のクライアント アプリケーションの発行元を更新する

既定では、登録済みアプリケーションには「未確認」の発行元が含まれます。 そのまま変更しない場合、アクセス許可の同意ダイアログに 「未確認」と表示されます。 「アプリケーションの発行元ドメインを構成する方法」に従って、アプリケーションの発行元を設定してください。

簡単な参考として、主要な手順は次のとおりです。

application branding page

updated application domain

Note

このプリンター クライアント アプリケーション ID がプリンターで実行されているコードに統合されると、この ID を使用するプリンターが顧客テナントで初めて ユニバーサル プリントに登録されるときに、管理者はこのアプリケーションに同意するように求められます。

発行元のドメインが確認済みのドメインに更新されると、アプリケーションのアクセス許可要求の同意ダイアログに、確認済みのドメイン値が表示されます。

application admin consent

OAuth 2.0 デバイス認証要求のサンプル

上記の手順が完了したら、以下の HTTP 本文の構文を使用して https://login.microsoftonline.com/organizations/oauth2/v2.0/devicecode に HTTP POST 要求を発行することで、検証を要求できます。

  • 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"
            }
        ]
    }
],
Value 説明
スコープ このリソース アクセスは、委任されたアクセス許可範囲を使用するように定義されています。
ロール このリソース アクセスは、アプリケーションのアクセス許可範囲を使用するように定義されています。
da9b70f6-5323-4ce6-ae5c-88dcc5082966 Azure グローバル クラウドのユニバーサル プリントの ID。
3e306194-d6c5-43ad-afbb-0e7b16a9c10b Printers.Create アクセス許可の ID。
1c90a3a7-465b-49c4-adcc-c8ac83d3d3f8 PrinterProperties.ReadWrite アクセス許可の ID。
2b1bdd6b-9a0f-47c6-a806-b3e20cfd07a8 Printers.Read アクセス許可の ID。
b695614a-52ec-4835-9e13-bdf5ff4c7448 PrintJob.Read アクセス許可の ID。
11f87dac-027f-4d76-bd29-1ea1536b93da PrintJob.ReadWriteBasic アクセス許可の ID。

add permission scopes to manifest

  • 変更を保存します。