stoney core: OpenLDAP directory data organisation

From stoney cloud
Revision as of 10:30, 24 July 2013 by Michael (Talk | contribs)


Jump to: navigation, search

Abstract

This document describes the OpenLDAP directory data organisation for the stoney cloud. This directory is the only database for all the services, which are manageable through the web interface of the stoney cloud.

Some titles have numbers in brackets. These numbers reflect the stoney cloud version, in which these entries have been added or modified.

Introduction

All Service-, User- and Billing-Data ist stored in the OpenLDAP directory. The directory runs in Multi-Master Mirror-Mode for high availability.

Data Organisation

The following chapters explain the data organisation of the stoney cloud OpenLDAP directory.

root

The following LDIF shows the root entry of the whole OpenLDAP directory tree for the stoney cloud:

dn: dc=stoney-cloud,dc=org
objectclass: top
objectclass: dcObject
objectclass: organization
dc: stoney-cloud
o: stoney-cloud

The following LDIF shows the root of the whole OpenLDAP directory tree for the stoney cloud modified for the company stepping stone GmbH in Switzerland:

dn: o=stepping-stone,c=ch
objectclass: top
objectclass: organization
o: stepping-stone

The entry c=ch stands for the country code of Switzerland while o=stepping-stone stands for the the organisation stepping-stone. The entry stepping-stone is in the process of being reserved at the Federal Office of Communications. With the reservation of the name, all the directory entries will be unique over the whole world.

The root entry can be chosen during the installation process of the stoney cloud. If you decide to use the default entry, you'll end up with dc=stoney-cloud,dc=org.

Administration

Configuration

Customers

Groups

People

Reseller

The sub tree ou=reseller,dc=stoney-cloud,dc=org contains all the resellers. Each reseller has a unique uid, which is used for later reference.

uid (per Reseller)

The following LDIF shows you the default reseller entry after a fresh stoney cloud installation. All relevant data belonging to this reseller are stored below this dn.

dn: uid=4000000,ou=reseller,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstReseller
uid: 4000000
organizationName: Reseller Ltd.
sstBelongsToResellerUID: 4000000
sstIsActive: TRUE

The following table describes the different attributes:

Attribute
Existence
Mandatory
Description
uid
MUST
x
A unique integer value with 7 digits or more. For example: 4000000.
organizationName
MUST
x
The organisation name of the reseller. For example: Reseller Ltd..
sstBelongsToResellerUID
MAY
x
Stores the reseller UID the leaf belongs to. A unique value with 7 digits or more, must correspond with the uid entry. For example: 4000000.
sstIsActive
MAY
x
Is the entry active? Either yes (TRUE) or no (FALSE).

Legend:

  • x: Mandatory in all cases.

Billing Address

The sub tree ou=address,uid=4000000,ou=reseller,dc=stoney-cloud,dc=org contains the billing address:

dn: ou=address,uid=4000000,ou=reseller,dc=foss-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstAddressCompany
ou: address
organizationName: Reseller Ltd.
sstGender: m
givenName: Name
surname: Surname
postalAddress: Street Number
countryName: CH
postalCode: Postal Code
localityName: Locality
preferredLanguage: en-GB
mail: name.surname@example.com
telephoneNumber: +41 00 000 00 00
mobileTelephoneNumber: +41 00 000 00 00
sstWebsiteURL: https://www.example.com/

The following table describes the different attributes:

Attribute
Existence
Mandatory
Description
organizationName
MUST
x
Company name, example: stepping stone GmbH
sstGender
MUST
x
Either 'm' for male or 'f' for female.
givenName
MUST
x
Givenname, example: Hans.
surname
MUST
x
Surname, example: Muster.
postalAddress
MAY
x2
Street Number, example: Neufeldstrasse 9. Multi-lined field.
postOfficeBox
MAY
x2
Postbox, example: 3456.
stateOrProvinceName
MAY
x3
Dieses Pulldownmenü soll aktuell nur im Falle der USA überhaupt im Frontend Menü erscheinen.
countryName
MUST
x
Country name and code accourding to ISO 3166-1 and the corresponding ISO 3166-1-alpha-2 code , example: Switzerland, CH.
postalCode
MUST
x
Zipcode, example: 3012
localityName
MUST
x
City, example: Bern.
preferredLanguage
MUST
x
Display language of the user according to RFC 1766, example: de-CH. Currently supported:
  • de-CH
  • en-GB
