Klientem VisionSoft jest jedna z największych instytucji finansowych w Polsce, posiadająca rozległą sieć placówek oraz dużą ilość pracowników.
Wewnątrz sieci klienta działa wiele różnych aplikacji, które zaspokajają różnorodne jego potrzeby biznesowe w zakresie nie objętym tzw. informatycznym systemem oddziałowym. Pojawia się problem, w jaki sposób globalnie zarządzać użytkownikami tych aplikacji oraz jak w łatwy sposób udostępnić mechanizmy autoryzacji użytkowników dla potrzeb różnych dostawców oprogramowania dla klienta. Mnogość aplikacji, z których większość implementuje własne mechanizmy zarządzania użytkownikami powoduje, że przeciętny pracownik musi zapamiętać co najmniej kilka różnych loginów i haseł do poszczególnych systemów. W sposób istotny pogarsza to bezpieczeństwo dostępu do takich aplikacji, ponieważ przytłoczeni mnogością identyfikatorów i haseł użytkownicy przechowują te informacje zapisane na przykład na karteczkach przyklejonych do monitora.
Podstawowym założeniem przy projektowaniu systemu MZU było zapewnienie uniwersalnego mechanizmu autoryzacji użytkowników w różnych aplikacjach, działających na różnych platformach i pochodzących od różnych dostawców oprogramowania. Mechanizm ten powinien zapewniać pojedynczy login i hasło przypadający na jednego użytkownika, wykorzystywane do logowania się do wszystkich korzystających z MZU systemów oraz umożliwiać skonfigurowanie specyficznego dla danej aplikacji zestawu uprawnień.
Kolejnym przyjętym założeniem funkcjonalnym była realizacji jednej aplikacji, z której w usystematyzowany sposób będzie można zbiorczo zarządzać uprawnieniami w poszczególnych systemach podłączonych do MZU, aby wyeliminować konieczność implementowania własnych rozwiązań w tym zakresie dla każdego nowo powstającego systemu.
Bardzo istotne założenie dotyczyło dołączania nowych systemów do listy aplikacji obsługiwanych przez MZU. Z jednej strony, MZU powinno zostać napisane w taki sposób, aby dołączenie dowolnej nowej aplikacji było w jak największym stopniu konfigurowalne i nie wymagało żadnych zmian w kodzie źródłowym samego modułu – a więc mogło być realizowane poprzez wyznaczonych pracowników klienta. Z drugiej strony, ze względu na fakt, że systemy już działające są napisane w różnych językach programowania i na różne platformy, MZU powinno udostępnić funkcjonalność autoryzacji użytkowników za pomocą bardzo uniwersalnego, niezależnego od platformy mechanizmu. Dla potrzeb specyficznych aplikacji musiał zostać również przewidziany mechanizm automatycznej wymiany informacji o użytkownikach za pomocą importu i eksportu danych bezpośrednio pomiędzy bazą danych modułu MZU a wskazanymi bazami danych innych systemów.
Obok implementacji powyższych założeń funkcjonalnych, Moduł Zarządzania Użytkownikami musi przede wszystkim spełniać warunek niezawodności działania oraz ciągłej dostępności w trybie on-line. Zakładając, że jeden system będzie stanowił bramę, przez którą przechodzić będzie cała autoryzacja użytkowników różnych aplikacji, system musi zostać zbudowany w taki sposób, aby jego ewentualna awaria nie uniemożliwiła pracy innym powiązanym z nim aplikacjom.
Dodatkowo, interfejs służący do zarządzania użytkownikami powinien być w maksymalnie prosty sposób dostępny z dowolnego terminala w ramach wewnętrznej sieci bankowej. Wszystkie modyfikacje zachodzące w systemie muszą być wdrażane w trybie natychmiastowym; instalacja nowych wersji oprogramowania na kilkudziesięciu tysiącach terminali użytkowników równocześnie jest rozwiązaniem nie do przyjęcia, ze względu na skalę logistyczną operacji oraz krytyczne znaczenie systemu.
Ważnym aspektem było zapewnienie bezpieczeństwa poufności informacji przechowywanych w systemie, ze względu na charakter danych, dotyczących przecież danych osobowych pracowników. Bezpieczeństwo powinno zostać zapewnione na trzech poziomach: połączenia (szyfrowane połączenie pomiędzy klientem a serwerem aplikacyjnym); bazy danych (szyfrowanie krytycznych informacji w tabelach) oraz aplikacji (nadzór nad uprawnieniami dostępu do poszczególnych danych dla zalogowanego do systemu użytkownika).
Projektując system zarządzania użytkownikami przyjęto założenie, że cele biznesowe zostaną osiągnięte jedynie wtedy, gdy system będzie zapewniać niemal 100 – procentową niezawodność oraz dobrą skalowalność i szybkość działania.
Dział IT klienta był odpowiedzialny za zapewnienie odpowiedniego sprzętu i udostępnienie sieci teleinformatycznej tak, aby spełnić wymagania odnośnie szybkości działania systemu i wydajności sieci. Oprogramowanie użytkowe zostało napisane przez firmę VisionSoft Systemy Informatyczne.
| Fakty | |
Liczba deweloperów tworzących aplikację | 5 |
Liczba miesięcy potrzebnych na zbudowanie aplikacji | 3 |
Liczba obecnie obsługiwanych aplikacji | 23, w tym 7 własnych firmy VisionSoft |
Nasz klient wspólnie z firmą VisionSoft podjął decyzję o budowie uniwersalnego modułu zarządzania użytkownikami, który mógłby zostać wykorzystany zarówno przez dotychczasowe i przyszłe aplikacje zbudowane przez firmę VisionSoft, jak również przez innych dostawców oprogramowania.
Jako platformę serwerową realizacji wybrany został system operacyjny Microsoft® Windows Server™ 2003 Enterprise Edition, z zainstalowanym Microsoft .NET Framework. Moduł bazodanowy miał zostać zbudowany w oparciu o Microsoft SQL ServerTM 2000. System został zbudowany w oparciu o deweloperskie narzędzia z pakietu Microsoft Visual Studio® .NET 2003. W obrębie platformy .NET wybrano jako język realizacji C#, ze względu na wcześniejsze doświadczenia firmy w programowaniu w tym języku oraz posiadane liczne własne komponenty, które mogły zostać wykorzystane w realizowanym systemie.
Od strony sprzętowej zdecydowano się na wykorzystanie wieloprocesorowych serwerów z procesorami firmy Intel. Platforma bazodanowa składa się z klastra fail-over dwóch serwerów Itanium64 współpracującego z macierzą dyskową. Platformę aplikacyjną stanowią 3 serwery, pracujące w klastrze typu Network Load Balancing.
Od strony architektury rozwiązania programistycznego zdecydowano się na aplikację webową, napisaną z wykorzystaniem Microsoft ASP.NET. Dostęp do aplikacji został skonfigurowany poprzez protokół SSL. Powodem takiego wyboru była chęć zapewnienia łatwego dostępu do interfejsu zarządzania użytkownikami z poziomu przeglądarki webowej, z dowolnej konsoli w sieci intranetowej klienta. Jedynym wymaganiem od strony klienta aplikacji było posiadanie zainstalowanej dowolnej przeglądarki internetowej, obsługującej 128-bitowe połączenia SSL. W znaczący sposób ułatwia to zarządzanie całym modułem; nowa wersja aplikacji po aktualizacji binariów na serwerze aplikacyjnym jest natychmiast dostępna dla wszystkich klientów, w każdym miejscu. Dodatkowo większość aplikacji napisanych przez firmę VisionSoft, dla potrzeb których konieczne było stworzenie modułu zarządzania użytkownikami, zostało napisanych w postaci aplikacji webowych ASP.NET. Dzięki temu stworzenie MZU umożliwiało w prosty sposób włączenie całego modułu do interfejsu aplikacji.
Na potrzeby aplikacji pochodzących od innych dostawców oprogramowania zdecydowano się udostępnić część funkcjonalności modułu, odpowiedzialną za autoryzację użytkowników i pobranie informacji o ich uprawnieniach, w postaci dedykowanego WebService’u. Przyjęto przy tym założenie, że całe zarządzanie użytkownikami (a więc np. tworzenie nowych czy edycja informacji o istniejących użytkownikach) powinno w całości znajdować się w dedykowanej aplikacji webowej MZU.

