Beginning from the first release of FastReport VCL 6 there is an ability to set connections for Dropbox, Google Drive, Box, OneDrive through special components – “Transports”. To improve the experience of internet transports using starts from FastReport VCL 2021.3 we have reworked authorization to OAuth2.0 by using the default browser in the operating system and extend the connection dialog.
Content:
- Łączenie z Dropbox
- Łączenie z usługą Google Drive
- Podłączanie do skrzynki
- Podłączanie do usługi OneDrive
Jakie są zalety tego podejścia?
- Użytkownik korzysta ze znanej mu przeglądarki, zaufanej przez niego, co zwiększa bezpieczeństwo.
- Żaden komponent przeglądarki nie musi być wbudowany w aplikację - zmniejsza to rozmiar końcowej aplikacji.
- Szybkość połączenia użytkownika autoryzowanego w przeglądarce, nie ma potrzeby ponownego uwierzytelniania
Połączenia do każdego z dysków w chmurze z FastReport VCL 2021.3 są podobne, jedyną różnicą jest konfiguracja połączenia po stronie usługi chmurowej. Dlatego zacznijmy od przyjrzenia się ogólnemu dialogowi połączenia.
Pola "Client ID" oraz "Client Secret" służą do wprowadzenia danych autoryzacyjnych, które generowane są z panelu ustawień magazynu w chmurze. Przyciski znajdujące się po prawej stronie pól autoryzacji pozwalają na ukrycie lub pokazanie wprowadzonych informacji. Aby uzyskać szybki dostęp do strony ustawień w przeglądarce, można użyć przycisku pytania w oknie dialogowym autoryzacji (Otwórz stronę konfiguracji). Aby zapisać otrzymany token autoryzacyjny, należy zaznaczyć pole wyboru "Zapisz token autoryzacyjny".
Token autoryzacji jest umieszczany w postaci zaszyfrowanej w rejestrze lub pliku konfiguracyjnym.
Właściwość EncryptionKey wybranego komponentu transportowego jest odpowiedzialna za klucz szyfrowania. Właściwość ta jest dostępna tylko z poziomu kodu. Programista może zmienić szyfrowanie w celu zachowania danych autoryzacyjnych w oparciu o wewnętrznie stosowaną politykę bezpieczeństwa.
Dodawanie transportu do aplikacji i ustawianie
- Przejdź do listy komponentów w środowisku programistycznym Embarcadero Rad Studio i rozwiń zakładkę "FastReport VCL Internet transports".
- Wybierz żądany składnik i dodaj go do formularza aplikacji.
Możesz użyć menu kontekstowe na komponencie. W ten sposób zostanie nawiązane połączenie bezpośrednio ze środowiska programistycznego. Kliknij na podmenu "Edit connection".
Domyślnie, transporty odpowiadają tylko na odpowiedź autoryzacyjną z przeglądarki przy użyciu portu 9898.
Jeżeli ten port jest już zajęty lub planujesz jego wykorzystanie w przyszłości, to FastReport VCL umożliwia zmianę portu poprzez ustawienie właściwości ListenerPort.
W dalszej części artykułu przyjmiemy, że domyślnie używany jest port 9898.
Rozważmy teraz kroki połączenia dla każdego z poniższych transportów:
- Dropbox.
- Google Drive.
- Box.
- OneDrive.
Ważne: Użytkownik nie musi wykonywać wszystkich poniższych czynności za każdym razem w celu autoryzacji. Ustawienie to musi być wykonane tylko raz przez administratora chmury. Po wykonaniu wszystkich kroków dane autoryzacyjne mogą być wykorzystywane przez innych użytkowników.
Łączenie z Dropbox
Gdy użytkownik chce otworzyć lub zapisać do pliku przy użyciu transportu, zobaczy standardowe okno dialogowe autoryzacji (jeśli nie został wcześniej autoryzowany).
Aby przejść do strony ustawień połączenia, kliknij na znak zapytania w prawym górnym rogu okna logowania. Spowoduje to otwarcie domyślnej przeglądarki ze stroną ustawień aplikacji Dropbox. Jeśli użytkownik nie jest autoryzowany w Dropbox, zostanie otwarta strona autoryzacji, na której należy zalogować się na swoje konto Dropbox.
Na tej stronie będziesz musiał wybrać API, poziom dostępu i określić nazwę aplikacji.
Następnie kliknij na przycisk "Create app". Nasza aplikacja została pomyślnie utworzona. Natychmiast zostaniesz przeniesiony na stronę ustawień aplikacji. Musimy przewinąć stronę do pola "App key" i "App secret".
Skopiuj pola "App key" i "App secret" do okna dialogowego autoryzacji FastReport VCL.
Wróć do strony ustawień w przeglądarce i określ "http://localhost:9898" w polu "Redirect URIs" i kliknij "Dodaj".
Zwróć uwagę, że port musi być zgodny z portem określonym we właściwości ListenerPort komponentu transportowego.
Ponadto można określić inne ustawienia, takie jak czas życia tokena autoryzacji.
Teraz należy skonfigurować uprawnienia dostępu dla aplikacji. Przejdź do zakładki "Uprawnienia" i zaznacz pola przy wymaganych uprawnieniach (odczyt i zapis plików, odczyt listy katalogów, itp.).
Po instalacji kliknij przycisk "Prześlij".
Wróć do FastReport VCL i zaznacz "Zapisz token autoryzacji" i "Zapamiętaj właściwości", jeżeli dane autoryzacji mają być zapisane. Naciśnij przycisk "Ok". Zostanie otwarte domyślne okno przeglądarki. Jeśli użytkownik nie jest autoryzowany, wymagana jest autoryzacja. Następnie pojawi się okno z ostrzeżeniem, że nie łączysz się z aplikacją.
Po naciśnięciu przycisku "Continue" (Kontynuuj) powinien pojawić się następujący dialog.
Naciśnij przycisk "Zezwalaj". Zostaniesz poproszony o zamknięcie tego okna przeglądarki.
Nasza aplikacja jest połączona, możesz zamknąć przeglądarkę.
W tym momencie można przesyłać pliki do pamięci masowej w chmurze.
Łączenie z usługą Google Drive
Standardowy dialog autoryzacji nie różni się od tego opisanego wcześniej przy połączeniu z Dropbox. Przejdźmy od razu do strony autoryzacji, gdzie należy zalogować się na swoje konto Google Drive.
Jeśli na tym koncie nie dodano wcześniej projektów do pracy z Google API, w pierwszym kroku należy utworzyć nowy projekt.
Naciśnij przycisk "Utwórz projekt".
Wprowadź nazwę projektu i naciśnij "Utwórz".
Użyj przycisku "Wybierz projekt", aby wybrać utworzony projekt.
Wybierz wcześniej utworzony projekt i naciśnij "Otwórz".
Przejdź do zakładki "OAuth consent screen". Następnie musimy określić typ użytkowników, którzy mogą korzystać z zasobów w chmurze: do użytku wewnętrznego z dostępem tylko dla użytkowników w organizacji lub dla wszystkich kont Google. W polu wyboru kliknij na przycisk "Create".
Następnie należy wpisać nazwę aplikacji oraz e-mail kontaktowy. Naciśnij " Save and continue ".
Ten krok pozwala skonfigurować obszar działania, w przypadku Google Drive można go pominąć. Kliknij na "Save and continue".
Kolejny krok pozwala na skonfigurowanie dostępu do aplikacji dla określonej grupy użytkowników. Jeśli zamierzasz od razu opublikować dostęp do aplikacji, możesz pominąć ten krok. Kliknij "Save and continue ".
Aplikacja została utworzona, przejdź do zakładki "Back to dashboard".
Przejdź do zakładki " OAuth consent screen" i kliknij "PUBLISH APP", aby uzyskać dostęp do tej aplikacji. Otwórz poniższy link i włącz Google Drive API dla tworzonego projektu poprzez naciśnięcie przycisku "Enable".
Teraz musisz stworzyć klucze autoryzacyjne, przejdź do zakładki "Credentials".
Kliknij na "Create Credentials" i wybierz "OAuth client ID".
Musisz wybrać typ aplikacji (w naszym przypadku Desktop App).
Wprowadź dowolną nazwę dla połączenia i naciśnij "Create". Zostanie utworzony klient autoryzacji.
Skopiuj pola " Client ID" i " Client Secret" do odpowiednich pól dialogowych autoryzacji FastReport VCL.
Naciśnij "Ok". Powinno otworzyć się nowe okno w domyślnej przeglądarce. Zostaniesz poproszony o wybranie konta do autoryzacji.
Następnie zobaczymy dialog, że aplikacja nie jest zweryfikowana przez Google. Naciśnij "Advanced" i przejdź do nazwy aplikacji (unsafe).
Pojawi się kolejne okno dialogowe z prośbą o przyznanie dostępu do aplikacji, wybierz prawa dostępu i naciśnij "Kontynuuj".
Okno przeglądarki można zamknąć.
Jeżeli połączenie się powiedzie, to zostanie wyświetlona standardowa przeglądarka plików FastReport VCL.
Połączenie z Box
Standardowy dialog autoryzacyjny jest taki sam jak w przypadku ostatniego połączenia. Przejdźmy bezpośrednio do strony autoryzacji, gdzie musisz zalogować się na swoje konto Box.
Naciśnij przycisk "Create New App".
Wybierz typ aplikacji. W naszym przypadku wystarczy "Custom App". Następnie należy określić metodę autoryzacji oraz nazwę aplikacji.
Wybierz "OAuth 2.0" i wprowadź nazwę aplikacji. Kliknij "Create App", a następnie przewiń do pola "Client ID" na następnej stronie z konfiguracją aplikacji.
Skopiuj wartości pól " Client ID" i " Client Secret" do odpowiednich pól w oknie dialogowym autoryzacji FastReport VCL.
Wróć do strony z ustawieniami w przeglądarce.
Wypełnij pole "OAuth 2.0 Redirect URI", podaj http://localhost:9898.
Zwróć uwagę, że port musi być zgodny z portem określonym we właściwości ListenerPort komponentu transportowego.
Jeśli wymagane są prawa zapisu do przechowywania plików - zaznacz pole "Write all files and folders stored in Box”.
Naciśnij przycisk " Save Changes".
Wrócić do okna autoryzacji FastReport VCL i kliknąć "Ok".
Otworzy się nowe okno zapraszające do zalogowania się na swoje konto. Po zalogowaniu się, naciśnij "Grant access to Box".
Jeżeli połączenie się powiedzie, to zostanie wyświetlona standardowa przeglądarka plików FastReport VCL.
Podłączanie do usługi OneDrive
Pierwszy krok nie uległ zmianie. Możesz je zobaczyć, łącząc się z Dropbox. Skonfigurujmy logowanie do konta Microsoft.
Pierwszą rzeczą, którą należy zrobić, to stworzyć nową aplikację. Kliknij na przycisk "Register an application". Kolejnym krokiem jest wpisanie nazwy aplikacji oraz Redirect URI (na dole strony).
Naciśnij przycisk "Register". Nasza aplikacja zostanie pomyślnie utworzona.
Skopiuj wartość pola " Client ID " do okna dialogowego autoryzacji FastReport VCL. Otwórz sekcję “Certificates & secrets”.
Naciśnij “New client secret”.
Wprowadź opis i wybierz datę ważności kodu. Kliknij na “Add”.
Skopiuj wartość “Value” do okna dialogowego autoryzacji FastReport VCL.
Naciśnij "Ok". W przeglądarce otworzy się nowe okno z zaproszeniem do zalogowania się na swoje konto.
Po zalogowaniu się naciśnij “Yes”.
Konfiguracja połączenia została zakończona pomyślnie. Teraz wiesz, jak połączyć się z każdym z dysków w chmurze w FastReport VCL.