Identity Management an der Universität Mainz Carsten Allendörfer Zentrum für Datenverarbeitung Johannes Gutenberg-Universität Mainz
C. Allendörfer, ZDV Uni-Mainz Inhalt Rückblick Alte Benutzerverwaltung von NT4/Unix/Oracle Probleme, Wunschvorstellung Active Directory Benutzerverwaltung Unixintegration Metadirectory für was? Demos C. Allendörfer, ZDV Uni-Mainz März 2004
Alte Benutzerverwaltung Eingesetzt für NT4, Unix (yp) implementiert als WWW-Seite mit Daten in Oracle-DB alle Aktionen werden im Moment der Eingabe in die Datenbank sofort auf NT4 und im YP durchgeführt Passwortsynchronisierung über WWW-Seite Push-Verfahren C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Probleme der alten BV Push-Verfahren Rollback von Transaktionen Probleme bei Ausfall eines der Systeme keine Delegationsmöglichkeit ! Passwortsynchronisierung unzuverlässig, umständlich für die Benutzer C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Wunschvorstellung Nur ein zentrales Verzeichnis Alle „Systeme“ gleichen regelmäßig den Ist-Zustand mit dem Soll-Zustand ab und passen sich entsprechend an. Nicht umsetzbar ! NetApp Homedirs Abgleich teilweise nicht möglich (Rename) C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Active Directory BV Anforderungen: Alle Daten sollen nur an einer Stelle gespeichert und verwaltet werden. Passwort nur an einer Stelle gespeichert Delegation von einzelnen Aufgaben an FB oder Institute soll möglich sein. Folgerungen: Kerberos muss von allen Systemen genutzt werden. LDAP nutzen - falls möglich, sonst Export. C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Problem: Delegation Beispiel: FB-Admin hat folgende Rechte: CCDC User (Create) RPWP firstname, lastname, title (read/write property) Attribute sAMAccountName, uidnumber, mail werden automatisch ausgefüllt FB-Admin legt Benutzeraccount an. Einstellung erlaubt nur die Änderung der delegierten Attribute aber: Änderung der ACL ist möglich, damit auch die Änderung von allen Attributen. C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Lösung: Delegation CreateObjectService, Aufgaben: Umwandlung von Objekten vom Typ RequestNewUser, RequestNewGroup, RequestNewOU in User, Group, bzw. OU RequestObjekte haben nur wenige Attribute wie Name, Vorname, Accountname. Syntaxprüfung vor Einrichtung des eigentlichen Objekts. Serialisierung Delegierte Rechte an User, Group und OU können nicht überschritten werden Protokollierung C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Lösung: Delegation Nachteil: Quotas im AD (ab Windows 2003) können nicht genutzt werden, dadurch DoS-Angriff möglich. falls notwendig, dann eigene Verwaltung in CreateObjectService C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Komponenten der ADBV Request Objekte bearbeitet von RequestNewObject Request(User/Group/OU)-* Attribute werden vom Dispatcher in Startwerte für Workflows umgewandelt teils für OU Admins schreibbar ADBV-* Dienste, die Einzelschritte der Benutzerverwaltung implementieren, z.B. User sperren Mailaccount anlegen C. Allendörfer, ZDV Uni-Mainz März 2004
ADBV Workflow Beispiel 1 UserMARequestFull ADBVUserSyntaxCheck ADBVUserDisable ADBVUserMailWinCreate ADBVUserUIDCreate ADBVUserPrintAccountCreate ADBVUserHomeDirCreate ADBVUserProfileCreate ADBVUserEnable C. Allendörfer, ZDV Uni-Mainz März 2004
ADBV Workflow Beispiel 2 UserLDRequestFull ADBVUserSyntaxCheck ADBVUserDisable ADBVUserUIDCreate ADBVUserPrintAccountCreate ADBVUserEnable C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz ADBV Useranlegen Active Directory Uni-Mainz.DE Request NewUser suchen User Req. del Request Create Object Service anlegen Sucht 11080, 21090, 31050 Löscht Workflow Setzt Workflow auf 31000 User Sucht User mit RequestFull Findet 31050 Dis- patcher Request Sucht 11000, 21000, 31000 Findet 31000 Setzt Workflow auf 31010 Syntax Check Setzt Workflow auf 31020 Findet 31010 Sucht 11010, 21010, 31010 Disable User Setzt Workflow auf 31030 Sucht 11020, 31020 Findet 31020 UID Create Setzt Workflow auf 31040 Findet 31030 Sucht 21030, 31030 Print Account Create Setzt Workflow auf 31050 Sucht 11040, 21040, 31040 Findet 31040 Enable C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz ADBV-Dienste Jeder Service liest seine Konfiguration aus dem AD aus – teils global, teils von OU abhängig. 4 Accounttypen: Mitarbeiter Studierender Nur Login Nur Login und Druckkonto Workflows für Gruppen und OUs Erweiterung sehr einfach im laufenden Betrieb möglich C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Datenimport Studierende: Abgleich über Textdatei werden zunächst normale Accounts, bei Freischaltung wird ADBVRequestFull gesetzt Mitarbeiteracconts Antrag über WWW-Formular, erzeugt RequestObject, das nicht umgewandelt wird Umwandlung kann durch ZDV oder OU Admin gestartet werden. C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Unixintegration YP Tabellen werden durch Export aus AD erzeugt. Solaris kann AD (aLDAP/Krb5) statt YP nutzen MIT Kerberos zur Authentisierung Heimdal inzwischen auch Probleme bei Windows 2003 Umstellung UDP/TCP für NFSv4 auch Tickets unter Unix notwendig Problem: Computeraccounts C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Metadirectory ADBV kann alle Delegations- und Administrationsaufgaben erfüllen Zusatznutzen: Synchronisierung mit nicht LDAP-aware Applikationen Synchronisierung von Teildaten zu FB Datenbanken MetaDirectory kann mit bestehender ABDV zusammenarbeiten Tests Anfang 2003, MIIS Ende 2003 gekauft. C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz MIIS Konzept (MS) MIIS MV CS CD MA Connected Data Source (CD) Any source and/or destination containing identity data Management Agent (MA) Facilitates the communication between MIIS and the CD Connector Space (CS) Staging area for inbound or outbound synchronized attributes Metaverse (MV) Central (SQL) store of identity information Matching CS entries to a single MV entry is called “join” C. Allendörfer, ZDV Uni-Mainz März 2004
Metadirectory Konzept Eigene Ergänzungen: keine Hierarchie C. Allendörfer, ZDV Uni-Mainz März 2004
Metadirectory Connectors Active Directory 2000/2003 Exchange 2000/2003 ADAM SunOne Directory (iPlanet) SQL Oracle DSML 2.0 LDAP Directory Interchange Format (LDIF) Delimited Text Fixed-Width Text Attribute-Value Pair Text NT4 Exchange 5.5 Lotus Notes 4.6 and 5.0 Novell eDirectory 8.62/8.7 C. Allendörfer, ZDV Uni-Mainz März 2004
Metadirectory Connectors Updates in 2004: IBM DB2 MA OS/390, AS/400, NT, Unix IBM Directory Server Corporate MA Development Kit Simple XML Generic LDAPv3 MA Kit RACF/ACF2/TopSecret 0S/390 Security server? C. Allendörfer, ZDV Uni-Mainz März 2004
State- vs. Event- based (MS) State-based systems are more robust Storing state information means the system knows what to expect on the connected system The system can respond if things go wrong Event-based systems can be quicker to respond Events fire in response to changes in systems, but… …events can get lost MIIS provides the “best of both” Our state based approach allows us to take a pessimistic view of connected system uptime/connectivity Our architecture allows high flexibility Runs can be controlled via schedules, events via WMI, etc. System can process only changes in the connected systems Microsoft OTG runs 1500-2000 runs per day C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Definitionen (MS) Connected Directory A connected directory is a directory, database, or other data repository that contains data that is integrated into the metadirectory Connector Space Connector Space is a storage area that is used by management agents to import data from a connected directory. In other words, the connector namespace is a staging area that is used by management agents to move data into and out of the metadirectory Each connected directory has its own area in the connector namespace, which is managed by its corresponding management agent. The contents in the connector namespace are the attributes of interest to the connected directory Management Agent (MA) A management agent connects a specific connected directory to the metadirectory. A management agent takes data from the connected directory and imports that data into the metadirectory. When data in the metadirectory is modified, the management agent also exports the data to the connected directory to keep the metadirectory synchronized with the connected directory. There is one management agent for each connected directory C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Definitionen (MS) Metadirectory The MMS metadirectory stores and integrates information from connected directories. The metadirectory consists of two logical namespaces: Connector Space and the Metaverse Metaverse The metaverse is the area of the metadirectory that contains the integrated identity information from multiple connected directories. The metaverse contains entries that represent the global, integrated view of combined objects. Therefore, all identity information about a specific person, which is stored in multiple connected directories, is synthesized into a single entry in the metaverse C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Scenarios (MS) Hire Scenario Fire Scenario Join Scenario Identity Data Aggregation Identity Data Brokering (Identity Convergence) Identity Data Integrity Enforcement C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Hire Scenario (MS) HR System File Metadirectory Contractor System Lotus Notes Notes Active Directory LDAP iPlanet Directory LDAP SQL Server SQL AD App Mode LDAP C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Fire Scenario (MS) HR System File Metadirectory Contractor System Lotus Notes Notes Active Directory LDAP iPlanet Directory LDAP SQL Server SQL AD App Mode LDAP C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Identity Joining (MS) Metadirectory HR System givenName Clark Clark sn Kent Kent JOINED Project to Metaverse title mail employeeID 007 007 telephone givenName sn title mail employeeID telephone Clark Kent 007 Lotus Notes givenName Clark sn Kennttt JOINED Join on employeeID title Reporter Reporter 007 007 mail employeeID 007 007 telephone Active Directory givenName Klarke sn Kent JOINED Join on employeeID title Superhero mail Clark@contoso.com Clark@contoso.com employeeID 007 007 telephone iPlanet Directory givenName Klarek sn Cenntt Join on employeeID JOINED title mail employeeID 008 Manual Join telephone 867-5309 867-5309 C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Attribute Flow (MS) Metadirectory FirstName LastName EmployeeID HR System givenName Clark Clark sn Kent Kent title mail employeeID 007 007 telephone givenName sn title mail employeeID telephone 007 Clark Kent Reporter 867-5309 givenName sn title mail employeeID telephone Title Lotus Notes givenName Clark sn Kennttt title Reporter Reporter mail employeeID 007 Identity Data Aggregation telephone E-Mail Active Directory givenName Klarke sn Kent title Superhero mail Clark@contoso.com Clark@contoso.com employeeID 007 telephone Telephone iPlanet Directory givenName Klarek sn Cenntt title mail employeeID 008 telephone 867-5309 867-5309 C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Attribute Flow (MS) Metadirectory FirstName LastName EmployeeID HR System givenName Clark sn Kent title mail employeeID 007 telephone givenName Clark Clark Clark Clark sn Kent Kent Kent Title Lotus Notes title Reporter Reporter Reporter Reporter givenName Clark mail Clark@contoso.com Clark@contoso.com Clark@contoso.com Clark@contoso.com sn Kennttt employeeID 007 Incorrect or Missing Information title Reporter telephone 867-5309 867-5309 867-5309 867-5309 mail employeeID 007 Identity Data Brokering (Convergence) telephone E-Mail Active Directory givenName Klarke sn Kent title Superhero mail Clark@contoso.com employeeID 007 telephone Telephone iPlanet Directory givenName Klarek sn Cenntt title mail employeeID 007 telephone 867-5309 C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Attribute Flow (MS) Metadirectory FirstName LastName EmployeeID HR System givenName Clark sn Kent title Reporter mail 007 employeeID 007 telephone 867-5309 givenName Clark sn Kent Title Lotus Notes title Superhero Reporter Superhero Superhero Superhero givenName Clark mail Clark@contoso.com sn Kent employeeID 007 title Superhero Reporter telephone 867-5309 mail Clark@contoso.com employeeID 007 Identity Data Integrity Enforcement telephone 867-5309 E-Mail Active Directory givenName Clark sn Kent title Reporter mail Clark@contoso.com employeeID 007 telephone 867-5309 Telephone iPlanet Directory givenName Clark sn Kent title Reporter mail Clark@contoso.com employeeID 007 telephone 867-5309 C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Polyarchy (MS) C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Demo Datenquellen: Windows 2003 AD Telefondatenbank (TelefonNr, Vorname, Nachname, Anzeigename, eMail) Personaldatenbank (PersonalNr, Vorname, Nachname, Titel) Ziele: AD, Telefon- und Personaldatenbank importieren und Objekte verbinden Telefonnummer und Titel in AD Exportieren C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Demo AD MA Installation MIIS Service läuft als User „miis“ MetaVerse Schema bearbeiten bzw. laden AD MA aufsetzen Rechte im AD einstellen User „miis“ zum Zugriff auf AD Container nur „OU=User,DC=Uni-Mainz,DC=DE“ Attribute: cn, comment, displayName, givenName, mail, name, ou, sAMAccountName, sn, telephoneNumber, title Attributmapping: … AD Run Profile Full Import and Sync C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Demo TelefonDB MA Telefon DB MA aufsetzen, User „miis“ zum Zugriff auf DB Join an Mailadresse (eMail -> mail) Attributmapping: TelefonNr -> telephoneNumber Run Profile definieren und ausführen C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Demo PersonalDB MA PersonalDB User „miis“ zum Zugriff auf DB Join: ? Attributmapping: Titel -> title, PersonalNr -> employeeID Runprofile festlegen und ausführen C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Demo Export Objekte im Metaverse / CS kontrollieren Attribut Precedence definieren Runprofile AD Export definieren Export erneut durchführen C. Allendörfer, ZDV Uni-Mainz März 2004
C. Allendörfer, ZDV Uni-Mainz Geplanter Einsatz AD Import fertig Export zu SunOne Directory auf Mailserver der Studierenden Export zu Applix Helpdesk z. Zt. mit eigenem Script mit AD abgeglichen Synchronisierung mit UniVIS ??? Synchronisierung mit Telefonanlage, UMS, CTI Import der Studierendendaten zum nächsten Semesteranfang Import der Personaldaten Synchronisierung mit FB Datenbanken (Mathematik, Pharmazie) nächste Woche C. Allendörfer, ZDV Uni-Mainz März 2004