Rysunek 1 - Schemat architektury systemu MZU
Funkcjonalnie całość systemu została podzielona na 3 współpracujące ze sobą podsystemy:
| • | Podsystem zarządzania – aplikacja ASP.NET, dostępna poprzez dowolną przeglądarkę WWW dla pracowników. Podsystem powinien umożliwiać konfigurowanie wszystkich słownikowych aspektów MZU oraz zarządzanie danymi użytkowników i ich uprawnieniami w obrębie poszczególnych aplikacji współpracujących. |
| • | Podsystem autoryzacji – WebService przeznaczony dla aplikacji innych dostawców oprogramowania. Udostępnia funkcjonalność autoryzacji użytkownika oraz umożliwia pobranie informacji nt. jego uprawnień w ramach wskazanej aplikacji. |
| • | Podsystem synchronizacji – specjalizowane pakiety DTS, umożliwiające bezpośrednią wymianę danych pomiędzy bazą systemu MZU a bazą innego wskazanego systemu. |

Rysunek 2 - Podsystemy MZU
Podsystem zarządzania
Podsystem zarządzania odpowiada za administrowanie wszystkimi informacjami przechowywanymi w systemie. Informacje te można podzielić na trzy grupy logiczne:
| • | w pełni konfigurowalne słowniki systemu – np. drzewiasta hierarchia zależności pomiędzy jednostkami, komórki organizacyjne, stanowiska pracy, role użytkownika, uprawnienia itp.; |
| • | dane związane z aplikacjami i konfiguracją ich uprawnień; |
| • | dane poszczególnych użytkowników – zarówno dane opisowe, jak i ustawienia uprawnień w poszczególnych aplikacjach. |
Podsystem zarządzania charakteryzuje się rozdzieleniem informacji o użytkownikach systemu od informacji o ich uprawnieniach w poszczególnych aplikacjach. Dzięki temu definicja użytkownika jest wprowadzana jednokrotnie, zaś w zależności od potrzeb uprawnienia tego użytkownika w poszczególnych aplikacjach mogą być dowolnie konfigurowane
Od strony implementacyjnej, cały podsystem został napisany jako aplikacja ASP.NET, zrealizowana w architekturze trójwarstwowej. Każda z warstw stanowi osobną bibliotekę, co umożliwia łatwą integrację podsystemu ze wszystkimi aplikacjami ASP.NET, stworzonymi przez firmę VisionSoft.