mail
MUST
x
E-mail address of the user, example: hans.muster@example.com.
telephoneNumber
MAY
x1
Fixnet phone number, example: +41 31 222 33 44.
mobileTelephoneNumber
MAY
x1
Mobile phone number, example: +41 76 222 33 44.
sstWebsiteURL
MAY
URL gemäss RFC-3986 http://tools.ietf.org/html/rfc3986. For example http://www.stepping-stone.ch/.

Legende zur Mandatory Spalte:

  • x1: Entweder telephoneNumber oder mobileTelephoneNumber müssen ausgefüllt sein.
  • x2: Entweder postalAddress oder postOfficeBox müssen ausgefüllt sein.
  • x3: Falls das Land Kanada oder USA lauten, muss das Attribut stateOrProvinceName ausgefüllt werden.

Shipping Address (optional)

The sub tree ou=shipping,uid=4000000,ou=reseller,dc=stoney-cloud,dc=org contains the shipping address and is optional (it is only needed, if the shipping address differs from the billing Address).

dn: ou=shipping,uid=4000000,ou=reseller,dc=foss-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstAddressCompany
ou: shipping
organizationName: Reseller Ltd.
sstGender: m
surname: Surname
givenName: Name
postalAddress: Street Number
countryName: CH
postalCode: Postal Code
localityName: Locality
preferredLanguage: en-GB
mail: name.surname@example.com
telephoneNumber: +41 00 000 00 00
mobileTelephoneNumber: +41 00 000 00 00

Billing

The sub tree ou=billing,uid=4000000,ou=reseller,dc=stoney-cloud,dc=org contains billing relevant data:

dn: ou=billing,uid=4000000,ou=reseller,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstBillingReseller
ou: billing
sstResellerBill: FALSE

This entry need to be described in detail. TBD.

Customers

Im Eintrag ou=customers,uid=2000000,ou=reseller,o=stepping-stone,c=ch werden sich die Mitarbeiter des Resellers stepping stone GmbH (die Benutzer mit dem Attribut sstbelongstouid=2000000) aufgelistet. Dieser Eintrag nutzt die Funktionalitäten vom Overlay dynlist, indem im Attribut labeleduri eine Formel eingetragen wird. Die Attribute member werden so „on the fly“ erstellt.

dn: ou=customers,uid=2000000,ou=reseller,o=stepping-stone,c=ch
labeleduri: ldap:///ou=customers,o=stepping-stone,c=ch??one?(sstBelongsToUID=2000000)
member: uid=3723426,ou=customers,o=stepping-stone,c=ch
member: uid=3724432,ou=customers,o=stepping-stone,c=ch
member: uid=3723421,ou=customers,o=stepping-stone,c=ch
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
ou: customers

Aktuell besitzt der Reseller stepping stone GmbH (mit der uid=2000000) drei Kunden.

People (Employees)

Im Eintrag ou=people,uid=2000000,ou=reseller,o=stepping-stone,c=ch werden sich die Mitarbeiter des Resellers stepping stone GmbH (die Benutzer mit dem Attribut sstbelongstouid=2000000) aufgelistet. Dieser Eintrag nutzt die Funktionalitäten vom Overlay dynlist, indem im Attribut labeleduri eine Formel eingetragen wird. Die Attribute member werden so „on the fly“ erstellt.

dn: ou=people,uid=2000000,ou=reseller,o=stepping-stone,c=ch
labeleduri: ldap:///ou=people,o=stepping-stone,c=ch??one?(sstBelongsToUID=2000000)
member: uid=1000000,ou=people,o=stepping-stone,c=ch
member: uid=1000001,ou=people,o=stepping-stone,c=ch
member: uid=1000002,ou=people,o=stepping-stone,c=ch
member: uid=1000003,ou=people,o=stepping-stone,c=ch
member: uid=1000004,ou=people,o=stepping-stone,c=ch
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
ou: people


Aktuell besitzt der Reseller stepping stone GmbH (mit der uid=2000000) fünf Mitarbeiter.

Services