WEBCON BPS Mobile – Architektura aplikacji

Facebooktwitterpinterestlinkedinmail
Dotyczy wersji: 2016.1.x; 2017.1.x; Aplikacja mobilna 2017 (wydana w styczniu); 
Autor: Marcin Kapusta

 

1. Założenia aplikacji

Aplikacja WEBCON BPS Mobile jest aplikacją ułatwiającą pracę z systemem  WEBCON BPS z poziomu urządzeń mobilnych.

Podstawowe założenia architektury aplikacji WEBCON BPS Mobile:

  • Dedykowana aplikacja dla urządzeń mobilnych wydana dla trzech platform mobilnych
    • Android OS – wsparcie od wersji 4.2
    • iOS – wsparcie dla dwu ostatnich wersji
    • Windows Phone/Windows 10 (wersja w przyszłości nie będzie rozwijana)
  • WEBCON BPS Mobile to aplikacja hybrydowa
  • Działa w trybie Online – wymaga połączenia internetowego z instalacją WEBCON BPS
  • Działa w oparciu o użytkowników podłączonego systemu WEBCON BPS

Aplikacje dla poszczególnych platform są udostępniane w sklepach aplikacji dedykowanych dla każdej z platform. Instalacja aplikacji na urządzeniu mobilnym przez użytkownika odbywa się poprzez sklep aplikacji odpowiedni dla systemu operacyjnego urządzenia.

Aplikacje mobilne są możliwe do pobrania bezpłatnie, wymagają natomiast podłączenia do instalacji WEBCON BPS, do której użytkownik ma uprawnienia. Szczegółowa konfiguracja aplikacji mobilnej została opisana w artykule: https://kb.webcon.pl/aplikacje-mobilne-webcon-bps-2015/


 

2. Aplikacja hybrydowa

Aplikacja WEBCON BPS Mobile została zaimplementowana jako aplikacja hybrydowa. Część funkcjonalności aplikacji jest zaimplementowana w formie klasycznej – jako natywna aplikacja mobilna, natomiast część funkcjonalności jest prezentowana w formie stron internetowych wyświetlonych poprzez zadokowane w aplikacji okno przeglądarki (nazywanej dalej w opisie webview).

Aplikacja mobilna dla każdej z trzech obsługiwanych platform jest zaimplementowana w ten sam sposób.

 

Część natywna

Większość funkcjonalności aplikacji jest zaimplementowana w części natywnej. Są to takie elementy jak:

  • Obsługa profili i logowania
  • Główny panel aplikacji
  • Nawigowanie po widokach udostępnionych w WEBCON BPS
  • Wyszukiwanie
  • Podgląd list elementów
  • Dodawanie i wyświetlanie załączników

 

Webview

We wbudowanym oknie przeglądarki są prezentowane w formie stron internetowych:

  • Formularze edycji i dodawania elementów

 

Uwagi do security

Ponieważ Webview jest wbudowane wewnątrz aplikacji natywnej (opakowane przez nią), aplikacja WEBCON BPS Mobile z punktu widzenia systemu operacyjnego spełnia wymagania stawiane przez każdą z platform i zachowuje się zgodnie z wytycznymi dla poszczególnych platform. Dotyczy to np. takich elementów jak:

  • Instalacja aplikacji
  • Aktualizacja aplikacji
  • Udzielanie uprawnień dla aplikacji do zasobów systemu i urządzenia

Cała komunikacja z zasobami urządzania (np. dodanie zdjęcia z aparatu jako załącznik do elementu BPS) odbywa się poprzez część natywną aplikacji. Pozwala to na wykorzystanie API do tych elementów udostępnionych przez wydawcę systemu operacyjnego. Zapewnia to również korzystanie z zasobów systemu i urządzenia w sposób zalecany przez producenta systemu operacyjnego.

Aplikacja na każdej z platform działa na standardowej wersji systemu. Nie wymaga podniesionych uprawnień lub uprawnień administracyjnych. Może działać np. w
zmodyfikowanych kompilacjach systemu Android z tak zwanym rootem (odblokowaniem dla aplikacji uprawnień administracyjnych). Jednak aplikacja WBCON BPS Mobile w żaden sposób nie korzysta z tych funkcji systemu.


 

3. Poglądowy diagram architektury

Diagram architektury aplikacji WEBCON BPS Mobile wraz z połączeniem do infrastruktury, z której ona korzysta – czyli aplikacją WEBCON BPS zainstalowaną w środowisku SharePoint.

 

Aplikacja mobilna

Aplikacja WEBCON BPS Mobile działa tylko w trybie Online. Oznacza to, że wszystkie dane prezentowane użytkownikowi oraz wprowadzane przez użytkownika są na bieżąco pobierane/przekazywane do podłączonej instancji systemu WEBCON BPS.

Część natywna aplikacji całą tą komunikację przeprowadza wywołując odpowiednie serwisy REST udostępniony w instalacji systemu WEBCON BPS. Dane biorące udział w tej komunikacji są przekazywane w formacie JSON. Dotyczy to zarówno wywołań do systemu WEBCON BPS jak i odpowiedzi do aplikacji mobilnej.

