ldap directory services & identity management - os3 · maandag – uva directory services –...

61
LDAP Directory Services & Identity Management

Upload: lyminh

Post on 21-Aug-2018

237 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAPDirectory

Services & Identity Management

Page 2: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

● Maandag– UvA Directory Services– Historie LDAP– Theorie LDAP

● Woensdag– LDAP Theorie– LDAP Implementaties– LDAP Praktijk

Agenda

Page 3: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Agenda

● Definities● Waarom heeft de UvA directory services● Wat heeft de UvA gedaan● Wat heeft de UvA fout gedaan

Page 4: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

UvA

● 24.000 studenten● 5.000 medewerkers● 50-98 lokaties● 10-25 automatiseringsafdelingen● Laat duizend bloemen bloeien

Page 5: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Definities

● Directory services● Identity management● Gebruikersadministratie● Telefoonboek● LDAP● Active directory● Metadirectory

Page 6: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Zonder LDAP

Mail Web Fileserver Inbel

Gebruikersdatabase

Unix

Gebruikersdatabase

Gebruikersdatabase

Gebruikersdatabase

Gebruikersdatabase

Naam:Wachtwoord:

Page 7: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Met LDAP

Mail Web Fileserver Inbel

LDAPGebruikersdatabase

Unix

Naam:Wachtwoord:

Page 8: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Waarom directoryservices● Meer diensten● Meer controle door gebruiker ● Meer beveiliging ?● Minder beheer● Minder ondersteuning● Minder vervuiling bestanden

Page 9: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Wat heeft de UvA gedaan

● 1997 Alle studenten in LDAP● 1998 Meeste studentendiensten op LDAP● 1999 Alle medewerkers in LDAP● 2000 Active Directory● 2001 Metadirectory● 2002 Meeste medewerkersdiensten op DS

Page 10: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Diensten● Studentenmail (webmail)● UvAHomepages ● Studieweb (tentameninschrijving)● UvAInbel ● SMS diensten● Verkiezingen● UvAweb ● Blackboard

Page 11: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Gebruikersadministratie

● 1 username/password● Persoonlijke

informatie● Accepteren

voorwaarden● Introductie nieuwe

diensten

Page 12: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Netscape LDAP

Studenten SAP/HR Alumni Overigen

E-mail Inbel Web Groupware

Passwords

NOMicrosoft Active directory

MMS

Page 13: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Techniek● Netscape DS / Active directory● Schema

– Inetorgperson– Eduperson ?– MS schema– Uvaperson

● DC naming (AD)● X.500 naming (LDAP)

Page 14: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Drempels

● Veel integratie → veel belangen● Consolidatie oude administraties● Migratietrajecten● Produktondersteuning

– geen directoryondersteuning– Eigenzinnige directoryondersteuning

● Ontwikkelwerk

Page 15: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Wat heeft de UvA fout gedaan

● Voorlichting ondersteuning eindgebruiker● Te vroeg ● Te technisch● Te idealistisch● Ontwikkeling onderschat● Top down/bottom up

Page 16: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Positieve ervaringen

● Directory services zijn schaalbaar● Bespaart op beheer● Steeds meer producten

Page 17: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

What is LDAP?● Lightweight Directory Access Protocol● Used to access and update information in a

directory built on the X.500 model● Specification defines the content of

messages between the client and the server● Includes operations to establish and

disconnect a session from the server

Page 18: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Directory Services Model

DUA

DUA

DUA

DSA

DSA

DSADAP

DAP

DAP

Directory

Page 19: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAP Naming

UIDUserid

DCdomainComponent

STREETStreetAddress

CCountryName

OUOrganizationalUnitName

OOrganizationName

STStateorProvinceName

LLocalityName

CNCommonName

StringAttribute Type

Page 20: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Information Model

● Directory Information Base● Directory Entry● DIT● RDN & DN● Directory Schema● Naming Context

Page 21: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Directory Information Base

● DIB– a conceptual information model storing

information about OSI objects.– Composed of Directory entries

● Directory Entry– collection of information in the DIB about an

object in the real world.● Directory Information Tree

– Entries in the DIB are placed as nodes of a hierarchical structure called the DIT

Page 22: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

DIT Example

Page 23: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Directory Entry● Entry

