centralne uwierzytelnianie i autoryzacja użytkowników za ... · użytkowników systemu oracle....
Post on 28-Feb-2019
221 Views
Preview:
TRANSCRIPT
XV Seminarium PLOUG Warszawa Maj 2007
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle
Application Server Identity Management
Maciej Zakrzewicz PLOUG, Politechnika Poznańska
mzakrzewicz}@cs.put.poznan.pl Informacja o autorze. Pracownik Instytutu Informatyki Politechniki Poznańskiej oraz prezes Zarządu Stowarzyszenia Polskiej Grupy Użytkowników Systemu Oracle. Zainteresowania naukowe obejmują eksplorację danych (data mining), systemy baz danych/hurtowni danych oraz technologie internetowe. Dla krajowych i zagranicznych uniwersytetów oraz przedsiębiorstw (m.in. Niemcy, Wielka Bryta-nia, USA, Słowacja, Słowenia) prowadzi wykłady i szkolenia z zakresu projektowania i implementacji systemów informatycznych. Kieruje i doradza w projektach informatycznych realizowanych w architekturach internetowych. Autor ponad 100 publikacji z zakresu odkrywania zbiorów częstych, przetwarzania zapytań eksploracyjnych, adaptatywnych serwerów WWW, technik indeksowania baz danych, strojenia systemów baz danych, standardów Java dla baz danych i dla aplikacji wielowarstwowych. Współtwórca serii konferen-cji i seminariów PLOUG, służących transferowi wiedzy i technologii wśród krajowych przedsiębiorstw informatycznych.
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle Application... 45
Struktura prezentacji
• Wprowadzenie do Oracle Application Server 10g Identity Management
• Oracle Internet Directory• Uwierzytelnianie użytkowników bazy danych za pomocą
Oracle Internet Directory• Single Sign-On Server• Uwierzytelnianie Single Sign-On dla aplikacji obcych• Podsumowanie
Wprowadzenie do Oracle Application Server 10g
Identity Management
46 Maciej Zakrzewicz
Produkty OAS10g
Web Cache
MiddleTier
MiddleTier
MiddleTier
...
IdentityManagement
MetadataRepository
Web Cache – przyjmuje nadchodzące żądania, rozprasza żądania pomiędzy dostępne serwery aplikacji (klaster), buforuje i przekazuje odpowiedzi na żądania Middle Tier – na żądanie użytkownika wykonuje aplikacjęIdentity Management – uwierzytelnia i autoryzuje dostęp użytkownika do aplikacjiMetadata Repository – przechowuje definicje użytkowników, ich hasła, uprawnienia, parametry konfiguracyjne serwera aplikacji, kod niektórych rodzajów aplikacji
Infrastructure
AS Cluster
Oracle Application Server 10g (OAS10g)
• OAS10g to rodzina produktów umożliwiających budowę środowiska serwera aplikacji
• W skład OAS10g wchodzą cztery rozłączne produkty:– OracleAS Web Cache – serwer buforujący– OracleAS Middle Tier – serwer aplikacji– OracleAS Identity Management – serwer zarządzania
bezpieczeństwem– OracleAS Metadata Repository – repozytorium metadanych
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle Application... 47
OracleAS Middle Tier
Oracle HTTPServer (OHS)
żądania HTTP
Oracle Containersfor J2EE (OC4J)
Forms Services
Reports Services
Discoverer
Portal
Web Services
serwlety Java, JSP, EJB
formularze Oracle Forms 9i
raporty Oracle Reports 9i
raporty OracleDiscoverer
komponenty SOAP WebServices
procedury PL/SQL
portlety PL/SQL
programy CGI, FastCGI, Perl CGI
pliki HTML, XML, ...
portlety Java
OracleAS Web Cache
Oracle Web Cache
żądania HTTP
pamięć buforowa
żądania HTTP
...
Web Cache Manageradministrator
OPMN
48 Maciej Zakrzewicz
Identity Management
Oracle HTTPServer (OHS)
Oracle Containersfor J2EE (OC4J)
Oracle Internet Directory (OID)
Oracle CertificateAuthority (OCA)
Single Sign-On Server (SSO)
Delegated AdministrationService (DAS)
HTTP
LDAP
HTTP
Identity Management - komponenty
• Oracle Internet Directory (OID) to serwer LDAP, wykorzystywany przez OAS10g do przechowywania nazw, haseł i uprawnień użytkowników oraz niektórych parametrów konfiguracyjnych OAS10g
• Delegated Administration Service (DAS) to narzędzie dla administratora i użytkowników, dostępne przez przeglądarkę WWW, umożliwiające modyfikacje definicji użytkowników i ich uprawnień w OID
• Single Sign-On Server (SSO) to centralny serwer uwierzytelniania użytkowników, do wykorzystania przez aplikacje zainstalowane na OAS10g
• Oracle Certificate Authority (OCA) to automatyczny komponent służący do wydawania i walidacji certyfikatów klucza publicznego dla użytkowników końcowych
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle Application... 49
Metadata Repository
• Metadata Repository (MR) to baza danych Oracle10g, przechowująca:– niektóre parametry konfiguracyjne OAS10g– kod aplikacji zrealizowanych w technologii Oracle Portal i Oracle
Discoverer– katalogową bazę danych Oracle Internet Directory
• MR jest zbiorem schematów użytkowników utworzonych w standardowej bazie danych Oracle9i
• MR znajduje się w bazie danych zainstalowanej podczas instalacji OAS10g lub w istniejącej wcześniej bazie danych Oracle9i (MR instalowane za pomocą Repository Configuration Assistant)
Oracle Internet Directory
50 Maciej Zakrzewicz
Hierarchiczna katalogowa baza danych
• Gromadzi i udostępnia wpisy zorganizowane w strukturę drzewiastą
• Każdy wpis zawiera zbiór atrybutów z wartościami• Najczęściej wykorzystywana do
– implementacji książek adresowych e-mail– opisu zasobów systemowych– przechowywania parametrów konfiguracyjnych– przechowywania definicji, haseł i uprawnień użytkowników
• LDAP: standard dla hierarchicznych katalogowych baz danych– uproszczenie X.500– definiuje obiektową drzewiastą strukturę danych - DIT (Directory
Information Tree)– protokół komunkacyjny/język zapytań/API dla C, Javy, Perla, PHP, itd.– rozproszenie, replikacja
Directory Information Tree
root
PolitechnikaPoznańska
Wydział Informatykii Zarządzania
MaciejZakrzewicz
cn: maciej
imię: Maciej
nazwisko: Zakrzewicz
telefon: 616652993
hasło: *****
cn: pp
nazwa: PolitechnikaPoznańska
ulica: Piotrowo 2
miasto: Poznań
klucz główny - distinguished name (DN):cn=maciej, cn=wiiz, cn=pp
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle Application... 51
Oracle Internet Directory (OID)
• System zarządzania bazą danych LDAP v3• Składnik Oracle Application Server 10g• Wykorzystywany do przechowywania definicji, haseł i
uprawnień użytkowników• Używany także do gromadzenia wybranych parametrów
konfiguracyjnych Oracle Application Server 10g, np.:– parametry Oracle Portal– definicje farmy serwerów– certyfikaty PKI
Struktura DIT w OID
root
OracleContextOracleSchemaVersionServer Configurations
pl
poznan
put
Users Groups
maciej marek pracownicy administratorzy
dn: cn=maciej,cn=Users,dc=put,dc=poznan,dc=pl
identitymanagementrealm
52 Maciej Zakrzewicz
Definicja osoby w OID DIT
• cn - "krótka" nazwa użytkownika• createtimestamp - data utworzenia• creatorsname - nazwa "dn" osoby, która utworzyła definicję• employeenumber - numeryczny identyfikator osoby• givenname - imię• mail - adres e-mail• modifytimestamp - data ostatniej modyfikacji• sn - nazwisko• telephonenumber - numer telefonu• title - stanowisko• userpassword - hasło
Definicja grupy w DIT OID
• cn - "krótka" nazwa grupy• createtimestamp - data utworzenia• creatorsname - nazwa "dn" osoby, która utworzyła definicję• description - nazwa opisowa• displayname - nazwa wyświetlana przez narzędzia• modifytimestamp - data ostatniej modyfikacji• uniquemember - lista nazw "dn" członków grupy
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle Application... 53
Architektura OID
OID
żądania LDAP
ODS Oracle 10g RDBMS
odwzorowania drzewo-tabele
Metadata Repository
Uruchamianie i zatrzymywanie OID
Application Server Control
C:\Oracle\infra\opmn\bin>opmnctl stopproc ias-component=OID
opmnctl: stopping opmn managed processes...
C:\Oracle\infra\opmn\bin>opmnctl startproc ias-component=OID
opmnctl: starting opmn managed processes...
OPMNCTL
54 Maciej Zakrzewicz
Administrowanie OID: Oracle Directory Manager
• "orcladmin" - predefiniowane konto administratora (opis poza DIT)• uruchamianie komendą "oidadmin"
Definicja osoby w Oracle Directory Manager
atrybut wartośćwęzeł
DIT
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle Application... 55
Definicja polityki obsługi haseł
Okres ważności hasła, minimalna liczba znaków, liczba cyfr, niedozwolone hasła, rozmiar historii haseł, maksymalna liczba pomyłek, okres blokowania konta, itp.
Zmiana hasła administratora OID
• Definicja administratora OID (orcladmin) nie jest przechowywana w DIT
• Do zmiany hasła administratora służy zakładka "System Passwords"
56 Maciej Zakrzewicz
orcladmin vs. orcladmin
• Istnieje dwóch (lub więcej) użytkowników o nazwie "orcladmin"
• Administrator OID: "cn=orcladmin"• Administrator lokalny, związany z Identity Management
Realm: "cn=orcladmin,cn=Users,dc=put,dc=poznan,dc=pl"• Administrator lokalny może zarządzać wyłącznie obiektami
znajdującymi się w jego drzewie Identity Management Realm
Delegated Administration Service (DAS)
• Narzędzie WWW umożliwiające tworzenie i edycję definicji osób i grup w DIT OID
• Wygodniejsze w obsłudze od Oracle Directory Manager• Może być wykorzystywane przez użytkowników końcowych w
celu zmiany hasła lub przeszukiwania katalogu• Jedna instalacja obsługuje jeden Identity Management Realm• Logowanie poprzez SSO
PrzeglądarkaPrzeglądarka
OHSOC4J
DAS
OID MR
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle Application... 57
Wywołanie DAS
Logowanie
Definicja nowej osoby
Lokalny "orcladmin"
58 Maciej Zakrzewicz
Edycja definicji osoby
Pozostałe narzędzia OID
• ldapadd• ldapaddmt• ldapbind• ldapcompare• ldapdelete• ldapmoddn• ldapmodify• ldapmodifymt• ldapsearch • bulkload• ldifwrite• bulkmodify• bulkdelete
ldapdelete -h localhost -p 389 -D "cn=orcladmin" -w "welcome1" "cn=maciej,cn=Users,dc=poznan,dc=pl"
Np. usunięcie węzła z DIT:
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle Application... 59
Uwierzytelnianie użytkowników serwera bazy danych z użyciem OID
Wprowadzenie
• W podstawowej konfiguracji, serwer bazy danych Oracle 10g przechowuje hasła użytkowników w tabelach słownika danych (sys.user$)
• Uwierzytelnianie użytkownika polega na porównaniu zakodowanego hasła wprowadzonego przez użytkownika z hasłem zapisanym w słowniku danych
• Istnieje możliwość powierzenia zadania uwierzytelniania użytkownika bazy danych zewnętrznemu serwerowi LDAP, np. OID
bazadanych
OIDnazwa, hasło DN, hasło
60 Maciej Zakrzewicz
Konfiguracja uwierzytelniania przez OID
• Powiązanie serwera bazy danych z OID• Rejestracja serwera bazy danych w OID• Tworzenie kont użytkowników uwierzytelnianych przez OID• (opcjonalnie) Tworzenie kont użytkowników typu
"Enterprise", nie posiadających odrębnych schematów w bazie danych
Powiązanie serwera bazy danych z OID
Directory Usage Configuration
parametry połączeniaz OID
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle Application... 61
Powiązanie serwera bazy danych z OID
# ldap.ora Network Configuration File: C:\Oracle\infra\network\admin\ldap.ora# Generated by Oracle configuration tools.
DIRECTORY_SERVERS= (localhost:389:636)DEFAULT_ADMIN_CONTEXT = "dc=localhost,dc=com"DIRECTORY_SERVER_TYPE = OID
ldap.ora
Lokalizacja bazy danychw organizacji
Rejestracja serwera bazy danych w OIDUżytkownik uprawnionydo rejestrowania bazy danych(cn=orcladmin)
62 Maciej Zakrzewicz
Utworzenie konta użytkownika uwierzytelnianego przez OID
SQL> create user maciej
identified globally as 'cn=maciej,cn=users,dc=poznan,dc=pl;
Utworzono użytkownika.
SQL> grant connect to maciej;
Pomyślnie przyznano uprawnienia.
SQL> connect maciej/welcome1
Połączono.
małe "u"
Single Sign-On Server
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle Application... 63
Single Sign-On Server (SSO)
• Składnik Oracle Application Server 10g umożliwiający pojedyncze uwierzytelnianie użytkowników w imieniu wielu aplikacji
• Korzysta z definicji użytkowników zgromadzonych w OID• Może być wykorzystywany w celu ochrony dostępu do
aplikacji Java EE, Portal, Forms, Reports, itp.
Działanie SSO (1/3)
PrzeglądarkaPrzeglądarka
OHS aplikacja1żądanie uruchomienia aplikacji
2
mod_sso
czy uwierzytelniony? nie.
OHSOC4J
SSO
3 przekierowanie
4
wywołaniestrony logowania
4
OID MR
5weryfikacjanazwy i hasła
64 Maciej Zakrzewicz
Działanie SSO (2/3)
PrzeglądarkaPrzeglądarka
OHS aplikacja4żądanie uruchomienia aplikacji + SSO_ID
5
mod_sso
czy uwierzytelniony? tak.
OHSOC4J
SSO
3 przekierowanie
2
wysłanie zmiennej Cookiez identyfikatoremsesji (SSO_ID)
2
OID MR
rejestracja nowejsesji w tablicy sesji1
6uruchomienie aplikacji
Działanie SSO (3/3)
PrzeglądarkaPrzeglądarka
OHS aplikacja1żądanie uruchomienia aplikacji + SSO_ID
2
mod_sso
czy uwierzytelniony? tak.
OHSOC4J
SSO
OID MR
3uruchomienie aplikacji
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle Application... 65
Działanie SSO
Konfiguracja OHS w celu użycia SSO
<Location /efka>require valid-userAuthType Basic
</Location>
mod_osso.conf
pozwól korzystać z aplikacji dowolnemu użytkownikowi uwierzytelnionemu przez SSO
ścieżka dostępu do aplikacji
Po zmianie ustawień konieczny restart OHS!
66 Maciej Zakrzewicz
Autoryzacja użytkownika: Java EE
out.println("<h2>Parametry z Oracle Single Sign-On</h2>");
out.println("Remote user: " + request.getRemoteUser());
out.println("Osso-User-Dn: " + request.getHeader("Osso-User-Dn"));
out.println("Osso-User-Guid: " + request.getHeader("Osso-User-Guid"));
out.println("Osso-Subscriber: " + request.getHeader("Osso-Subscriber"));
Dane przekazywane aplikacji Java EE mogą być użyte przez programistę w implementacji kodu autoryzującego.
Autoryzacja deklaratywna Java EE (1/2)
<security-constraint>
<web-resource-collection>
<web-resource-name>menu</web-resource-name>
<url-pattern>/efka/menu.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admins</role-name>
</auth-constraint>
</security-constraint>
web.xml
<security-role-mapping name="admins">
<group name="administratorzy" />
</security-role-mapping>
<jazn provider="LDAP" location="ldap://localhost:389" />
orion-application.xml
grupa OID
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle Application... 67
Autoryzacja deklaratywna Java EE (2/2)
Wskaż OID jako repozytorium danych o użytkownikach
Uwierzytelnianie użytkowników Oracle Forms/Reports
• OID gromadzi obiekty definiujące parametry połączenia użytkownika z bazą danych, tzw. RAD (Resource Access Descriptor)
• Każdy użytkownik OID może posiadać własne obiekty RAD, bądź korzystać z publicznych
• Obiekty RAD mogą być definiowane za pomocą DAS• W celu skorzystania z SSO, plik formsweb.cfg powinien
zawierać parametr "ssoMode=true"
PrzeglądarkaPrzeglądarka FormsServices
SSO OID
RAD
1
2
3
4
bazadanych
68 Maciej Zakrzewicz
Definiowanie Resource Access Descriptors (RAD)
...
Uwierzytelnianie SSO dla aplikacji obcych
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle Application... 69
Aplikacje obce (zewnętrzne)
• SSO może także służyć do uwierzytelniania użytkowników w imieniu aplikacji, które nie są kompatybilne z SSO
• Aplikacje WWW, które korzystają z formularzy logowania• SSO może zapamiętać nazwy i hasła użytkowników dla
aplikacji obcych, a następnie "ominąć" standardowy formularz logowania (pod warunkiem zalogowania do SSO)
• Konfiguracja wymaga znajomości HTML
PrzeglądarkaPrzeglądarka aplikacjaobca
SSOobcy użytkownik
obce hasło
użytkownikhasło SSO
Konfiguracja SSO: rozpoznanie aplikacji
<form action="redirect.php" method="post"> ...<b>Logowanie do SquirrelMail</b>Użytkownik: <input type="text" name="login_username" value="" /> Hasło:<input type="password" name="secretkey" /> <input type="hidden" name="js_autodetect_results" value="0" /> <input type="hidden" name="just_logged_in" value="1" /> <input type="submit" value="Logowanie" /> ...</form>
70 Maciej Zakrzewicz
Konfiguracja SSO: definicja metody dostępu
"Wydobyte" z kodu źródłowego formularza HTML
Konfiguracja SSO: definicja metody dostępu
"Wydobyte" z kodu źródłowego formularza HTML
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle Application... 71
Korzystanie z uwierzytelniania przez SSO
Pytanie o nazwę i hasło tylko przy pierwszym odwołaniu
Instalacja Oracle Application Server 10g Identity Management
72 Maciej Zakrzewicz
Uruchomienie instalatora, katalogi
Program instalacyjny: setup.exe (MS Windows) lub runInstaller (UNIX)
Katalog instalacyjny
Wybór produktów
Instalacja IdentityManagement i Metadata Repository
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle Application... 73
Instalacja zintegrowana lub rozproszona
IM i MRna tym samymserwerze
RozproszonainstalacjaIM i MR
Alokacja numerów portów
Automatycznylub manualnyprzydział portówTCP do komponentów
74 Maciej Zakrzewicz
Struktura drzewa DIT
Wybór IdentityManagement Realm
Parametry bazy danych MR
Parametry konfigu-racyjne serwera bazy danych MR
Centralne uwierzytelnianie i autoryzacja użytkowników za pomocą Oracle Application... 75
Hasła w bazie danych
Hasła dla kluczowychkont bazy danych MR
Nazwa instancji, hasło administratorów
Wybór nazwy instancji IMi hasła administratoraApplication ServerControl
76 Maciej Zakrzewicz
Podsumowanie
Podsumowanie
• Funkcje uwierzytelniania i autoryzacji użytkowników jako usługi systemowe– bezpieczeństwo– wygoda administrowania– wygoda użytkowania
• Role OID i SSO• Mechanizmy dodatkowe:
– współpraca z zewnętrznymi systemami uwierzytelniania, np. Microsoft Active Directory
– archiwizacja i odtwarzanie - OracleAS Recovery Manager– środowiska o podwyższonej niezawodności - klastry i OracleAS
Disaster Recovery
top related