Przykładowo lista zadań aktualnego użytkownika lub lista dostępnych dla niego widoków jest pobierana przez odpowiedni serwis REST i wyświetlana w aplikacji mobilnej.

Pobieranie załączników binarnych do aplikacji mobilnej odbywa się natomiast poprzez wywołanie odpowiedniego http handlera (.ashx) udostępnianego przez WEBCON BPS i zapisanie danych binarnych jakie on zwrócił.

 

Webview

Formularze do podglądu i edycji elementów BPS są również pobierane z powiązanej aplikacji WEBCON BPS i wyświetlanej w oknie przeglądarki (web view) umieszczonym w aplikacji.

Technicznie są to standardowe strony WWW, czyli w przeglądarce jest ustawiany ich adres, a webview pobiera stronę (plik .html, .aspx) udostępnianą przez system WEBCON BPS oraz wszystkie potrzebne dodatkowe zasoby wskazane w pliku strony – czyli pliki .js, .css, grafiki i inne pliki potrzebne do zbudowania wizualnej części strony.

Dane do zaprezentowania w tych formularzach są natomiast pobierana poprze te same serwisy REST, z których korzysta aplikacja natywna. Tutaj również obowiązuje JSON jako format przesyłanych danych. Dane wprowadzone przez użytkownika są zapisywane w systemie BPS w ten sam sposób.

Wywołania serwisów REST w webview są wykonywane przez kod JavaScript znajdujący się w stronie formularza.

 

Web serwisy REST

Serwisy REST, z których korzysta aplikacja WEBCON BPS Mobile są udostępniane przez aplikację WEBCON BPS w środowisku SharePoint.

Do udostępnienia tych web serwisów są wykorzystywane wbudowane mechanizmy SharePoint (odpowiednie fabryki), które zapewniają udostepnienie tych web serwisów REST zgodnie z konfiguracją security ustawioną w danej instalacji SharePoint.

Standardowo mechanizmy SharePoint wymuszają w komunikacji autentykację NT. Z tego względu w aplikacji mobilnej jest zaimplementowana autentykacja poprzez protokół NTLM, a otrzymany w ten sposób token security jest dołączany do wszystkich wywołań serwisów REST realizowanych przez aplikację mobilną. Jest to weryfikowane i walidowane na poziomie SharePoint’a. Do systemu WEBCON BPS docierają już tylko zautoryzowane przez SharePoint żądania.

Również konfiguracja SharePoint decyduje o zabezpieczeniach takiej komunikacji na poziomie transportu. Przykładowo w instalacji SharePoint, gdzie witryny są udostępnione przez protokół https, również cała komunikacja pomiędzy aplikacją mobilna a systemem WEBCON BPS odbywa się tym protokołem.

Wszystkie serwisy REST są udostępnione w odpowiednim folderze SharePoint:

  • https:\\serwer.domena\_vti_bin
  • https:\\serwer.domena\_layouts

 

Dane formularzy

W przypadku formularzy (stron WWW) wyświetlanych w web view, do aplikacji mobilnej pobierane są pliki stron, javascript, styli, obrazków itp.

Te pliki są analogicznie do serwisów REST udostępniane w specjalnych folderach SharePoint. Tutaj również SharePoint wymusza autentykację zgodną z ustawieniami instalacji. Również SharePoint zapewnia, że kod serwerowy stron www otrzymuje właściwy kontekst zautentykowanego użytkownika. Natomiast mechanizmy WebView (analogicznie do standardowych mechanizmów przeglądarek) zapewniają przekazywanie tokenów security do każdego żądania pliku.

Pliki formularzy oraz handlery do pobierania danych binarnych są udostępniane w SharePoint w folderach

  • https:\\serwer.domena\_vti_bin
  • https:\\serwer.domena\_layouts

 

4. Wymiana danych z WEBCON BPS

Z punktu widzenia zarządzania danymi przechowywanymi w systemie WEBCON BPS aplikacja WEBCON BPS Mobile działa przy założeniach:

  • Wymaga aktywnego połączenia sieciowego. Dodatkowo urządzenie mobilne i serwer SharePoint, do którego się łączy, muszą być w tej samej sieci. Oznacza to, że odpowiednie adresy SharePoint muszą być udostępnione publicznie lub urządzenie musi być podłączone do sieci wewnętrznej poprzez odpowiedni VPN. Rodzaj aplikacji i zabezpieczeń VPN zależy od konfiguracji sieci.
  • Wszystkie dane wyświetlane i wprowadzane przez użytkownika są przesyłane do systemu WEBCON BPS i przechowywane w bazie tego systemu. Nie są one przechowywane trwale w urządzeniu mobilnym
  • Z poziomu aplikacji mobilnej istnieje możliwość pobrania plików z systemu WEBCON BPS i zapisania ich w pamięci urządzenia mobilnego
  • W aplikacji mobilnej mogą być przechowywane dane do logowania użytkowników SharePoint (tym samym BPS). Jest to możliwe o ile użytkownik wybierze taką opcję. Wprowadzone w ten sposób hasła są przechowywane w odpowiednich repozytoriach w systemie (każda platforma udostępnia do tego własne mechanizmy) i nie ma możliwości odczytania zapamiętanego hasła.

 