– A set of attributes– attribute = attribute type + attribute value– distinguished attributes : used to name the

entry● RDN

– A set of distinguished attributes– RDN are assigned to nodes of the DIT

● DN– sequences of RDNs

Page 24: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Directory Entry

Page 25: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Operational Attributes

● creatorsName● createTimestamp● modifiersName● modifyTimestamp● subschemaSubentry: the Distinguished Name

of the subschema entry (or subentry) which controls the schema for this entry.

Page 26: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Directory Schema

DIT Structure

Object Class

Attribute Type

Attribute Syntax

Page 27: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Relationship to X.500

● LDAP is an X.500 access mechanism.● An LDAP server MUST act in accordance

with the X.500(1993).● However, it is not required that an LDAP

server make use of any X.500 protocols ( e.g. LDAP can be mapped onto any other directory system so long as the X.500 data and service model as used in LDAP is not violated in the LDAP interface.)

Page 28: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Server-specific Data Requirements

● An LDAP server MUST provide information about itself and other information that is specific to each server.

● The following attributes of the root DSE are defined. Additional attributes may be defined in other documents.

Page 29: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Referral

DSAC

request

referral (to A)

DSAB

DSAA

DUA

request

The Directory

Page 30: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

X.500● X.500 standard. CCITT 1988

– Refer ISO 9594 – X.500-X.521 of 1990

Page 31: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

X.500● Hierarchisch● Directory service● DAP als toegangsprotocol● Topzwaar niet goed te implementeren op

beschikbare systemen

Page 32: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAP servers

Page 33: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Understanding LDAP● Lightweight alternative to DAP● Uses TCP/IP instead of OSI stack● Simplifies certain functions and omits

others…● Uses strings rather than DAP’s ASN.1

notation to represent data.

Page 34: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAP● Information

– Structure of information stored in an LDAP directory.● Naming

– How information is organized and identified.● Functional / Operations

– Describes what operations can be performed on the information stored in an LDAP directory.

● Security – Describes how the information can be protected from

unauthorized access.

Page 35: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAP Information Storage

Page 36: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAP Information Storage● Each attribute has a type/syntax and a

value● Can define how values behave during

searches/directory operations● Syntax: bin, ces, cis, tel, dn etc.● Usage limits: ssn – only one, jpegPhoto –

10K

Page 37: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAP Information Storage● Each ‘entry’ describes an object (Class)

– Person, Server, Printer etc.● Example Entry:

– InetOrgPerson(cn, sn, ObjectClass)● Example Attributes:

– cn (cis), sn (cis), telephoneNumber (tel), ou (cis), owner (dn), jpegPhoto (bin)

Page 38: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAP Naming● DNs consist of sequence of Relative DN

– cn=John Smith,ou=Austin,o=IBM,c=US (Leaf 2 Root) (~use \ for special)

● Directory Information Tree (DIT)● Follow geographical or organizational

scheme● Aliases: Tree-like, ● Aliases can link non-leaf nodes

Page 39: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAP Naming● Referrals: May not store entire DIT (v3)● Referrals

– objectClass=referral, attribute=ref, value=LDAPurl

● Implementation differs– Refferals/Chaining (vendor)

● RFC 1777: server chaining is expected.

Page 40: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAP Naming● Schema

– Defines what object classes allowed– Where they are stored– What attributes they have (objectClass)– Which attributes are optional (objectClass)– Type/syntax of each attribute (objectClass)

● Query server for info: zero-length DN● LDAP schema must be readable by the

client

Page 41: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAP Functions/Operations● Authentication

– BIND/UNBIND– ABANDON

● Query– Search – Compare entry

● Update– Add an entry– Delete an entry (Only Leaf nodes, no aliases)– Modify an entry, Modify DN/RDN

Page 42: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAP Security● Current LDAP version supports

– Clear text passwords– KERBEROS version 4 authentication

● Other authentication methods possible in future versions (March 1995)

● SASL support added in version 3– Kerberos deemed stronger than SASL…

Page 43: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAP Security● Security based on the BIND model● Clear text ver 1● Kerberos ver 1,2,3 (depr)● SASL ver 3

– Simple Authentication and Security Layer– uses one of many authentication methods

● Proposal for Transport Layer Security– Based on SSL v3 from Netscape

