Tworzenie i uwierzytelnianie aplikacji
Developer Application reprezentuje jeden zewnętrzny produkt. CloudPrint przechowuje publiczne informacje o aplikacji i klucze publiczne RS256, natomiast klucz prywatny pozostaje w bezpiecznym magazynie po Twojej stronie.
Utwórz Developer Account
Zaloguj się do Developer Portal zwykłym kontem CloudPrint i utwórz Developer Account dla firmy lub zespołu rozwijającego integrację. Role członków określają, kto może zarządzać aplikacjami, kluczami i instalacjami. Developer Account nie jest kontem klienta i nie zawiera drukarek.
Jedna aplikacja na jeden produkt
Zarejestruj Developer Application ze stałą nazwą, adresem strony, polityką prywatności i dokładnymi redirect URI. Otrzymany client_id jest używany w linkach instalacyjnych i JWT. Nie twórz osobnej aplikacji dla każdego klienta — połączenie klienta reprezentuje App Installation.
Skonfiguruj Redirect URI
Parametr redirect_uri w linku instalacyjnym musi dokładnie odpowiadać zarejestrowanej wartości, łącznie ze schematem, hostem, portem, ścieżką i query. Poza lokalnym środowiskiem używaj HTTPS. HTTP jest dozwolony tylko dla localhost, 127.0.0.1 i [::1]; symbole wieloznaczne, fragmenty URL i dane użytkownika są zabronione.
Dodaj klucz publiczny RS256
Wygeneruj parę kluczy RSA o długości co najmniej 2048 bitów w bezpiecznym środowisku. Do CloudPrint prześlij tylko klucz publiczny, a prywatny przechowuj w menedżerze sekretów lub HSM. CloudPrint nada kluczowi identyfikator używany jako JWT kid. Podczas rotacji najpierw wdroż nowy klucz, a stary odwołaj dopiero po przełączeniu wszystkich usług.
Twórz jednorazowy assertion JWT
Podpisz JWT z alg=RS256 i identyfikatorem aktywnego klucza w kid. Umieść client_id aplikacji w iss i sub, dokładny adres metody w aud, maksymalnie pięć minut między iat i exp oraz unikalne jti. Zsynchronizuj zegary i twórz assertion bezpośrednio przed pojedynczym żądaniem.
Sprawdzaj stan aplikacji
Developer Account, Application i klucz muszą być aktywne. Aplikacja w stanie pending_review lub suspended nie może tworzyć instalacji ani wydawać tokenów. Pokaż ten stan w swoim interfejsie zamiast bez końca ponawiać żądania.
Podpisuj wyłącznie na serwerze
Nie umieszczaj klucza prywatnego ani generatora assertion w przeglądarce, aplikacji mobilnej, CloudPrint Agent lub środowisku klienta. Pozwól podpisywać tylko usłudze wymieniającej assertion na token. Nie zapisuj pełnego JWT w logach; do celów wsparcia przechowuj CloudPrint X-Request-Id obok własnego identyfikatora operacji.
Lista kontrolna przed wdrożeniem
- Korzystaj z wychodzącego połączenia agenta; nie wystawiaj portów drukarki do internetu.
- Zapisuj stabilny identyfikator drukarki, a nie tylko jej nazwę.
- Sprawdzaj format dokumentu, rozmiar strony i orientację przed utworzeniem zadania.
- Jawnie obsługuj status końcowy, ponowienia i ochronę przed podwójnym drukiem.