Sun ONE Hints
Virtuelle Attribute: Class of Service (CoS)
Es gibt immer 2 Objekte bei der CoS Definition:
- Template Entry:
In diesem Objekt werden die Attribute mit ihren Werten abgelegt. - CoS Definition Entry:
In diesem Objekt wird die generelle CoS Defnition abgelegt wie z.B. die Art des Verwendeten CoS und der Verweis auf das Template.
Es gibt 3 Arten von CoS:
- Pointer CoS:
Hier wird das Template direkt durch die Angabe des DN identifiziert. - Indirect CoS:
Beim indirekten CoS verweist das Zeilobjekt auf das Template, welches verwendet werden soll. - Classic CoS:
Beim klassischen CoS werden aufgrund von Informationen, welche in den Zielobjekten vorhanden sind, entschieden, welches Template verwendet wird.
- Pointer CoS:
Sonstige Hinweise mit dem Umgang von CoS:
- CoS definierte Attribute funktionieren nicht in Suchfiltern
- Wird das Attribut ""userPassword" als CoS definiert, kann sich ein Benutzer nicht damit an den LDAP binden
- ACIs die als CoS defniert werden, funktionieren nicht
- Der Server macht kein Schema checking bei CoS Definitionen von "objectclass"
- Ein CoS generierter "nsRoleDN" kann nicht genutzt werden um Rollen zu generieren
- Alle CoS Templates müssen lokal sein
- Per CoS virtuelle Werte können nicht mit echten Werten kombiniert werden. (verwenden von "Multivalued CoS Attributes")
- "Filtered Rolls" können keine CoS Attribute nutzen
- Beachten Sie bitte unbedingt die Sun ONE Dokumentation zu Ihrer eingesetzten Version!
Objektklassen:
Alle CoS Objekte haben die Objektklassen:
- objectClass: LDAPsubentry
- objectClass: cosSuperDefinition
zusätzliche Objektklasse von den CoS Templates:
- objectClass: cosTemplate
zusätzliche Objektklasse von "Pointer CoS":
- objectClass: cosPointerDefinition
zusätzliche Objektklasse von "Indirect CoS":
- objectClass: cosIndirectDefinition
zusätzliche Objektklasse von "Classic CoS":
- objectClass: cosClassicDefinition
Beispiele:
Pointer CoS
dn: cn=PointerCoS,dc=siroe,dc=com objectClass: top objectClass: LDAPsubentry objectClass: cosSuperDefinition objectClass: cosPointerDefinition cosTemplateDN: cn=siroeUS,cn=data cosAttribute: postalCode dn: cn=siroeUS,cn=data objectClass: top objectClass: LDAPsubentry objectClass: extensibleObject objectClass: cosTemplate postalCode: 44438 dn: uid=wholiday,ou=people,dc=siroe,dc=com objectClass: inetOrgPerson cn: William Holiday uid: wholiday postalCode: 44438Das erste Objekt ist die CoS Definition. Sie verweist mit dem Attribut "cosTemplateDN" direkt auf das zu verwendende Template. Im Attribut "cosAttribute" wird festgelegt, welche Attribute zurückgegeben werden und wie diese zurückgegeben werden (override qualifier s.u.).
Das zweite Objekt ist das CoS Template. Es beinhaltet die eigentlichen Daten, welche zurückgegeben werden.
Das dritte Objekt ist das Zielobjekt für dieses das virtuelle Attribut generiert wird. Wird das Objekt abgefragt, dann bekommt man das Attribut "postalCode" aus dem Template zurück sofern das Attribut kein lokal gespeichertes Attribut beinhaltet.
Indirect CoS
dn: cn=indirectCoS,dc=siroe,dc=com objectClass: top objectClass: LDAPsubentry objectClass: cosSuperDefinition objectClass: cosIndirectDefinition cosIndirectSpecifier: manager cosAttribute: departmentNumber dn: uid=cfuentes,ou=people,dc=siroe,dc=com objectClass: inteOrgPerson objectClass: top objectClass: LDAPsubentry objectClass: extensibleObject objectClass: cosTemplate cn: Carla Fuentes uid: cfuentes departmentNumber: 318842 dn: uid=wholiday,ou=people,dc=siroe,dc=com objectClass: inetOrgPerson cn: William Holiday uid: wholiday manager: uid=cfuentes,ou=people,dc=siroe,dc=com departmentNumber: 318842Das erste Objekt ist die CoS Definition. Sie verweist mit dem Attribut "cosIndirectSpecifier" auf das Attribut im Zielobjekt, in diesem der DN zum Template gespeichert ist.
Das zweite Objekt dient als CoS Template.
Das dritte Objekt ist das Zielobjekt für dieses das virtuelle Attribut generiert wird. Wird das Objekt abgefragt, dann bekommt man das Attribut "departmentNumber" aus dem Template zurück sofern das Attribut kein lokal gespeichertes Attribut beinhaltet.
Classic CoS
dn: cn=ClassicCoS,dc=siroe,dc=com objectClass: top objectClass: LDAPsubentry objectClass: cosSuperDefinition objectClass: cosClassicDefinition cosTemplateDN: cn=siroeUS,cn=data cosSpecifier: employeeType cosAttribute: postalCode override dn: cn=sales,cn=siroeUS,cn=data objectClass: top objectClass: LDAPsubentry objectClass: extensibleObject objectClass: cosTemplate postalCode: 44438 dn: uid=wholiday,ou=people,dc=siroe,dc=com objectClass: inetOrgPerson cn= William Holiday uid: wholiday employeeType: sales postalCode: 44438Das erste Objekt ist die CoS Definition. Mit dem Attribut "cosTemplateDN" wird der Basis DN angegeben, wo alle Templates liegen. Im Attribut "cosSpecifier" ist definiert, welches Attribut im Zielobjekt für die Auswahl des Templates herangezogen wird. "cosAttribute" beinhaltet wieder das Attribut, welches zurückgegeben wird. "override" ist der override qualifier (s.u.).
Im Zielobjekt gibt es nun das Attribut "employeeType" aus dem Wert "sales" und dem in der CoS Defnition angegebenen Basis DN wird nun der DN zum Template wiefolgt gebildet:
dn: cn=<Wert von "employeeType">,<Wert von "cosTemplateDN">
override qualifier
Mit der "override qualifier" Angabe im Attribut "cosAttribute" in der CoS Definition kann das Rückgabeverhalten des Server bestimmt werden. Die Angabe wird hinter dem Attribut angegeben und kann folgende Werte haben:- "default" (oder keine Angabe)
reale Attribut Werte werden nicht durch virtuelle überschrieben - "override"
es werden immer die virtuellen Attribute zurückgegeben - "operational"
operational Attribute werden nur zurückgegeben wenn sie explizit vom Client angefragt werden. Sie verhalten sich wie bei "override".
Man kann allerdings nur Attribute als "operational" definieren wenn sie auch im Schema als "operational" definiert sind. - "merge-schemes"
definiert, das daß Attribut Multi-Values haben kann (von mehreren Templates oder mehreren CoS Defnitionen - s.u.)
Multivalued CoS Attribute:
Es gibt 2 Möglichkeiten für CoS Attribute um "multivalued" zu sein:- Mit "indirect" oder "classic" CoS, wenn das "Specifier" Attribut Multivalued ist. In diesem Fall werden mehrere Templates angezogen.
- Wenn mehrere CoS Definitionen existieren die dem Eintrag entsprechen und das gleiche Attribut ("cosAttribute") beinhalten und als override qualifier "merge-schemes" defniert haben, werden alle Werte zurückgegeben.
Beispiel: CoS in Verbindung mit Rollen
Aufgabe:Das Attribut: "mailboxQuota" wird als virtuelles Attribut aufgrund einer bestimmten Rolle vergeben.
dn: cn=ManagerRole,ou=people,dc=siroe,dc=com objectClass: top objectClass: LDAPsubentry objectClass: nsRoleDefinition objectClass: nsComlexRoleDefnition objectClass: nsFilteredRoleDefinition cn: ManagerRole nsRoleFilter: o=managers Desciption: filtered role for managers dn: cn=managerCOS,dc=siroe,dc=com objectClass: top objectClass: LDAPsubentry objectClass: cosSuperDefinition objectClass: cosClassicDefinition cosTemplateDN: cn=managerCOS,dc=siroe,dc=com cosSpecifier: nsRole cosAttribute: mailboxquota override dn: cn="cn=ManagerRole,ou=people,dc=siroe,dc=com",cn=managerCOS,dc=siroe,dc=com objectClass: top objectClass: LDAPsubentry objectClass: extensibleObject objectClass: cosTemplate mailboxquota: 1000000Das erste Objekt ist die Rollen-Definition ("filtered Role"). Jedes Objekt, welches auf den Suchfilter passt, bekommt das Attribut "nsRole" mit dem DN zur Rolle.
Das zweite Objekt ist die CoS Definition ("classic CoS"). Sie definiert, das die Templates sich unterhalb von DN "cn=managerCOS,dc=siroe,dc=com" befinden und die Auswahl des Templates sich im Attribut "nsRole" des Ziellobjekts befindet. Wenn das Template gefunden wurde, soll das Attribut "mailboxQuota" zurückgegeben werden und ggf. das am Zielobjekt gespeicherte "mailboxQuota" überschreiben (überlagern).
Das dritte Objekt ist das CoS Template. Es beinhaltet das mailboxQuota Attriut, welches beim Zielobjekt zurückgegeben werden soll.