Page 44: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAP Security● Geen● Basic Authentication

– DN en wachtwoord– Clear-text of Base 64

● SASL (RFC 2222)– Keuze voor authenticatieprotocol– Encryptie optioneel

Page 45: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAP Security● LDAP using SASL using SSL/TLS

Page 46: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Directory Client/Server Interaction

Page 47: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –
Page 48: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAPDirectory

Services & Identity Management

Page 49: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

RFC's * RFC 1777 - LDAPv2 * RFC 1778 - LDAPv2 String Representation of Standard Attribute Syntaxes * RFC 2254 - String Representation of LDAP Search Filters * RFC 1823 - LDAP API (in C) * RFC 2247 - Use of DNS domains in distinguished names * RFC 2251 - LDAPv3: The specification of the LDAP on-the-wire protocol * RFC 2252 - LDAPv3: Attribute Syntax Definitions * RFC 2253 - LDAPv3: UTF-8 String Representation of Distinguished Names * RFC 2254 - LDAPv3: The String Representation of LDAP Search Filters * RFC 2255 - LDAPv3: The LDAP URL Format * RFC 2256 - LDAPv3: A Summary of the X.500(96) User Schema * RFC 2829 - LDAPv3: Authentication Methods for LDAP * RFC 2830 - LDAPv3: Extension for Transport Layer Security * RFC 3377 - LDAPv3: Technical Specification * RFC 2307 - Using LDAP as a Network Information Service

Page 50: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Implementaties● University of Michigan● OpenLDAP● IBM Directory● Apple Open Directory ● Sun One (Netscape/Iplanet)● Novell eDirectory● Microsoft Active Directory

Page 51: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

OPENLDAP● SLAPD

– Directory server ● SLURPD

– Replicatieserver● Libraries● Tools

– Lokaal (offline)– Via server (online)

Page 52: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Schema

core.schema OpenLDAP core (required)cosine.schema Cosine and Internet X.500 (useful)inetorgperson.schema InetOrgPerson (useful)misc.schema Assorted (experimental)nis.schema Network Information Services (FYI)openldap.schema OpenLDAP Project (experimental)

edupersonlibrarypersonuvaperson

Page 53: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDIF in en exportdn: cn=Robert Smith,ou=people,dc=example,dc=com

objectclass: inetOrgPerson

cn: Robert Smith

cn: Robert J Smith

cn: bob smith

sn: smith

uid: rjsmith

userpassword: rJsmitH

carlicense: HISCAR 123

homephone: 555-111-2222

mail: [email protected]

mail: [email protected]

mail: [email protected]

description: swell guy

ou: Human Resources

Page 54: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDIF modify

dn: cn=Robert Smith,ou=people,dc=example,dc=com

changetype: modify

telephonenumber: 123-111

Page 55: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Offline commando's● slappasswd● slapadd● slapcat● slapindex

Page 56: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Online commando's● ldappasswd● ldapadd● ldapdelete● ldapcompare● ldapmodify● ldapsearch● ldapmodrdn

Page 57: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAP Search& and

| or

! not

= equal

~= approximate

>= greater

<= less

(cn=Babs Jensen)

(!( cn=Tim Howes))

(&( objectClass=Person)(|(sn=Jensen)(cn=Babs J*)))

(o=univ*of*mich*)

Page 58: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Indexing● eq Equality● pres Presence● sub Substring● aprox Approximate duur !

Page 59: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

Indexingindex uid eq

index uidNumber eq

index gidNumber eq

index memberUid eq

index cn pres,eq,sub

index sn pres,eq,sub

index objectClass pres,eq

index nisDomain eq

index nisNetgroupTriple pres,eq,sub

index memberNisNetgroup pres,eq,sub

index nisMapName eq

Page 60: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

ACLaccess to <what> [ by <who> <accesslevel> <control> ]+

access to *

by anonymous read

by * none

access to attr=userpassword

by self write

by anonymous auth

by * none

Page 61: LDAP Directory Services & Identity Management - OS3 · Maandag – UvA Directory Services – Historie LDAP – Theorie LDAP Woensdag – LDAP Theorie – LDAP Implementaties –

LDAP Proxies● Performance

– Kan subset bevatten – Load balancing

● Vertaling attribuutnamen – Aansluiten van servers met verschillend schema