Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
1. Kayıt
1.1 Akış
1.2 API'ler
Aşağıdaki API'ler, yazıcıları kaydetmek için Genel UP Kayıt Hizmeti ile kullanılabilir.
Genel UP Kayıt Hizmeti Temel URL'si: https://register.print.microsoft.com
Tam URL, genel temel URL ile aşağıdaki uç noktaların birleşimi olacaktır.
1.2.1 /register
Yazıcıyı kaydetmek için /register uç noktası kullanılır. Kayıt için 2 aşama vardır.
Yazıcıyı kaydetmek için ilk kayıt çağrısı
Kayıt isteğinin tamamlanması için kayıt durumunu yoklama
1.2.1.1 Kayıt Başlatılıyor
İlk aşama, genel kayıt hizmetiyle bir kayıt isteği başlatmaktır. Bu işlem, kayıt yükü JSON biçiminde olan /register uç noktasına bir POST isteği gönderilerek gerçekleştirilir.
1.2.1.1.1 HTTP İsteği
POST /api/{version}/register
{version}
, yazıcının kullandığı UP Kayıt API'sinin/protokolünün sürümüdür.
Şu anda desteklenen sürümler şunlardır:
- v1.0
1.2.1.1.2 İstek Üst Bilgileri
v1.0 için:
Veri Akışı Adı | Açıklama |
---|---|
Yetkilendirme | Taşıyıcı {token} Gerekli. Yazıcının, Cihaz Kodu akışını veya başka bir yetkilendirme akışını izleyerek yöneticide Microsoft Entra Id'de oturum açması gerekir. |
1.2.1.1.3 İstek İçerik Türü
application/json
1.2.1.1.4 İstek Yükü
Kayıt isteği yükü aşağıdaki değerlerle (büyük/küçük harfe duyarlı) JSON biçiminde olacaktır:
Değer adı | Değer türü | Açıklama | Gerekli |
---|---|---|---|
Adı | Dize | Yazıcının kolay adı. | Yes |
üretici | Dize | Yazıcının üreticisi. | Yes |
model | Dize | Yazıcının modeli. | Yes |
device_id | Dize | Yazıcının fiziksel cihaz UUID değeri. | Yes |
device_type | Dize | Cihazın türü. Desteklenen değerler (tırnak işaretleri olmadan): "printer" | Yes |
certificate_request | DeviceCertRequest nesnesi | Yazıcı tarafından oluşturulan ve kendisini tanımlamak için kullanılan sertifika için X.509 Sertifika İmzalama İsteği (CSR). BouncyCastle .NET kitaplığı ile CSR oluşturma hakkında bir kodlama örneği için lütfen Ek A.1'e bakın. | Yes |
DeviceCertRequest nesnesi aşağıdaki değerlere sahiptir (büyük/küçük harfe duyarlı):
Değer adı | Değer türü | Açıklama | Gerekli |
---|---|---|---|
Tür | Dize | "pkcs10" içermesi GEREKEN bir özellik. | Yes |
veriler | Dize | Base64 kodlamalı PKCS#10 sertifika isteği RFC4211 içeren özellik. Sertifika isteği 2048 bit anahtar, SHA256WithRSAEncryption imza algoritması ve SHA256 karma algoritması ile bir RSA ortak anahtar algoritması kullanmalıdır. | Yes |
transport_key | Dize | İstemci tarafından oluşturulan asimetrik anahtarın base64 ile kodlanmış ortak bölümü. | Yes |
1.2.1.1.5 Başarılı Yanıt
Başarılı olduğunda (202 Kabul Edildi), kayıt yanıtı yükü aşağıdaki değerlerle (büyük/küçük harfe duyarlı) JSON biçiminde olacaktır:
Değer adı | Değer türü | Açıklama | Gerekli |
---|---|---|---|
registration_id | Dize | Bu kayıt isteğini temsil eden benzersiz kimlik. Bu, kayıt durumu yoklanırken kullanılır. | Yes |
interval | integer | Kayıt isteğinin tamamlanmasını denetlemek için yoklama aralığı süresi (saniye cinsinden). | Yes |
1.2.1.1.6 Hata Yanıtı
Hata durumunda, hata yanıtı yüküyle birlikte aşağıdaki HTTP durum kodları döndürülür. Hata yanıtı yükü, 2. bölümdeki biçimi izleyen bir hata JSON nesnesi içerir.
HTTP Durum Kodları
HTTP Durum Kodu | Açıklama |
---|---|
400 (Hatalı İstek) | İstek geçersiz veya hatalı biçimlendirilmiş. Ayrıntılar için bkz. hata yanıtı yükü. İsteği düzeltin ve yeniden gönderin. |
500 (İç Sunucu Hatası) | Hizmette bir iç hata oluştu. Ayrıntılar için bkz. hata yanıtı yükü. İsteği yeniden deneyin (mümkünse retry_timeout ayarlanır). |
Hata Kodları
Hata Kodları | Açıklama | HTTP Durum Kodu |
---|---|---|
invalid_request | Kayıt isteği yükü hatalı biçimlendirilmiş/geçersiz. Bu genellikle geliştirme aşamalarında gerçekleşir. Daha fazla bilgi için bkz. error_description. | 400 |
device_code_error | Hizmet bir Cihaz/Kullanıcı Kodu çifti oluşturamadı. | 500 |
storage_error | Hizmet Arka Uç Depolama ile ilgili bir hatayla karşılaşmıştır. | 500 |
service_error | Hizmette bir hata oluştu. Daha fazla bilgi için bkz. error_description. | 500 |
1.2.1.1.7 Örnekleri
1.2.1.1.7.5 İstek v1.0
POST https://register.print.microsoft.com/api/v1.0/register HTTP/1.1
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
Accept-Encoding: gzip, deflate
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkZ6U3pHTVZ1a0U2Nm9EQnpwR0JUY2NBMlVRYyIsImtpZCI6IkZ6U3pHTVZ1a0U2Nm9EQnpwR0JUY2NBMlVRYyJ9.eyJhdWQiOiJodHRwczovL3ByaW50LnByaW50LXBwZS5taWNyb3NvZnQuY29tIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy1wcGUubmV0LzIwZGY5NTlmLWE0OTItNGU3NC05N2E3LTE0YWJiM2ZlZjFkYi8iLCJpYXQiOjE1NjE2NzUxNjYsIm5iZiI6MTU2MTY3NTE2NiwiZXhwIjoxNTYxNjc5MDY2LCJhY3IiOiIxIiwiYWlvIjoiNDJOZ1lOQXNYbUtTSHZSM3Jvcjd2RVdMMWtmc0NMUi93R085cjYzMGl2T1RLWlVoV1ZzQSIsImFtciI6WyJwd2QiXSwiYXBwaWQiOiI0MTdhZTZlYi1hYWM4LTQyYzgtOTAwYy0wZTUwZGViYmE2ODgiLCJhcHBpZGFjciI6IjAiLCJmYW1pbHlfbmFtZSI6IlN0YWdlciIsImdpdmVuX25hbWUiOiJNYWRlbGluZSIsImdyb3VwcyI6WyI1YjljNGVkMS0yMWUyLTRkNzktYjE0Zi1mMzYyMTI5ODcyYjIiXSwiaXBhZGRyIjoiMTMxLjEwNy4xNTkuMjAiLCJuYW1lIjoiTWFkZWxpbmUgU3RhZ2VyIiwib2lkIjoiYzJmMjg2NDctMWQ4ZS00YTdhLWIzZjctZjU4YmQ3ODYxODk4IiwicHVpZCI6IjEwMDM0MDAwMDA2OEJFQzgiLCJzY3AiOiJzYW1wbGVzLnJlYWQgc2FtcGxlcy53cml0ZSIsInN1YiI6IlR6b2hRcmNzTHNjNUNHR09hWndxa1ZiajhaSkh4MnB1dzdpcWhWVXFWRGsiLCJ0ZW5hbnRfY3RyeSI6IlVTIiwidGlkIjoiMjBkZjk1OWYtYTQ5Mi00ZTc0LTk3YTctMTRhYmIzZmVmMWRiIiwidW5pcXVlX25hbWUiOiJtYXN0YWdlckBjbG91ZHByaW50cHBlLmNjc2N0cC5uZXQiLCJ1cG4iOiJtYXN0YWdlckBjbG91ZHByaW50cHBlLmNjc2N0cC5uZXQiLCJ1dGkiOiJlal84QlAtLW1rZWNNWjdncFJNR0FBIiwidmVyIjoiMS4wIiwid2lkcyI6WyI2MmU5MDM5NC02OWY1LTQyMzctOTE5MC0wMTIxNzcxNDVlMTAiXX0.e1RpyZDQzqlV11uyRXWRmaqf6wk2mg763muoIiMG2Qq8DW221Rg91cLP5px6KSfhpd7nv-Ln_KUFsZ4IlJqfmsrfCL_vgKHjYQuRDv2BY8-vrIqUC_5XVA_sj2Ib7iT7SjDYyMv6QDZM2rf7kVggvRuaZihUxxGZWby84EXD8KKAYfAQGo3r6AceuSDJOvToMy-Kp-MEqRuzExZdq2p1_qRIBtHe8Its4xuR8ZHEVqWnY0Y_qeVA8uxl3mQxZSvH8BVYn4Bdy_VZcNtrNKt3YpHFzG4kgy5V6wGLecRI7IBzYd4uK_FwpaYXHpkrSbO0ATEX3tjrgPnHbicA053Ilw
Content-Length: 1600
{
"name": "Test Printer",
"manufacturer": "Test Manufacturer",
"model": "Test Model",
"device_type": "printer",
"device_id": "a188d9e8-8daa-44c9-862b-d6202bcf1b68",
"certificate_request":
{
"type": "pkcs10",
"data": "MIICpDCCAYwCAQAwYTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1JlZG1vbmQxFzAVBgNVBAoMDk1pY3Jvc29mdCBDb3JwMRIwEAYDVQQDDAlNaWNyb3NvZnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDJ1xUdFKBlFdS9dHqSrD7YS0ZJ6MgcYy5wI3P0wOWrDi28OCBLbt6HBg02KDh1MlmVrfIR2O6WWeJ59M63JuwEn2e2WoGnIb/M6NyANyBBmgZ3bjp39UJHbXtYYXm/VJrPcOLM09dST7KR1zAcD2J+rnK8ZVUtYuTl58D7R6zsrYshw5CwxfLYPXeXwiSoKhtEC8Xn1lz3mi5B2SdsFHdjaQb6E0tCG5zdrVzzhCEVPaoo4e9SCTB9jDNulTU1ZkHzGBk+UzlKv4APsclyGCTEgA01T6/ueBrVeKY9d4DYfz/pu4sm0Vf1E+2hggtwbBOP60sFtkfnKiwtVoDF1KC9AgMBAAEwDQYJKoZIhvcNAQELBQADggEBACdggPBJ5MoJJ3QjVYDypuJGWDVWBT0G4pXNZHNz5Q4OVDze7aCw3Sl78Qdzy++XsrSXjtyZyEb+A5R36YKTpzRBCHSOWyZkZKpxj0Uo8/+RzjzJ1uvtwfhelfQ6EVktFsz6a2hixcaa47bN/bjj9stJbbRsxjJwR1K5YI/i+9DaUE7r7VDXiknQ7/ZyEYquAqY/O/LEnFOGhkSvkLlFPTbnJ7fzURyNnQhmp8p3DMj5dXYgKfWPxViqvJChx8pJf9zM4TjzaTZIj08tSOp2LtWGeMNkFgYJH4URe3t4OPx5crkKj8i5aIW1Ulb8ezJLW1IU7W8hF71ooZWFTOsAnjQ=",
"transport_key":"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAydcVHRSgZRXUvXR6kqw+2EtGSejIHGMucCNz9MDlqw4tvDggS27ehwYNNig4dTJZla3yEdjullniefTOtybsBJ9ntlqBpyG/zOjcgDcgQZoGd246d/VCR217WGF5v1Saz3DizNPXUk+ykdcwHA9ifq5yvGVVLWLk5efA+0es7K2LIcOQsMXy2D13l8IkqCobRAvF59Zc95ouQdknbBR3Y2kG+hNLQhuc3a1c84QhFT2qKOHvUgkwfYwzbpU1NWZB8xgZPlM5Sr+AD7HJchgkxIANNU+v7nga1XimPXeA2H8/6buLJtFX9RPtoYILcGwTj+tLBbZH5yosLVaAxdSgvQIDAQAB"
}
}
1.2.1.1.7.6 Yanıt v1.0
HTTP/1.1 202 Accepted
Date: Thu, 27 Jun 2019 22:47:34 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
{
"registration_id": "fbbd6371-7e88-4881-8818-8d2ea2e8fe88",
"interval": 5
}
1.2.1.2 Kayıt Durumu Alınıyor
Kayıt isteği başarıyla kabul edildikten sonra, yazıcı kayıt isteğinin /register
durumu için uç noktayı yoklar. Yazıcı, kayıt yanıtında alınan aralık değerine göre yoklama yapmalı ve alınan değeri registration_id
sağlamalıdır.
1.2.1.2.1 HTTP İsteği
GET /api/{version}/register?{Query Parameters}
{version}
, yazıcının kullandığı UP Kayıt API'sinin/protokolünün sürümüdür.
Şu anda desteklenen sürümler şunlardır:
- v1.0
{Query Parameters}
sonraki bölümde belirtilir.
1.2.1.2.2 İstek Üst Bilgileri
v1.0 için:
Veri Akışı Adı | Açıklama |
---|---|
Yetkilendirme | Taşıyıcı {token} Gerekli. Yazıcının yöneticide Microsoft Entra Id'de oturum açması veya Cihaz Kodu akışını izlemesi gerekir. İlk kayıt isteği için alınan belirteç kullanılabilir. |
1.2.1.2.3 Sorgu Parametreleri İste
Parametre adı | Açıklama | Gerekli |
---|---|---|
registration_id | Kayıt isteğinin yanıtından alınan kayıt kimliği. | Yes |
1.2.1.2.4 Başarılı Yanıtlar
Aşağıdaki "başarılı" senaryolar için aşağıdaki HTTP durum kodları döndürülür:
HTTP Durum Kodu | Kayıt Aşaması |
---|---|
200 (Tamam) | Kayıt Tamamlandı |
202 (Kabul Edildi) | Kayıt Devam Ediyor - Aralık süresi geçtikten sonra lütfen başka bir istek gönderin |
Yanıt Yükleri
Kayıt Devam Ediyor (202 Kabul Edildi):
Kayıt yanıtı yükü aşağıdaki değerlerle (büyük/küçük harfe duyarlı) JSON biçiminde olacaktır:
Değer adı | Değer türü | Açıklama | Gerekli |
---|---|---|---|
interval | integer | Kayıt isteğinin tamamlanmasını denetlemek için yoklama aralığı süresi (saniye cinsinden). Yoklama aralığı süresinin her seferinde aynı olması gerekmediğini unutmayın. | Yes |
Kayıt Tamamlandı (200 Tamam):
Kayıt yanıtı yükü aşağıdaki değerlerle (büyük/küçük harfe duyarlı) JSON biçiminde olacaktır:
Değer adı | Değer türü | Açıklama | Gerekli |
---|---|---|---|
cloud_device_id | Dize | Bu yazıcının temsil ettiği Buluttaki yazıcının UUID değeri. | Yes |
sertifika | Dize | Base64 ile kodlanmış İmzalı X.509 Sertifikası. | Yes |
print_svc_url | Dize | Yazıcı işlemlerini işleyen Evrensel Yazdırma (UP) hizmetinin URL'si. | Yes |
notification_url | Dize | Yazıcı tarafından bildirimleri dinlemek için kullanılması gereken URL (yeni yazdırma işi, yazdırma işini iptal etme vb.). | Yes |
mcp_svc_resource_id | Dize | UP hizmetinin Kaynak Kimliği. UP ve UP Bildirim Hizmetleri ile iletişim için OAuth belirteci istenirken gereklidir. | Yes |
device_token_url | Dize | Yazıcının UP ve UP Bildirim Hizmetleri için belirteçleri almak için kullanması gereken Güvenli Belirteç Yetkilisi'nin (STA) URL'si. | Yes |
1.2.1.2.5 Hata Yanıtı
Hata durumunda, hata yanıtı yüküyle birlikte aşağıdaki HTTP durum kodları döndürülür. Hata yanıtı yükü, 2. bölümdeki biçimi izleyen bir hata JSON nesnesi içerir.
HTTP Durum Kodları
HTTP Durum Kodu | Açıklama |
---|---|
400 (Hatalı İstek) | İstek geçersiz veya hatalı biçimlendirilmiş. Ayrıntılar için bkz. hata yanıtı yükü. Kayıt yeniden başlatılmalıdır. |
500 (İç Sunucu Hatası) | Hizmette bir iç hata oluştu. Ayrıntılar için bkz. hata yanıtı yükü. Kayıt yeniden başlatılmalıdır. |
Hata Kodları
Hata Kodları | Açıklama | HTTP Durum Kodu |
---|---|---|
invalid_registration_id | Sağlanan kayıt kimliği geçersiz. Kayıt kimliği yanlış depolanmışsa veya yazıcı kaydı kayıt zaman aşımı içinde tamamlanmamışsa bu durum oluşabilir. Kayıt yeniden başlatılmalıdır. | 400 |
device_already_exists | Kayıtlı olan cihaz zaten kayıtlı. Yöneticinin kayıtlı cihazın mevcut olup olmadığını görmek için UP portalını denetlemesi gerekir. Bu durumda Yöneticinin silmeyi/kaydını kaldırmayı unuttuğu eski bir girdi olabilir. Kayıt yeniden başlatılmalıdır. | 400 |
user_token_error | Hizmet kayıt gerçekleştirmek için kullanıcı belirtecini alamadı. Kayıt yeniden başlatılmalıdır. | 500 |
storage_error | Hizmet Arka Uç Depolama ile ilgili bir hatayla karşılaşmıştır. Kayıt yeniden başlatılmalıdır. | 500 |
service_error | Hizmette bir hata oluştu. Daha fazla bilgi için bkz. error_description. Kayıt yeniden başlatılmalıdır. | 500 |
1.2.1.2.6 Örnekleri
1.2.1.2.6.3 İstek v1.0
GET https://register.print.microsoft.com/api/v1.0/register?registration_id=bb86db79-2918-
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkZ6U3pHTVZ1a0U2Nm9EQnpwR0JUY2NBMlVRYyIsImtpZCI6IkZ6U3pHTVZ1a0U2Nm9EQnpwR0JUY2NBMlVRYyJ9.eyJhdWQiOiJodHRwczovL3ByaW50LnByaW50LXBwZS5taWNyb3NvZnQuY29tIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy1wcGUubmV0LzIwZGY5NTlmLWE0OTItNGU3NC05N2E3LTE0YWJiM2ZlZjFkYi8iLCJpYXQiOjE1NjE2NzUxNjYsIm5iZiI6MTU2MTY3NTE2NiwiZXhwIjoxNTYxNjc5MDY2LCJhY3IiOiIxIiwiYWlvIjoiNDJOZ1lOQXNYbUtTSHZSM3Jvcjd2RVdMMWtmc0NMUi93R085cjYzMGl2T1RLWlVoV1ZzQSIsImFtciI6WyJwd2QiXSwiYXBwaWQiOiI0MTdhZTZlYi1hYWM4LTQyYzgtOTAwYy0wZTUwZGViYmE2ODgiLCJhcHBpZGFjciI6IjAiLCJmYW1pbHlfbmFtZSI6IlN0YWdlciIsImdpdmVuX25hbWUiOiJNYWRlbGluZSIsImdyb3VwcyI6WyI1YjljNGVkMS0yMWUyLTRkNzktYjE0Zi1mMzYyMTI5ODcyYjIiXSwiaXBhZGRyIjoiMTMxLjEwNy4xNTkuMjAiLCJuYW1lIjoiTWFkZWxpbmUgU3RhZ2VyIiwib2lkIjoiYzJmMjg2NDctMWQ4ZS00YTdhLWIzZjctZjU4YmQ3ODYxODk4IiwicHVpZCI6IjEwMDM0MDAwMDA2OEJFQzgiLCJzY3AiOiJzYW1wbGVzLnJlYWQgc2FtcGxlcy53cml0ZSIsInN1YiI6IlR6b2hRcmNzTHNjNUNHR09hWndxa1ZiajhaSkh4MnB1dzdpcWhWVXFWRGsiLCJ0ZW5hbnRfY3RyeSI6IlVTIiwidGlkIjoiMjBkZjk1OWYtYTQ5Mi00ZTc0LTk3YTctMTRhYmIzZmVmMWRiIiwidW5pcXVlX25hbWUiOiJtYXN0YWdlckBjbG91ZHByaW50cHBlLmNjc2N0cC5uZXQiLCJ1cG4iOiJtYXN0YWdlckBjbG91ZHByaW50cHBlLmNjc2N0cC5uZXQiLCJ1dGkiOiJlal84QlAtLW1rZWNNWjdncFJNR0FBIiwidmVyIjoiMS4wIiwid2lkcyI6WyI2MmU5MDM5NC02OWY1LTQyMzctOTE5MC0wMTIxNzcxNDVlMTAiXX0.e1RpyZDQzqlV11uyRXWRmaqf6wk2mg763muoIiMG2Qq8DW221Rg91cLP5px6KSfhpd7nv-Ln_KUFsZ4IlJqfmsrfCL_vgKHjYQuRDv2BY8-vrIqUC_5XVA_sj2Ib7iT7SjDYyMv6QDZM2rf7kVggvRuaZihUxxGZWby84EXD8KKAYfAQGo3r6AceuSDJOvToMy-Kp-MEqRuzExZdq2p1_qRIBtHe8Its4xuR8ZHEVqWnY0Y_qeVA8uxl3mQxZSvH8BVYn4Bdy_VZcNtrNKt3YpHFzG4kgy5V6wGLecRI7IBzYd4uK_FwpaYXHpkrSbO0ATEX3tjrgPnHbicA053Ilw
Host: register.print.microsoft.com
1.2.1.2.6.4 Devam Ediyor Yanıtı v1.0
HTTP/1.1 202 Accepted
Cache-Control: no-cache
Pragma: no-cache
{
"interval": 15
}
1.2.1.2.6.7 Tamamlandı Yanıtı v1.0
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 267
Content-Type: application/json; charset=utf-8
{
"cloud_device_id": "7c907b43-d8f0-4e42-a279-1e37eb4fd2bf",
"certificate": "MIID8jCCAtqgAwIBAgIQR2Y15zkurJhCGxcaQ0d7tjANBgkqhkiG9w0BAQsFADB4MXYwEQYKCZImiZPyLGQBGRYDbmV0MBUGCgmSJomT8ixkARkWB3dpbmRvd3MwHQYDVQQDExZNUy1Pcmdhbml6YXRpb24tQWNjZXNzMCsGA1UECxMkODJkYmFjYTQtM2U4MS00NmNhLTljNzMtMDk1MGMxZWFjYTk3MB4XDTE4MDExOTAwNTIxM1oXDTI4MDExOTAxMjIxM1owLzEtMCsGA1UEAxMkZjVlYjVmNWUtMDYyNC00YTNiLThmZjItNjQ5ZTAyM2ZiNzJkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApQc0Twp+vlT5Vc74zLoXbrufcIKnoW980OWFKHf7lRlRqjj9MWpea99j+3K8JQSoifXJvS5QzyjXrH9phsrfX84I258y6dM/aUadLYYKjO38wx9c1vQppZi1P3LcDaJiXPgNQ8omWCtDNoVwQlTUmB9Pq6h+V6S4P59Mq9cem6yEE7pu4DLqLSB68jexvLQnuGDfn6PsVUC3ML21zDmAr3QDikiZDe9Iy03IRrXvl6obj5QZtkGFbK9ueArFcWpymsEK
FfVhrKL7ca/rAEFHsHacJYHkJNMw3Qzs0yMYZRsH/fS+eBebvQWUEujQ+BX8xZQX48ukwtC8R37RsqrLjwIDAQABo4HAMIG9MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwIgYLKoZIhvcUAQWCHAIEEwSBEF5f6/UkBjtKj/JkngI/ty0wIgYLKoZIhvcUAQWCHAMEEwSBEHXH6W+38IhBoi1uqlWcNhUwIgYLKoZIhvcUAQWCHAUEEwSBEAWT1qlxl5pLvXhzFTIfL2swFAYLKoZIhvcUAQWCHAgEBQSBAk5BMBMGCyqGSIb3FAEFghwHBAQEgQEwMA0GCSqGSIb3DQEBCwUAA4IBAQCXpFMa9DCgIIJTD3RlEyPN8WB/HgMkhLBqwtZugkmIn8D80ckuhrfa2jJfWkNxEfFXanjq9B4tAvkNt7vBXiYw+PKj8+CE5FgfUTNtIw3Q/06tnJBj20mz28ZNbdRUgXzxXiY7oZss54dbHH+7TFO9k9Pm1CuUOzLFX4LeC48wo/S6uN7JDeID6pQjcR00eYJ+gcD800AXBYXrqSreYhdtl1swcD71qgshELAo2qXu0kzuKj05GIB5SXFOoU+KhuB0LMuEZF5rsQPN4KcasGaAb/8MIORAxkYStNLQZQLYbDve/dUownbfruW/o3tnjJP0GA0gY/Ohv5ssgrCFsiBq",
"print_svc_url": "https://print.print.microsoft.com/",
"notification_url": "https://notification.print.microsoft.com/",
"mcp_svc_resource_id":"https://print.print.microsoft.com",
"device_token_url": "https://login.microsoftonline.com/common/oauth2/token"
}
1.2.1.3 Kimlik Doğrulaması
Yazıcıyı kaydetmeden önce, Cihaz Kodu akışını veya başka bir yetkilendirme akışını izleyerek yöneticinin kimliğini Microsoft Entra ID'de doğrulamalıdır. Alınan yazıcı yöneticisi erişim belirteci, yazıcı kaydetme isteğinin yetkilendirme üst bilgisinde gönderilmelidir. Microsoft Entra ID tarafından desteklenen cihaz kodu ve diğer kimlik doğrulama akışlarının belgeleri Desteklenen kimlik doğrulama akışları bölümünde bulunabilir.
1.2.1.3.1 Cihaz Kodu Akışı Parametreleri
Cihaz kodu akışının Microsoft Entra ID desteğinin belgeleri OAuth 2.0 cihaz kodu akışında bulunabilir. client_id
Aşağıda listelenenler geçicidir. Yakın gelecekte ek bilgiler sağlayacağız.
Parametre Adı | Açıklama | Gerekli |
---|---|---|
tenant | Kiracı parametresi için "Kuruluşlar" kullanın. | Yes |
client_id | client_id için kullanın registered client ID . OEM İstemcisini Kaydetme bölümünde ek bilgiler. |
Yes |
kapsam | Kapsam için kullanın https://print.print.microsoft.com/.default |
Yes |
1.2.1.3.2 Örnek Cihaz Kodu Akış İstekleri
1.2.1.3.2.1 Cihaz kodu akışını başlatma
İstek:
POST https://login.microsoftonline.com/organizations/oauth2/v2.0/devicecode HTTP/1.1
Accept-Charset: utf-8
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Host: login.microsoftonline.com
Content-Length: 103
Expect: 100-continue
Connection: Keep-Alive
client_id=<registered_client_id>&scope=https%3A%2F%2Fprint.print.microsoft.com%2F.default
Yanıt:
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 473
{
"user_code": "FMTB7B3WR",
"device_code": "FAQABAAEAAAAP0wLlqdLVToOpA4kwzSnx3SB1wjNptiBt5jFM8ePgJKGOjX-WOEksHYT3zgqz9VVg4MqY8J6Tej_rpniyj4WjOsVe-RCJuGexX-IwPKDK-df38P0zpLv5ktxSCflT_F-8Cbef6BRDpk0Qm-lPOhC4bcbtdIaM8yqf-cS962rGC9VdVNFVFStePppCDRcumjAgAA",
"verification_uri": "https://microsoft.com/devicelogin",
"expires_in": 900,
"interval": 5,
"message": "To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code FMTB7B3WR to authenticate."
}
1.2.1.3.2.2 Kullanıcı belirtecini alma
İstek:
POST https://login.microsoftonline.com/tenant/oauth2/v2.0/token HTTP/1.1
Accept-Charset: utf-8
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Host: login.microsoftonline.com
Content-Length: 289
Expect: 100-continue
grant_type=device_code&client_id=<registered_client_id>&device_code=FAQABAAEAAAAP0wLlqdLVToOpA4kwzSnx3SB1wjNptiBt5jFM8ePgJKGOjX-WOEksHYT3zgqz9VVg4MqY8J6Tej_rpniyj4WjOsVe-RCJuGexX-IwPKDK-df38P0zpLv5ktxSCflT_F-8Cbef6BRDpk0Qm-lPOhC4bcbtdIaM8yqf-cS962rGC9VdVNFVFStePppCDRcumjAgAA
Yanıt: authorization_pending
, kullanıcı henüz oturum açmadı.
HTTP/1.1 400 Bad Request
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 469
{
"error": "authorization_pending",
"error_description": "AADSTS70016: Pending end-user authorization.\r\nTrace ID: 60997c8b-15ed-4d12-99b6-6da879fd1400\r\nCorrelation ID: 7300aba9-1698-4a4e-b6dd-66459a828108\r\nTimestamp: 2019-09-26 23:13:43Z",
"error_codes": [70016],
"timestamp": "2019-09-26 23:13:43Z",
"trace_id": "60997c8b-15ed-4d12-99b6-6da879fd1400",
"correlation_id": "7300aba9-1698-4a4e-b6dd-66459a828108",
"error_uri": https://login.microsoftonline.com/error?code=70016
}
Yanıt: success
, kullanıcı oturum açtı, belirteç döndürülür. Bu belirteç, Evrensel Yazdırma ile yazıcı kaydetme isteği gönderirken gerekli yetkilendirme üst bilgisinde (bölüm 1.2.1.1.2'de açıklanmıştır) kullanılabilir.
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 1763
{
"token_type": "Bearer",
"scope": "https://print.print.microsoft.com/Print.Device https://print.print.microsoft.com/.default",
"expires_in": 3599,
"ext_expires_in": 3599,
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImFQY3R3X29kdlJPb0VOZzNWb09sSWgydGlFcyIsImtpZCI6ImFQY3R3X29kdlJPb0VOZzNWb09sSWgydGlFcyJ9.eyJhdWQiOiJodHRwczovL3ByaW50LnByaW50Lm1pY3Jvc29mdC5jb20iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mMGQ4ODMyMy04OGY2LTQ4MTMtOGI0ZC05NGVjNjdlNjA3YmQvIiwiaWF0IjoxNTY5NTM5Mzc3LCJuYmYiOjE1Njk1MzkzNzcsImV4cCI6MTU2OTU0MzI3NywiYWNyIjoiMSIsImFpbyI6IkFTUUEyLzhNQUFBQVA1U1NzTklCYXRVQ2UxSGZXaEdvNHhqbUM4b2RCckNpeDNaN0dyZWJUMEE9IiwiYW1yIjpbInB3ZCJdLCJhcHBpZCI6IjQxN2FlNmViLWFhYzgtNDJjOC05MDBjLTBlNTBkZWJiYTY4OCIsImFwcGlkYWNyIjoiMCIsImdyb3VwcyI6WyIzMjVhNDljOS1mNjQ0LTQxNjEtODdmZS1kZTQ5ZGEyNDhjZTkiXSwiaXBhZGRyIjoiMTY3LjIyMC4yLjE4IiwibmFtZSI6Ik1hZGVsaW5lIFN0YWdlciIsIm9pZCI6ImIzZTE1ODM0LTAxZmUtNDIwNi05MjkwLTk5OTNiMzM1MWM2MSIsInB1aWQiOiIxMDAzN0ZGRUFDRjVBNUE1Iiwic2NwIjoiUHJpbnQuRGV2aWNlIiwic3ViIjoiN2hhQzVjdEZlYjZPVHBsMHROUDJmRDJVY3pWTFRjbTZlNkQ1eEZkOEpvYyIsInRlbmFudF9jdHJ5IjoiVVMiLCJ0aWQiOiJmMGQ4ODMyMy04OGY2LTQ4MTMtOGI0ZC05NGVjNjdlNjA3YmQiLCJ1bmlxdWVfbmFtZSI6Im1hc3RhZ2VyQGNsb3VkcHJpbnRwcm9kdWN0aW9uLm9ubWljcm9zb2Z0LmNvbSIsInVwbiI6Im1hc3RhZ2VyQGNsb3VkcHJpbnRwcm9kdWN0aW9uLm9ubWljcm9zb2Z0LmNvbSIsInV0aSI6Inp2N2EtdGRrR0VHQkFSMl9zWU1UQUEiLCJ2ZXIiOiIxLjAiLCJ3aWRzIjpbIjYyZTkwMzk0LTY5ZjUtNDIzNy05MTkwLTAxMjE3NzE0NWUxMCJdfQ.Nfz82GPdQUx6py2xwhVhI4hvpbLTdaaDSVFnGx4Eb3CeJHcQvCmmKoB9Lze7YITcEcLdxUkGEQGEXSh6M3yDrNP_hsoIROdWhe6RDjbYVPmJUL319lL4eNtQTJq8bKcJVbeM5SamlY1mBIhxH_sjL4TX0NN2RnDIuF_L1NSRW0IaHoZxzf257y0n7BqPROl3VpQ97wA8P-hhVBbfwwB9i-sLbsoCVszuE9JnHpgJPm6h9FDL9Px57ddTMZDvJchxOL5gUTA76gdRqUUzLROCMlz0R7vTJotl2RQnrzZBoNNoM9iJHL2KqQKuuezHEro1453lSRASiBkZHHEOFglzSg"
}
2. Hata Yanıt Yapısı
Yukarıdaki API'ler için hata durumunda, yükte aşağıdaki hata yapısı aşağıdaki değerlerle (büyük/küçük harfe duyarlı) JSON biçiminde döndürülür. Bu hata yanıtları temel olarak geliştirme amaçlıdır ve herhangi bir şey olursa kullanıcıya ne göstereceğini geliştiriciye aittir.
Değer adı | Değer türü | Açıklama | Gerekli |
---|---|---|---|
hata | Dize | Oluşan hata türünü sınıflandırmak için kullanılan hata kodu dizesi. | Yes |
error_description | Dize | Hatanın kök nedenini tanımlamaya yardımcı olabilecek belirli bir hata iletisi. | Hayır |
error_code | integer | Sorunu tanılamaya yardımcı olabilecek ek hata kodu. | Hayır |
http_status_code | integer | Bu hata yanıtıyla döndürülen HTTP durum kodu. | Hayır |
retry_timeout | integer | Yazıcının isteği yeniden denemeden önce beklemesi gereken saniye sayısı. | Hayır |
Yukarıdaki her API olası hata kodu dizelerini listeler.
2.1 Örnek Yanıt
{
"error": "invalid_request",
"error_description": "Missing required field device_type"
}
Yazıcı kaydı sonrasında Evrensel Yazdırma hizmetiyle bağlantı
Evrensel Yazdırma pwg 5100.18 (IPP Infra) içinde tanımlanan gerekli işlevselliği destekler. Evrensel Yazdırmaya hazır yazıcıların, yazıcı kayıt işlemini tamamladıktan sonra Evrensel Yazdırma ile iletişim kurmak için bu protokolü kullanması beklenir. Çağıranın erişimi olan bir yazıcı olduğundan emin olmak için yazıcı, HTTP Authorization
üst bilgisinin Taşıyıcı değeri olarak Yazıcı Erişim Belirteci Alma bölümünde açıklandığı gibi cihaz Erişim Belirtecini kullanır.