Rysunek 3 - Komponenty systemu
Zarządzanie uprawnieniami
Koncepcja zarządzania uprawnieniami została oparta na systemie ról. Rola jest to nazwana grupa użytkowników. Wszystkie role dostępne w systemie zebrane są w słowniku ról. Pojedynczy użytkownik może pełnić równocześnie wiele różnych ról w danej aplikacji, czyli należeć do wielu grup użytkowników równocześnie. Role w aplikacji są zorganizowane w strukturę hierarchiczną, tzn. tworzą drzewo zależności. Przykładowo, można określić, że rola „Administrator centralny” umożliwia zarządzanie osobami o roli „Administrator regionalny” oraz „Dyrektor sprzedaży”. Konfiguracja tego drzewa jest również możliwa z poziomu interfejsu aplikacji MZU.
Dla potrzeb aplikacji, w których określenie uprawnień danego użytkownika wymaga większego uszczegółowienia, niż przypisanie go do pewnej roli, został stworzony mechanizm definiowania praw. Dla każdej aplikacji można stworzyć indywidualny słownik praw, a następnie określić, które z nich są przypisane do poszczególnej roli. System wyróżnia przy tym trzy możliwe stany przypisania uprawnienia: prawo nieustawione (nie jest brane pod uwagę), prawo ustawione dozwolone oraz prawo ustawione zabronione. Każda rola posiada indywidualnie ustawione prawa, a użytkownik może równocześnie posiadać wiele ról w danej aplikacji. W związku z tym, przy wyznaczaniu wypadkowych praw użytkownika wykonywana jest operacja logiczna OR.
Innym parametrem, przydatnym w zarządzaniu użytkownikami w organizacji o budowie hierarchicznej, jest określenie zakresu uprawnień w drzewie reprezentującym hierarchię organizacji. Również tutaj można w pełni skonfigurować ten parametr; w zależności od niego dany użytkownik np. zarządzać użytkownikami w ramach całego drzewa jednostek, z poddrzewa rozpoczynającego się od węzła, do którego jest przypisany lub tylko z węzła, do którego należy.
Ostatnim elementem związanym z uprawnieniami jest aktywność użytkownika w danej aplikacji. Aktywność określa, czy użytkownik może zalogować się do danej aplikacji. Aktywność nie jest związana z żadnymi uprawnieniami – można stworzyć użytkownika, w pełni skonfigurować jego uprawnienia, a pomimo tego do czasu decyzji administratora użytkownik ten nie może się do aplikacji zalogować. Odwrócenie aktywacji, czyli dezaktywacja, jest przydatną cechą systemu zwłaszcza w sytuacjach, gdy czasowo chcemy odciąć użytkownika od aplikacji (np. z powodu długiej choroby, wyjazdu itp.), ale nie chcemy rekonfigurować jego uprawnień.
Dodawanie obsługi nowej aplikacji
Dodanie obsługi nowej aplikacji do MZU polega na skonfigurowaniu odpowiednich słowników w MZU. Pierwszym krokiem jest dopisanie nowej aplikacji do listy obsługiwanych aplikacji. Następnie należy przygotować i wprowadzić do systemu MZU listę ról, które użytkownicy mogą pełnić w aplikacji (przykładowo: „Administrator centralny” albo „Sprzedawca”) oraz określić słownik własnych uprawnień, które następnie będzie można użytkownikom w ramach ról przypisywać (np. „Przeglądanie raportów”, „Zatwierdzanie dokumentów” itp.). Kolejnym krokiem jest utworzenie hierarchii zależności pomiędzy rolami, zgodnie z logiką działania danej aplikacji.
Definiowanie użytkowników i konfigurowanie ich uprawnień
System został zbudowany w taki sposób, aby maksymalnie uprościć definiowanie uprawnień użytkowników w nowych aplikacjach. Koncepcja opiera się o zbudowanie repozytorium informacji o pracownikach, do których można dowiązywać dowolną liczbę informacji o uprawnieniach tych pracowników w poszczególnych aplikacjach. Dane osobowe każdego pracownika klienta mogą być wprowadzone tylko raz do repozytorium, a więc nie ma potrzeby wielokrotnego definiowania użytkowników w każdej z aplikacji.
Informacje związane z użytkownikami zawierają przede wszystkim dane osobowe, jak imię, nazwisko, nr telefonu, email itp. Dodatkowo, każdy użytkownik posiada wiele tzw. profili użytkownika. Profil jest to zespół parametrów związanych z definicją użytkownika jako pracownika. Składają się na niego: umiejscowienie użytkownika w hierarchii jednostek organizacyjnych, przypisanie do komórki organizacyjnej i stanowiska oraz zestaw przypisanych ról i uprawnień w poszczególnych aplikacjach. Profil użytkownika posiada dwie daty, w zakresie których jest ważny, przy czym można ustawić profil obowiązujący od nieokreślonej przeszłości do nieokreślonej przyszłości. Zgromadzona historia zmian profili danego pracownika umożliwia śledzenie przemieszczania się użytkownika w ramach struktury organizacyjnej, wynikającego np. z awansu czy przeniesienia do innej jednostki organizacyjnej.
Zdefiniowanie pracownika w danej aplikacji polega na:
| • | w przypadku, gdy jest on wprowadzony do bazy użytkowników – określenie uprawnień tej osoby w danej aplikacji; |
| • | w przypadku gdy jest to nowa osoba, która nie znajduje się w bazie użytkowników – wprowadzenie podstawowych informacji o użytkowniku oraz określenie uprawnień tej osoby w danej aplikacji. |
Autoryzacja użytkowników
Każdy użytkownik jest identyfikowany w systemie poprzez unikalny login i hasło. Login ten jest jednakowy dla wszystkich systemów, skonfigurowanych w MZU. Logowanie się do dowolnej aplikacji wymaga podania zawsze tego samego, jednego loginu i hasła, w każdej aplikacji uprawnienia określone są jednak indywidualnie i całkowicie niezależnie.
Logowanie do danej aplikacji składa się z kilku etapów: wprowadzenia przez użytkownika danych (nazwa użytkownika – login i hasło) na formatce logowania; procesu weryfikacji (wyszukiwanie użytkownika o podanej nazwie, porównanie hasła w bazie z wprowadzonym hasłem); oraz sprawdzenia uprawnień (kontrola aktywności i uprawnień użytkownika w danej aplikacji). MZU posiada również mechanizm logowania do aplikacji z wykorzystaniem certyfikatów klienta.
System MZU wprowadza bogaty mechanizm polityki bezpieczeństwa odnośnie haseł. Nowe hasło, które jest wprowadzane do systemu, powinno mieć długość co najmniej 8 znaków i składać się ze znaków alfanumerycznych oraz co najmniej jednego znaku specjalnego. Ważność hasła wygasa po N dniach od wprowadzenia. Po wygaśnięciu hasła użytkownik może jeszcze N-krotnie, bez zmiany hasła, zalogować się do dowolnej aplikacji korzystającej z autoryzacji przez MZU. Jeśli w tym czasie hasło nie zostanie zmienione, konto użytkownika jest blokowane i jedynie administrator może takie konto odblokować. Również w przypadku zalogowania z podaniem nieprawidłowego hasła po N próbach następuje automatyczna blokada użytkownika we wszystkich aplikacjach. System pamięta N ostatnich haseł wprowadzonych przez użytkownika i uniemożliwia wprowadzenie ich jako nowego hasła. Wszystkie parametry „N” są oczywiście w pełni konfigurowalne.
Hasło jest przechowywane w bazie danych w postaci niejawnej, jako zaszyfrowany nieodwracalnym algorytmem ciągu znaków.
Współpraca z innymi systemami
Podsystem zarządzania MZU współpracuje z innymi systemami przechowującymi informacje o pracownikach klienta, w szczególności wymienia dane z systemem kadrowym. Wymiana odbywa się poprzez dedykowane DTS-y, które przeprowadzają synchronizację danych pomiędzy bazami obydwu systemów z częstotliwością miesięczną. Dzięki temu, informacje np. o nowo zatrudnionych pracownikach trafiają bezpośrednio do bazy systemu MZU i nie ma potrzeby ręcznego ich wprowadzania. Dotyczy to również zmian przypisania pracownika do hierarchii jednostek organizacyjnych, komórki czy zajmowanego stanowiska.
System MZU wyprowadza również dane w ustalonych formatach na potrzeby innych systemów, przykładowo na potrzeby systemu zarządzania użytkownikami mainframe. Dotyczy to zarówno danych związanych z konfiguracją systemu (np., hierarchia jednostek organizacyjnych), jak również uprawnień użytkowników w danej aplikacji.
Podsystem autoryzacji
Podsystem autoryzacji ma za zadanie udostępnić zewnętrznym dostawcom oprogramowania uniwersalny mechanizm autoryzacji użytkowników ich aplikacji w jednej, centralnej bazie użytkowników.
W celu autoryzacji użytkowników on-line zbudowana została aplikacja w standardzie WebService, która udostępnia informacje zdefiniowane w MZU i przechowywane w centralnej bazie użytkowników. Udostępnianie odbywa się za pomocą protokołu HTTP oraz z wykorzystaniem dokumentów XML do przesłania pobranej informacji, zgodnie ze standardem usług WWW. Dzięki temu uzyskano całkowitą niezależność dowolnego systemu od wewnętrznej reprezentacji danych użytkowników w MZU oraz możliwość odwołania się w dowolnym momencie do informacji zawartych w centralnej bazie użytkowników. Usługa udostępniająca informacje jest dostępna z dowolnego komputera w sieci klienta.
Sposób podłączenia z aplikacji klienckiej do WebService’u MZU zależy ściśle od języka programowania, w którym tworzona jest aplikacja, każde środowisko programistyczne zawiera bowiem unikalne, specyficzne dla niego API wywoływania WebService’ów. Równocześnie wszyscy wiodący producenci narzędzi programistycznych dołączają do nich wsparcie dla podłączania się do aplikacji typu WebService, np. poprzez udostępnienie obiektów COM z zaimplementowaną funkcjonalnością realizującą przetwarzanie komunikatów SOAP oraz udostępniających API programistyczne wysokiego poziomu.
Autoryzacja użytkownika przebiega w kilku etapach, z których każdy w warstwie technicznej polega na wywołaniu odpowiedniej funkcji WebService’u. Najpierw następuje próba zalogowania użytkownika do danej aplikacji za pośrednictwem MZU. Jeżeli zalogowanie przebiegnie pomyślnie, następuje pobranie informacji o bieżących uprawnieniach użytkownika w danej aplikacji, a więc lista ról oraz ustawienia szczegółowych praw użytkownika. Interpretacja zwróconych wyników leży po stronie aplikacji korzystającej z WebService’u.
WebService został napisany w języku C#, z wykorzystaniem bibliotek (zwłaszcza z warstwy Business Logic), które stworzone zostały na potrzeby podsystemu zarządzania.
Bezpieczeństwo działania
Wszelkie czynności związane ze zmianą uprawnień, haseł i innych czynności wykonywanych w ramach Modułu Zarządzania Użytkownikami są zapisywane w logu systemowym. Uprawnione osoby mogą przeglądać zapis logu, dotyczący zarówno operacji wykonywanych przez użytkownika, jak i operacji wykonanych na tym użytkowniku przez inne osoby. W logu zapisywana jest również informacja, z jakiego numeru IP korzystała osoba wykonująca dana operację.
Dodatkowo zastosowano pełną ochronę danych osobowych przechowywanych w systemie na trzech poziomach. Po pierwsze, użytkownicy aplikacji MZU mają bezpośredni dostęp jedynie do wybranych informacji o użytkownikach, którymi zarządzają. Przykładowo, podgląd numeru PESEL jest możliwy jedynie po otrzymaniu specjalnego uprawnienia od administratora systemu. Kolejnym zabezpieczeniem jest konfiguracja dostępu do aplikacji zarządzającej oraz WebService’u poprzez protokół SSL. Ostatnim elementem jest szyfrowanie krytycznych danych systemu na poziomie bazy danych. Dotyczy to np. haseł użytkowników, przechowywanych w repozytorium.
Budowa globalnego repozytorium danych pracowników.
Mnogość różnych systemów zarządzania użytkownikami poszczególnych aplikacji powodowała rozdrobnienie informacji o użytkownikach pomiędzy różne bazy danych.
Dzięki stworzeniu systemu MZU dane o wszystkich pracownikach są gromadzone w jednej, globalnej bazie danych. Dzięki mechanizmom synchronizacji bazy danych z systemem kadrowo – płacowym, dane o pracownikach przechowywane w MZU są stale aktualizowane i nie wymagają kosztownego i czasochłonnego wprowadzania ręcznego.
Dane osobowe pracowników są wykorzystywane w podłączonych do MZU aplikacjach np. na potrzeby automatycznego generowania nagłówków pism, tworzonych przez zalogowanego użytkownika czy też automatycznego wysyłania wiadomości e-mail przez system na jego skrzynkę pocztową.
Zarządzanie uprawnieniami w wielu aplikacjach dostępne poprzez uniwersalne, łatwo konfigurowalne narzędzie.
Przed stworzeniem systemu MZU każda z aplikacji tworzyła własny system zarządzania jej użytkownikami. Systemy te niejednokrotnie posiadały ubogą funkcjonalność i nie uwzględniały różnorodnych aspektów biznesowych działania organizacyjnego.
Po wdrożeniu systemu MZU wszystkie aplikacje mogą korzystać z pełnej funkcjonalności zarządzania uprawnieniami użytkowników, udostępnianej przez MZU. Dodatkowo, dołączenie obsługi nowej aplikacji polega na wykonaniu kilku prostych czynności konfiguracyjnych. Dostępne możliwości parametryzowania systemu, zwłaszcza w zakresie definiowania ról i zależności pomiędzy nimi oraz uprawnień dają niemal nieograniczone możliwości odwzorowania potrzeb biznesowych poszczególnych aplikacji w zakresie zarządzania uprawnieniami ich użytkowników.
Brak uniwersalnego, wspólnego dla wielu systemów rozwiązania powodował, że przeciętny pracownik stawał przed koniecznością zapamiętania wielu loginów i haseł do poszczególnych systemów, zaś administratorzy musieli korzystać z wielu różnych aplikacji do zarządzania podległymi sobie pracownikami.
Dzięki wdrożeniu systemu MZU Administratorzy zyskują jedno, uniwersalne narzędzie, w którym za pomocą przyjaznego interfejsu użytkownika mogą łatwo zarządzać uprawnieniami użytkowników we wszystkich aplikacjach, którymi się opiekują. Również pracownicy zyskują jeden, uniwersalny login i hasło do każdej z aplikacji podłączonej do MZU.
Scentralizowany sposób autoryzacji użytkowników.
Jednym z modułów systemu MZU jest podsystem autoryzacji, który umożliwia stworzenie jednego, centralnego węzła, przez który przechodzi autoryzacja użytkowników wszystkich aplikacji, korzystających z MZU. W połączeniu z jedną, centralną bazą użytkowników, umożliwia to rezygnację z konieczności budowania własnych rozwiązań w zakresie sprawdzania uprawnień użytkowników. Sprawdzone i przemyślane mechanizmy autoryzacyjne, zgromadzone w jednym miejscu, dają klientowi możliwość prowadzenia ściśle przemyślanej, spójnej polityki bezpieczeństwa w zakresie zarządzania dostępem do zasobów wszystkich aplikacji, które z MZU korzystają.
Warto wspomnieć również o uniwersalności zastosowanego rozwiązania. Dzięki zbudowaniu podsystemu autoryzacji w oparciu o wydajny WebService, korzystający bezpośredni z komponentów podsystemu zarządzania, bank zyskał możliwość łatwego integrowania aplikacji napisanych w różnych językach programowania na różne systemy operacyjne.
Szybkie, dobrze skalujące się rozwiązanie.
Wykorzystanie narzędzi programistycznych z pakietu Microsoft Visual Studio 2003 umożliwiło szybkie zaprojektowanie i oprogramowanie systemu przez stosunkowo niewielki zespół programistów.
Dzięki oparciu centralnej bazy danych użytkowników o Microsoft SQL Server 2000 system uzyskał wymaganą szybkość realizacji zapytań bazodanowych. Konfiguracja fizyczna całej platformy rozwiązania, oparta o Windows 2003 Server pracujący w klastrze, dała bardzo dobre wyniki w testach wydajnościowych, przy równoczesnym autoryzowaniu wielu użytkowników różnych aplikacji.