다음을 통해 공유


UP(유니버설 인쇄) 프린터 클라이언트 ID 등록

필수 OEM 프린터 클라이언트 애플리케이션 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 [응용 프로그램]
    • PrinterProperties.ReadWrite [애플리케이션]
    • PrintJob.ReadWriteBasic [애플리케이션]
    • PrintJob.Read [애플리케이션]

새 애플리케이션 등록

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

참고 항목

이 프린터 클라이언트 응용 프로그램 ID가 프린터에서 실행 중인 코드에 통합되면 이 ID를 사용하는 프린터가 고객 테넌트의 유니버설 인쇄에 처음으로 등록되면 관리이 애플리케이션에 동의하라는 메시지가 표시됩니다.

게시자가 기본 유효성이 검사된 do기본로 업데이트되면 애플리케이션 권한 요청 동의 대화 상자에 유효성이 검사된 do기본 값이 표시됩니다.

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"
            }
        ]
    }
],
설명
범위 이 리소스 액세스는 위임된 권한 범위를 사용하도록 정의됩니다.
역할 이 리소스 액세스는 애플리케이션 권한 범위를 사용하도록 정의됩니다.
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

  • 변경 내용을 저장합니다.