5. Zabezpieczenie aplikacji mobilnej przed nieuprawnionym dostępem

Aplikacja mobilna posiada możliwość zabezpieczenia dostępu za pomocą PIN’u, który należy podawać każdorazowo przy otwieraniu aplikacji. Ma to na celu utrudnienie dostępu do danych systemu dla osób niepowołanych w przypadku, gdy użytkownik zapisał w profilu aplikacji dane dostępowe do systemu.

Począwszy od wersji 2016.1.3.x systemu WEBCON BPS wprowadzono możliwość definiowania centralnie przez administratora systemu WEBCON BPS zasad zabezpieczania aplikacji mobilnej na urządzeniu użytkownika.

 

Parametr „Wymagany poziom zabezpieczenia aplikacji mobilnej” określa minimalny poziom zabezpieczenia aplikacji na urządzeniu mobilnym.

Administrator może wybrać opcje:

  • Zależny od użytkownika: Poziom zabezpieczenia aplikacji na urządzeniu mobilnym nie jest narzucony i jest zależny od konfiguracji ustawionej przez użytkownika aplikacji (możliwy brak zabezpieczeń).
  • Wymagane zabezpieczenie aplikacji kodem PIN: Aby korzystać z aplikacji na urządzeniu mobilnym, należy przy jej uruchomieniu podać kod PIN wspólny dla wszystkich profili użytkownika.
  • Wymagane zabezpieczenie profilu hasłem: Użytkownik musi podawać hasło przy każdej próbie dostępu do profilu utworzonego w aplikacji mobilnej.

 

6. Udostępnianie systemu WEBCON BPS na aplikacje mobilne

Opis aplikacji, sposobu konfiguracji urządzeń i procesów opisano w artykule: https://kb.webcon.pl/aplikacje-mobilne-webcon-bps-2015/

Aplikacja mobilne WEBCON zostały napisane w technologii hybrydowej. Oznacza to, że składają się z części natywnej dla danego systemu operacyjnego (Android, IOS, Windows) oraz części „webowej/serwerowej” opartej na HTML5.

Część natywna aplikacji odpowiada za nawigację po systemie, logowanie, menu, listy elementów, sortowanie, filtrowane etc..

Część „webowo/serwerowa” odpowiada za prezentację formularzy systemu WEBCON BPS.

Aplikacja mobilna komunikuje się z serwerem Sharepoint przy pomocy standardowego protokołu HTTP z wykorzystaniem REST. Dla zapewnienie bezpieczeństwa sesji komunikacji można stosować protokół HTTPS (zalecane).

Aby zapewnić komunikację z serwerem Sharepoint należy odpowiednio opublikować serwer Sharepoint w internecie.

Podczas publikacji warto oprzeć się o artykuły producenta Sharepoint:

https://technet.microsoft.com/en-us/library/jj635881.aspx

https://technet.microsoft.com/pl-pl/library/jj635878.aspx

Jeżeli firma nie planuje publikacji pełnej witryny sharepoint, ale tylko dostęp dla aplikacji mobilnych należy opublikować katalogi wirtualne:

  • https:\\serwer.domena\_vti_bin
  • https:\\serwer.domena\_layouts

W przypadku, gdy system WEBCON BPS działa nie tylko na witrynie głównej, ale również na podwitrynach np. \witryna1; \witryna2 – należy również opublikować:

  • https:\\serwer.domena\witryna1\_vti_bin
  • https:\\serwer.domena\witryna2\_layouts
  • https:\\serwer.domena\witryna2\_vti_bin
  • https:\\serwer.domena\witryna2\_layouts

Ograniczenie publikacji serwera Sharepoint jest możliwe przy użyciu wielu firewall z funkcjonalnością ALG (Application Layer Gateway) np. Microsoft TMG, F5, CheckPoint i inne.

Autentykacja użytkownika z urządzenia mobilnego odbywa się za pomocą protokołu NTLM, należy więc pamiętać, by dostępny był ten sposób autentykacji.

Jeżeli polityka bezpieczeństwa firmy nie zezwala na publikację serwera Sharepoint z systemem WEBCON BPS w publicznym Internecie, można wówczas zrealizować dostęp z aplikacji mobilnej do WEBCON BPS np. poprzez:

  1. wymuszenia zestawienia kanału VPN pomiędzy urządzeniem mobilnym, a serwerem WEBCON BPS, przed uruchomieniem aplikacji mobilnej.
  2. Wykorzystania dodatkowych systemów do zarządzania urządzeniami mobilnymi np. Samsung Knox, Mobile Iron etc.., które mogą zapewnić konteneryzację aplikacji na urządzeniu mobilnym, oraz automatyczny bezpieczny kanał komunikacyjny pomiędzy urządzeniem mobilnym, a siecią wewnętrzną firmy.