stoney core: OpenLDAP directory data organisation

From stoney cloud
Revision as of 10:15, 26 June 2014 by Tiziano (Talk | contribs)


Jump to: navigation, search

Abstract

This document describes the stoney core relevant OpenLDAP directory data organisation.

Introduction

Data Organisation

Administration

The subtree ou=administration,dc=stoney-cloud,dc=org contains all the administrative data.

nextfreeuid

The entry cn=nextfreeuid,ou=administration,dc=stoney-cloud,dc=org stores the next free UID (Unique Identifier). The UID is unique over the whole directory and is enforced through the directory and is incremented by one.

dn: cn=nextfreeuid,ou=administration,dc=stoney-cloud,dc=org
cn: nextFreeUID
objectclass: inetOrgPerson
sn: nextFreeUID
uid: 3724591

Billing

The sub tree ou=billing,ou=administration,dc=stoney-cloud,dc=org stores all the billing relevant data. Each billable item (bundle, service or service item) is stored in this sub tree.

dn: ou=billing,ou=administration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: billing

The following LDIF extract shows the billing schema for the product "Mail Account".

dn: uid=100001,ou=billing,ou=administration,dc=stoney-cloud,dc=org
description: Default pricing schema for the product Mail Account.
objectclass: top
objectclass: sstBillingPriceSchema
sstbaseprice: 0
sstbelongstouid: 1
sstbillingunit: Gigabyte
sstfreeunit: 0
sstpriceformula: sstPricePerUnit * sstQuota
sstpriceperunit: 4.00
sstproductname: Mail Account
uid: 100001
sstBelongsToUID: 1

The finale price is calculated with the help of the stored formula (sstPriceFormula). The customer price for a "Mail Account" with a 2 Gigabyte large mailbox (quota) is calculated as follows: Price = sstPricePerUnit * sstQuota = 4.00 CHF/(Gigabyte * Month) * 2 Gigabyte = 8 CHF/Month

All prices are stored in Swiss Francs (because the company stepping stone GmbH resides in Switzerland). You can decide about the default currency yourself. Once a month a billing run is executed, which scans the whole directory. The billing run is a currently "work in progress". For more information, please contact our Accounting departement.

Group Mapping

Used for the group mapping from the given readable format to the local group UID format.

dn: ou=group mapping,ou=administration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
objectclass: sstLDAPSearchObjectClass
ou: group mapping
description: This entry describes, how to map a given group name to an UID in the local LDAP directory.
sstDisplayName: Group Mapping
sstLDAPBaseDn: ou=groups,dc=stoney-cloud,dc=org
sstLDAPFilter: (&(objectClass=sstGroupObjectClass)(sstGroupName=%s)(sstBelongsToResellerUID=%sstBelongsToResellerUID)(sstBelongsToCustomerUID=%sstBelongsToCustomerUID))
sstLDAPStaticAttribute: uid

Example Mapping for the Technology Group

The following search maps the group Technology belonging to the reseller with the sstBelongsToResellerUID 4000000 and the customer with the sstBelongsToCustomerUID 4000001 to the uid 4000014:

ldapsearch -D "cn=Manager,dc=stoney-cloud,dc=org" -w admin -H "ldap://10.1.130.14:389" -b "ou=groups,dc=stoney-cloud,dc=org" "(&(objectClass=sstGroupObjectClass)(sstGroupName=Technology)(sstBelongsToResellerUID=4000000)(sstBelongsToCustomerUID=4000001))" uid
# extended LDIF
#
# LDAPv3
# base <ou=groups,dc=stoney-cloud,dc=org> with scope subtree
# filter: (&(objectClass=sstGroupObjectClass)(sstGroupName=Technology)(sstBelongsToResellerUID=4000000)(sstBelongsToCustomerUID=4000001))
# requesting: uid 
#

# 4000014, groups, stoney-cloud.org
dn: uid=4000014,ou=groups,dc=stoney-cloud,dc=org
uid: 4000014

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Example Mapping for all Groups

The following search lists all the existing Groups to belonging to the reseller with the sstBelongsToResellerUID 4000000 and the customer with the sstBelongsToCustomerUID 4000001 with the corresponding uids:

ldapsearch -D "cn=Manager,dc=stoney-cloud,dc=org" -w admin -H "ldap://10.1.130.14:389" -b "ou=groups,dc=stoney-cloud,dc=org" "(&(objectClass=sstGroupObjectClass)(sstGroupName=*)(sstBelongsToResellerUID=4000000)(sstBelongsToCustomerUID=4000001))" uid
# extended LDIF
#
# LDAPv3
# base <ou=groups,dc=stoney-cloud,dc=org> with scope subtree
# filter: (&(objectClass=sstGroupObjectClass)(sstGroupName=*)(sstBelongsToResellerUID=4000000)(sstBelongsToCustomerUID=4000001))
# requesting: uid 
#

# 4000014, groups, stoney-cloud.org
dn: uid=4000014,ou=groups,dc=stoney-cloud,dc=org
uid: 4000014

# 4000015, groups, stoney-cloud.org
dn: uid=4000015,ou=groups,dc=stoney-cloud,dc=org
uid: 4000015

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries: 2

People (Superuser)

The sub tree ou=people,ou=administration,dc=stoney-cloud,dc=org list all users, which have super user richts (users with the attribute sstBelongsToUID=1). This entry uses the functionality of the the dynlist overlay. The attribut labeleduri contains a pre-defined search, which leads to a automatically created list.

dn: ou=people,ou=administration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
ou: people
labeleduri: ldap:///ou=people,dc=stoney-cloud,dc=org??one?(sstBelongsToUID=1)
member: uid=1000000,ou=people,dc=stoney-cloud,dc=org
member: uid=1000003,ou=people,dc=stoney-cloud,dc=org
member: uid=1000004,ou=people,dc=stoney-cloud,dc=org

As you can see, the OpenLDAP has three people withe Superuser rights.

Services

The sub tree ou=services,ou=administration,dc=stoney-cloud,dc=org contains all the service users. Each service and/or application has its own authentication user. The authentication user is used in the OpenLDAP Directory Access Control Lists (ACLs) to allow or restrict access to the data.

Naming Convention Notification User:

  • <SERVICE>-notification
    • mail-notification
    • backup-notification

Naming Convention Service User:

  • <SERVICE>-<DAEMON>
    • virtualization-sc-brokerd

Naming Convention Provisioning User:

  • prov-<SERVICE>-<TYPE>
    • prov-mail-ox
    • prov-backup-kvm
    • prov-monitoring-zabbix
    • prov-configuration-management-puppet

backup Service User (stoney backup)

The following LDIF shows the backup service user entry:

dn: cn=backup,ou=services,ou=administration,dc=stoney-cloud,dc=org
cn: dhcp
objectclass: top
objectclass: organizationalPerson
objectclass: inetOrgPerson
sn: backup
userPassword: {SSHA}pJpqL95nlFi78rnAstmn6VvZCXWTjVHZ

dhcp (DHCP) Service User (stoney conductor)

The following LDIF shows the dhcp service user entry:

dn: cn=dhcp,ou=services,ou=administration,dc=stoney-cloud,dc=org
cn: dhcp
objectclass: top
objectclass: organizationalPerson
objectclass: inetOrgPerson
sn: dhcp
userPassword: {SSHA}pJpqL95nlFi78rnAstmn6VvZCXWTjVHZ

libvirtd Service User (stoney conductor)

The following LDIF shows the libvirtd service user entry:

dn: cn=libvirtd,ou=services,ou=administration,dc=stoney-cloud,dc=org
cn: libvirtd
objectclass: top
objectclass: organizationalPerson
objectclass: inetOrgPerson
sn: dhcp
userPassword: {SSHA}pJpqL95nlFi78rnAstmn6VvZCXWTjVHZ

prov-backup-kvm (Provisioning-Backup-KVM Daemon) Service User (stoney conductor)

The following LDIF shows the prov-backup-kvm service user entry:

dn: cn=prov-backup-kvm,ou=services,ou=administration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: prov-backup-kvm
sn: prov-backup-kvm
userPassword: <STONEY-CLOUD-PROV-BACKUP-KVM-PASSWORD>

slapd-mirrormode Service User (stoney core)

The following LDIF shows the libvirtd service user entry:

dn: cn=slapd-mirrormode,ou=services,ou=administration,dc=stoney-cloud,dc=org
cn: slapd-mirrormode
objectclass: top
objectclass: organizationalPerson
objectclass: inetOrgPerson
sn: dhcp
userPassword: {SSHA}pJpqL95nlFi78rnAstmn6VvZCXWTjVHZ

Configuration

Operating System

The sub tree ou=operating system,ou=configuration,dc=stoney-cloud,dc=org contains the operating system choices for the whole stoney cloud installation. They can be extended by the administrator.

# This sub tree contains the operating system choices for the whole stoney cloud installation.
dn: ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: operating system
description: This sub tree contains the operating system choices for the whole stoney cloud installation.

Linux

The sub tree uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org contains the Linux based operating system choices for the whole stoney cloud installation.

# This sub tree contains the Linux based operating system choices for the whole stoney cloud installation.
dn: uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000019
sstDisplayName: Linux
description: This sub tree contains the Linux based operating system choices for the whole stoney cloud installation.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0
# This sub tree contains the Debian Linux based operating system choices for the whole stoney cloud installation.
dn: uid=4000020,uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000020
sstDisplayName: Debian
description: This sub tree contains the Debian Linux based operating system choices for the whole stoney cloud installation.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000021,uid=4000020,uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000021
sstDisplayName: 5
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000022,uid=4000020,uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000022
sstDisplayName: 6
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000023,uid=4000020,uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000023
sstDisplayName: 7
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0
# This sub tree contains the Fedora Linux based operating system choices for the whole stoney cloud installation.
dn: uid=4000024,uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000024
sstDisplayName: Fedora
description: This sub tree contains the Fedora Linux based operating system choices for the whole stoney cloud installation.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000025,uid=4000024,uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000025
sstDisplayName: 12
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000026,uid=4000024,uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000026
sstDisplayName: 13
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000027,uid=4000024,uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000027
sstDisplayName: 14
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000028,uid=4000024,uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000028
sstDisplayName: 15
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000029,uid=4000024,uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000029
sstDisplayName: 16
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000030,uid=4000024,uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000030
sstDisplayName: 17
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000031,uid=4000024,uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000031
sstDisplayName: 18
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000032,uid=4000024,uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000032
sstDisplayName: 19
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0
# This sub tree contains the Gentoo Linux based operating system choices for the whole stoney cloud installation.
dn: uid=4000033,uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000033
sstDisplayName: Gentoo
description: This sub tree contains the Gentoo Linux based operating system choices for the whole stoney cloud installation.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000034,uid=4000033,uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000034
sstDisplayName: 2012.0
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000035,uid=4000033,uid=4000019,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000035
sstDisplayName: 2013.0
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

Windows

The sub tree uid=4000036,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org contains the Windows based operating system choices for the whole stoney cloud installation.

# This sub tree contains the Windows based operating system choices for the whole stoney cloud installation.
dn: uid=4000036,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000036
sstDisplayName: Windows
description: This sub tree contains the Windows based operating system choices for the whole stoney cloud installation.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0
# This sub tree contains the Windows Server 2008 based operating system choices for the whole stoney cloud installation.
dn: uid=4000037,uid=4000036,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000037
sstDisplayName: Server 2008
description: This sub tree contains the Windows Server 2008 based operating system choices for the whole stoney cloud installation.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000038,uid=4000037,uid=4000036,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000038
sstDisplayName: Datacenter
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000039,uid=4000037,uid=4000036,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000039
sstDisplayName: Enterprise
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000040,uid=4000037,uid=4000036,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000040
sstDisplayName: Foundation
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000041,uid=4000037,uid=4000036,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000041
sstDisplayName: Standard
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0
# This sub tree contains the Windows Server 2008 R2 based operating system choices for the whole stoney cloud installation.
dn: uid=4000042,uid=4000036,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000042
sstDisplayName: Server 2008 R2
description: This sub tree contains the Windows Server 2008 R2 based operating system choices for the whole stoney cloud installation.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000043,uid=4000042,uid=4000036,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000043
sstDisplayName: Datacenter
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000044,uid=4000042,uid=4000036,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000044
sstDisplayName: Enterprise
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000045,uid=4000042,uid=4000036,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000045
sstDisplayName: Foundation
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000046,uid=4000042,uid=4000036,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000046
sstDisplayName: Standard
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000047,uid=4000042,uid=4000036,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000047
sstDisplayName: Web
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0
# This sub tree contains the Windows Server 2012 based operating system choices for the whole stoney cloud installation.
dn: uid=4000048,uid=4000036,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000048
sstDisplayName: Server 2012
description: This sub tree contains the Windows Server 2012 based operating system choices for the whole stoney cloud installation.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000049,uid=4000048,uid=4000036,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000049
sstDisplayName: Datacenter
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000050,uid=4000048,uid=4000036,ou=operating system,ou=configuration,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000050
sstDisplayName: Standard
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

Software Stack

The sub tree ou=software stack,ou=configuration,dc=foss-cloud,dc=org contains the software stack choices for the whole stoney cloud installation. They can be extended by the administrator.

# This sub tree contains the software stack choices for the whole stoney cloud installation.
dn: ou=software stack,ou=configuration,dc=foss-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: software stack
description: This sub tree contains the software stack choices for the whole stoney cloud installation.
dn: ou=environments,ou=software stack,ou=configuration,dc=foss-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: environments
description: This sub tree contains the software stack environment choices for the whole stoney cloud installation.

dn: uid=4000054,ou=environments,ou=software stack,ou=configuration,dc=foss-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000054
sstDisplayName: Test Environment
description: This is the environment used for testing (pre-production).
sstEnvironmentName: Test
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000055,ou=environments,ou=software stack,ou=configuration,dc=foss-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000055
sstDisplayName: Development Environment
description: This is the environment used for development (sandbox).
sstEnvironmentName: Development
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

dn: uid=4000056,ou=environments,ou=software stack,ou=configuration,dc=foss-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
uid: 4000056
sstDisplayName: Production Environment
description: This is the environment used for production.
sstEnvironmentName: Production
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

The multi-valued labeledURI attribute contains the operating system(s) for which a software stack works and therefore can be shown to the customer. The following three attributes tell us, who is allowed to access this leaf:

  • sstAllowResellerUID: Stores the reseller UID(s) that are allowed access to this leaf. If set to 0 (zero), all resellers have access.
  • sstAllowCustomerUID: Stores the customer UID(s) that are allowed access to this leaf. If set to 0 (zero), all customers belonging to the allowed resellers have access.
  • sstAllowPersonUID: Stores the person UID(s) that are allowed access to this leaf. If set to 0 (zero), all people belonging to the allowed resellers and the allowed customers have access.
dn: uid=4000051,ou=software stack,ou=configuration,dc=foss-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
objectclass: labeledURIObject
uid: 4000051
sstDisplayName: Django (Version 1)
description: Django Python Web Framework Version 1.
labeledURI: ldap://uid=4000034,uid=4000033,uid=4000019,ou=operating system,ou=configuration,dc=foss-cloud,dc=org
labeledURI: ldap://uid=4000035,uid=4000033,uid=4000019,ou=operating system,ou=configuration,dc=foss-cloud,dc=org
sstEnvironmentName: Test
sstEnvironmentName: Development
sstEnvironmentName: Production
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0
dn: uid=4000052,ou=software stack,ou=configuration,dc=foss-cloud,dc=org
objectclass: top
objectclass: sstGroupObjectClass
objectclass: sstRelationship
objectclass: labeledURIObject
uid: 4000052
sstDisplayName: Django (Version 2)
description: Django Python Web Framework Version 2.
labeledURI: ldap://uid=4000034,uid=4000033,uid=4000019,ou=operating system,ou=configuration,dc=foss-cloud,dc=org
labeledURI: ldap://uid=4000035,uid=4000033,uid=4000019,ou=operating system,ou=configuration,dc=foss-cloud,dc=org
sstEnvironmentName: Test
sstEnvironmentName: Development
sstEnvironmentName: Production
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstAllowResellerUID: 0
sstAllowCustomerUID: 0
sstAllowPersonUID: 0

Customers

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

Customers uid (per customer) LEGACY

We have two kinds of customers:

  • Company customer: This is the normal case, as we target companies.
  • Private customer: A private customer does not have a company/organisation name.

The following LDIF examples will show both cases where necessary. The first LDIF shows you the default company customer entry after a fresh stoney cloud installation. All relevant data belonging to this reseller is stored below this dn.

dn: uid=4000001,ou=customers,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstCustomerCompany
uid: 4000001
organizationName: Customer Ltd.
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
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: Customer Ltd..
sstBelongsToResellerUID
MUST
x
Stores the reseller UID the leaf belongs to. A unique value with 7 digits or more. For example: 4000000.
sstBelongsToCustomerUID
MAY
x
Stores the customer UID the leaf belongs to. A unique value with 7 digits or more, must correspond with the uid entry. For example: 4000001.
sstExternalID
MAY
The ID (or number) of a customer, person or product in an external database (for example: 234567).
sstIsActive
MAY
x
Is the entry active? Either true (yes) or false (no).

Legend:

  • x: Mandatory in all cases.

The following LDIF shows you the private customer entry. All relevant data belonging to this reseller are stored below this dn.

dn: uid=4000001,ou=customers,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstCustomerPerson
uid: 4000001
givenName: Name
surname: Surname
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
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.
givenName
MUST
x
Givenname, example: Hans.
surname
MUST
x
Surname, example: Muster.
sstBelongsToResellerUID
MUST
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.
sstBelongsToCustomerUID
MAY
x
Stores the customer UID the leaf belongs to. A unique value with 7 digits or more, must correspond with the uid entry. For example: 4000001.
sstExternalID
MAY
The ID (or number) of a customer, person or product in an external database (for example: 234567).
sstIsActive
MAY
x
Is the entry active? Either true (yes) or false (no).

Legend:

  • x: Mandatory in all cases.

Customers uid (per customer)

We have two kinds of customers:

  • Company customer: This is the normal case, as we target companies.
  • Private customer: A private customer does not have a company/organisation name.

The following LDIF examples will show both cases where necessary. The first LDIF shows you the default company customer entry after a fresh stoney cloud installation. All relevant data belonging to this reseller is stored below this dn.

dn: uid=4000001,ou=customers,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstCustomer
objectclass: sstRelationship
uid: 4000001
organizationName: Customer Ltd.
sstIsCompany: TRUE
sstIsActive: TRUE
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

The following LDIF shows you the private customer entry. All relevant data belonging to this reseller are stored below this dn.

dn: uid=4000001,ou=customers,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstCustomer
objectclass: sstRelationship
uid: 4000001
givenName: Name
surname: Surname
sstIsCompany: FALSE
sstIsActive: TRUE
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001

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
MAY
x1
The organisation name of the reseller. For example: Customer Ltd..
givenName
MAY
x1
Givenname, example: Hans.
surname
MAY
x1
Surname, example: Muster.
sstIsCompany
MUST
x
Is the entry active? Either true (yes) or false (no).
sstIsActive
MAY
x
Is the entry active? Either true (yes) or false (no).
sstExternalID
MAY
The ID (or number) of a customer, person or product in an external database (for example: 234567).
sstBelongsToResellerUID
MUST
x
Stores the reseller UID the leaf belongs to. A unique value with 7 digits or more. For example: 4000000.
sstBelongsToCustomerUID
MAY
x
Stores the customer UID the leaf belongs to. A unique value with 7 digits or more, must correspond with the uid entry. For example: 4000001.

Legend:

  • x: Mandatory in all cases.
  • x1: If sstIsCompany is set to TRUE, the organizationName must be set. Otherwise givenName and surname must be set.

Customers Billing Address LEGACY

The sub tree ou=address,uid=4000001,ou=customers,dc=stoney-cloud,dc=org contains the billing address for a company customer:

dn: ou=address,uid=4000001,ou=customers,dc=stoney-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
This pulldown menu is only active (appears to the user), if the country is set to Canada or the USA.
countryName
MUST
x
Country code according to ISO 3166-1 (for the web interface) and the corresponding ISO 3166-1-alpha-2 code (as the LDAP entry). Example: For Switzerland the value is 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/.

Legend:

  • x1: Either telephoneNumber or mobileTelephoneNumber need to be present. Both attributes can exist together.
  • x2: Either postalAddress or postOfficeBox need to be present. Both attributes can exist together.
  • x3: If the countryName is either Canada or the USA, the stateOrProvinceName needs to be present.

The sub tree ou=address,uid=4000001,ou=customers,dc=stoney-cloud,dc=org contains the billing address for a private customer:

dn: ou=address,uid=4000001,ou=customers,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstAddressPerson
ou: address
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
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
This pulldown menu is only active (appears to the user), if the country is set to Canada or the USA.
countryName
MUST
x
Country code according to ISO 3166-1 (for the web interface) and the corresponding ISO 3166-1-alpha-2 code (as the LDAP entry). Example: For Switzerland the value is 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/.

Legend:

  • x1: Either telephoneNumber or mobileTelephoneNumber need to be present. Both attributes can exist together.
  • x2: Either postalAddress or postOfficeBox need to be present. Both attributes can exist together.
  • x3: If the countryName is either Canada or the USA, the stateOrProvinceName needs to be present.

Customers Billing Address

The sub tree ou=address,uid=4000001,ou=customers,dc=stoney-cloud,dc=org contains the billing address for a company customer:

dn: ou=address,uid=4000001,ou=customers,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstAddress
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 sub tree ou=address,uid=4000001,ou=customers,dc=stoney-cloud,dc=org contains the billing address for a private customer:

dn: ou=address,uid=4000001,ou=customers,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstAddress
ou: address
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 Name
Existence
Mandatory
Interface Equivalent Description
organizationName
MAY
x1
Customer Name Customer name, for example: stepping stone GmbH.
sstGender
MUST
x
Gender Either 'm' for male or 'f' for female. For example: m.
givenName
MUST
x
Name Name, for example: Hans.
surname
MUST
x
Surname Surname, for example: Muster.
postalAddress
MAY
x3
Address Multi-lined address, for example: Neufeldstrasse 9.
postOfficeBox
MAY
x3
Post Office Box Post Office Box, for example: 3456.
stateOrProvinceName
MAY
x4
State or Province Name This pull down menu is only active (appears to the user), if the country is set to Canada or the USA.
countryName
MUST
x
Country Country code according to ISO 3166-1. The English short name (upper/lower case) is used for the interface and the corresponding ISO 3166-1-alpha-2 code (a two-letter code that represents a country name, recommended as the general purpose code) is used for the LDAP entry). For example: Switzerland in the interface and CH in the LDAP directory.
postalCode
MUST
x
Postal Code Postal Code without the country code, for example: 3012.
localityName
MUST
x
Location Location, for example: Berne.
preferredLanguage
MUST
x
Language Display language of the user according to RFC 1766. For example: de-CH. The following languages are currently supported:
  • de-CH
  • de-DE
  • en-GB
  • en-US
  • fr-CH
  • fr-FR
mail
MUST
x
Mail Address The users mail address, for example: hans.muster@example.com.
telephoneNumber
MAY
x2
Telephone Telephone number of the user according to E.164 (international dialling code, trunk code, area code, subscriber line). For example: +41 31 222 33 44.
mobileTelephoneNumber
MAY
x2
Mobile Mobile phone number of the user according to E.164 (international dialling code, trunk code, area code, subscriber line). For example: +41 76 222 33 44.
sstWebsiteURL
MAY
Website Website URL according to RFC-3986. For example: http://www.stepping-stone.ch/.

Legend:

  • x1: If the attribute sstIsCompany of the parent entry is set to TRUE, the organizationName must be set.
  • x2: Either telephoneNumber or mobileTelephoneNumber need to be present. Both attributes can exist together.
  • x3: Either postalAddress or postOfficeBox need to be present. Both attributes can exist together.
  • x4: If the countryName is either Canada or the USA, the stateOrProvinceName needs to be present.

Customers Shipping Address (optional)

The sub tree ou=shipping,uid=4000001,ou=customers,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=4000001,ou=customers,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstAddress
ou: shipping
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/

Customers Billing

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

dn: ou=billing,uid=4000001,ou=customers,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstBillingReseller
ou: billing
sstResellerBill: TRUE

This entry need to be described in detail. TBD.

The following table describes the different attributes:

Attribute
Existence
Mandatory
Description
attribure
MUST
x
TBD.

Legend:

  • x: Mandatory in all cases.

Customers Employees

The sub tree ou=employees,uid=4000001,ou=customers,dc=stoney-cloud,dc=org contains the employees belonging to the reseller Customer Ltd. (all the employees with the the attribute sstBelongsToEmployeeUID=4000001). With the attribute labeledURI we use the functionality of the dynamic lists overlay to automatically give us a list of employees belonging to this customer. The number of employees is always the same or smaller than the number of people belonging to a customer (they are a subset).

dn: ou=employees,uid=4000001,ou=customers,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
ou: employees
labeledURI: ldap:///ou=people,dc=stoney-cloud,dc=org??one?(sstEmployeeOfUID=4000001)
member: uid=4000002,ou=people,dc=stoney-cloud,dc=org

In this example, the customer Customer Ltd. has one employee (with the uid=4000002).

The following table describes the different attributes:

Attribute
Existence
Mandatory
Description
attribure
MUST
x
TBD.

Legend:

  • x: Mandatory in all cases.

Customers People

The sub tree ou=people,uid=4000001,ou=customers,dc=stoney-cloud,dc=org contains the all the people belonging to the customer Customer Ltd. (all the people, including the employees, with the the attribute sstBelongsToCustomerUID=4000001). With the attribute labeledURI we use the functionality of the dynamic lists overlay to automatically give us a list of employees belonging to this reseller. The number of people is always the same or larger than the number of employees belonging to a reseller.

dn: ou=people,uid=4000001,ou=customers,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
ou: employees
labeledURI: ldap:///ou=people,dc=stoney-cloud,dc=org??one?(sstBelongsToCustomerUID=4000001)
member: uid=4000002,ou=people,dc=stoney-cloud,dc=org
member: uid=4000064,ou=people,dc=stoney-cloud,dc=org
member: uid=4000066,ou=people,dc=stoney-cloud,dc=org
member: uid=4000069,ou=people,dc=stoney-cloud,dc=org

In this example, four people the customer Customer Ltd. (including the employee with the uid=4000002).

The following table describes the different attributes:

Attribute
Existence
Mandatory
Description
attribure
MUST
x
TBD.

Legend:

  • x: Mandatory in all cases.

Groups

People

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

People uid (per person)

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

dn: uid=4000002,ou=people,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstPerson
uid: 4000002
sstGender: m
sstTitle: CEO
givenName: Name
surname: Surname
preferredLanguage: en-GB
userPassword: {SSHA}UgrBHVhKxFQInWWpzf1ddgEVmSg5vKUm
mail: name.surname@example.com
cn: admin
telephoneNumber: +41 00 000 00 00
mobileTelephoneNumber: +41 00 000 00 00
sstTimeZoneOffset: UTC+01
sstIsActive: TRUE
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstEmployeeOfUID: 4000000
sstEmployeeOfUID: 4000001

The person Name Surname (with the uid=4000002) belongs to the reseller Reseller Ltd. (with sstBelongsToResellerUID=4000000) and is an employee of the same company (sstEmployeeOfUID=4000000). The person also belongs the customer Customer Ltd. (with sstBelongsToCustomerUID=4000001) and is an employee of the same company (sstEmployeeOfUID=4000001).

The following table describes the different attributes:

AttributeType
Existence
Mandatory
Interface Equivalent
User alterable
Description
uid
MUST
x
UID
Unique Identifier. For example: 4000002.
sstGender
MUST
x
Gender
Either 'm' for male or 'f' for female. For example: m.
sstTitle
MAY
x
Title
x
The title of a person as a UTF-8] formatted string. For example: CEO or Technician.
givenName
MUST
x
Name
x
Name, for example: Hans.
surname
MUST
x
Surname
x
Surname, for example: Muster.
preferredLanguage
MUST
x
Language
x
Display language of the user according to RFC 1766: [ISO 639-1 Code]-[ISO 3166-1-alpha-2 code] . For example: de-CH
userPassword
MUST
x
Password
x
SSHA user password. {SSHA} is a RFC 2307 password scheme which uses the SHA1 secure hash algorithm. For example: {SSHA}h+qbh3pFWrZxmz02H5tXhOr+0/wrmHFF.
mail
MUST
x
Mail Address
x
The users mail address, for example: hans.muster@example.com.
cn
MAY
Common name of the user, for example: admin or user.
telephoneNumber
MAY
x1
Telephone
x1
Telephone number of the user according to E.164 (international dialling code, trunk code, area code, subscriber line). For example: +41 31 222 33 44.
mobileTelephoneNumber
MAY
x1
Mobile
x1
Mobile phone number of the user according to E.164 (international dialling code, trunk code, area code, subscriber line). For example: +41 76 222 33 44.
sstTimeZoneOffset
MUST
x
Time zone as an offset from UTC. For example: UTC+01
sstIsActive
MAY
x
Is the entry active? Either true (yes) or false (no).
sstBelongsToUID
MAY
If this value is set to 1, the user is the super user of the whole stoney cloud installation. Therefore this user can add and remove resellers. Use with caution.
sstBelongsToResellerUID
MAY
Stores the reseller UID the person belongs to. A unique value with 7 digits or more. For example: 4000000.
sstBelongsToCustomerUID
MUST
x
Stores the customer UID the person belongs to. A unique value with 7 digits or more. For example: 4000001.
sstEmployeeOfUID
MAY
Employee of
Stores the UID(s) the person is an employee of. The UID(s) can belong to one or more resellers or also to one or more customers. A unique value with 7 digits or more. For example: 4000001.


sstExternalID
MAY
External ID
The ID (or number) of a customer, person or product in an external database. For example: 234567.

Legend:

  • x1: Either telephoneNumber or mobileTelephoneNumber need to be present. Both attributes can exist together.

People Roles

This must be documented. TBD.

dn: sstRole=Monitoring Administrator,uid=4000002,ou=people,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstRoles
sstProduct: 0
sstRole: Monitoring Administrator
dn: sstRole=User,uid=4000002,ou=people,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstRoles
sstProduct: 0
sstRole: User
dn: sstRole=Virtualization Administrator,uid=4000002,ou=people,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstRoles
sstProduct: 0
sstRole: Virtualization Administrator

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.

Reseller uid (per Reseller) LEGACY

The following LDIF shows you the default reseller entry after a fresh stoney cloud installation. All relevant data belonging to this reseller is 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.
sstExternalID
MAY
The ID (or number) of a customer, person or product in an external database (for example: 234567).
sstIsActive
MAY
x
Is the entry active? Either true (yes) or false (no).

Legend:

  • x: Mandatory in all cases.

Reseller 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 is stored below this dn.

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

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
MAY
x
The organisation name of the reseller. For example: Reseller Ltd. (sstIsCompany: TRUE), in case of a person Surname, givenName (sstIsCompany: FALSE) or in case of a brand a freely choosable string like Super Dooper Web Hosting (sstIsCompany: FALSE).
description
MAY
The description of the leaf.
sstIsCompany
MUST
x
Is the entry a company? Either true (yes) or false (no).
sstIsActive
MAY
x
Is the entry active? Either true (yes) or false (no).
sstExternalID
MAY
The ID (or number) of a customer, person or product in an external database (for example: 234567).
sstBelongsToResellerUID
MUST
x
Stores the reseller UID the leaf belongs to. A unique value with 7 digits or more. For example: 4000000.

Legend:

  • x: Mandatory in all cases.

Reseller Billing Address LEGACY

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=stoney-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
This pulldown menu is only active (appears to the user), if the country is set to Canada or the USA.
countryName
MUST
x
Country code according to ISO 3166-1 (for the web interface) and the corresponding ISO 3166-1-alpha-2 code (as the LDAP entry). Example: For Switzerland the value is 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/.

Legend:

  • x1: Either telephoneNumber or mobileTelephoneNumber need to be present. Both attributes can exist together.
  • x2: Either postalAddress or postOfficeBox need to be present. Both attributes can exist together.
  • x3: If the countryName is either Canada or the USA, the stateOrProvinceName needs to be present.

Reseller 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=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstAddress
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 Name
Existence
Mandatory
Interface Equivalent Description
organizationName
MAY
x1
Reseller Name Reseller name, for example: stepping stone GmbH.
sstGender
MUST
x
Gender Either 'm' for male or 'f' for female. For example: m.
givenName
MUST
x
Name Name, for example: Hans.
surname
MUST
x
Surname Surname, for example: Muster.
postalAddress
MAY
x3
Address Multi-lined address, for example: Neufeldstrasse 9.
postOfficeBox
MAY
x3
Post Office Box Post Office Box, for example: 3456.
stateOrProvinceName
MAY
x4
State or Province Name This pull down menu is only active (appears to the user), if the country is set to Canada or the USA.
countryName
MUST
x
Country Country code according to ISO 3166-1. The English short name (upper/lower case) is used for the interface and the corresponding ISO 3166-1-alpha-2 code (a two-letter code that represents a country name, recommended as the general purpose code) is used for the LDAP entry). For example: Switzerland in the interface and CH in the LDAP directory.
postalCode
MUST
x
Postal Code Postal Code without the country code, for example: 3012.
localityName
MUST
x
Location Location, for example: Berne.
preferredLanguage
MUST
x
Language Display language of the user according to RFC 1766. For example: de-CH. The following languages are currently supported:
  • de-CH
  • de-DE
  • en-GB
  • en-US
  • fr-CH
  • fr-FR
mail
MUST
x
Mail Address The users mail address, for example: hans.muster@example.com.
telephoneNumber
MAY
x2
Telephone Telephone number of the user according to E.164 (international dialling code, trunk code, area code, subscriber line). For example: +41 31 222 33 44.
mobileTelephoneNumber
MAY
x2
Mobile Mobile phone number of the user according to E.164 (international dialling code, trunk code, area code, subscriber line). For example: +41 76 222 33 44.
sstWebsiteURL
MAY
Website Website URL according to RFC-3986. For example: http://www.stepping-stone.ch/.

Legend:

  • x1: If the attribute sstIsCompany of the parent entry is set to TRUE, the organizationName must be set.
  • x2: Either telephoneNumber or mobileTelephoneNumber need to be present. Both attributes can exist together.
  • x3: Either postalAddress or postOfficeBox need to be present. Both attributes can exist together.
  • x4: If the countryName is either Canada or the USA, the stateOrProvinceName needs to be present.

Reseller 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=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstAddress
ou: shipping
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/

Reseller 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: TRUE

This entry need to be described in detail. TBD.

The following table describes the different attributes:

Attribute
Existence
Mandatory
Description
attribure
MUST
x
TBD.

Legend:

  • x: Mandatory in all cases.

Reseller Customers

The sub tree ou=customers,uid=4000000,ou=reseller,dc=stoney-cloud,dc=org contains the customers belonging to the reseller Reseller Ltd. (all the customers with the the attribute sstBelongsToResellerUID=4000000). With the attribute labeledURI we use the functionality of the dynamic lists overlay to automatically give us a list of customers belonging to this reseller.

dn: ou=customers,uid=4000000,ou=reseller,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
ou: customers
labeledURI: ldap:///ou=customers,dc=stoney-cloud,dc=org??one?(sstBelongsToResellerUID=4000000)
member: uid=4000001,ou=customers,dc=stoney-cloud,dc=org

In this example, the reseller Reseller Ltd. has one customer (with the uid=4000001).

The following table describes the different attributes:

Attribute
Existence
Mandatory
Description
attribure
MUST
x
TBD.

Legend:

  • x: Mandatory in all cases.

Reseller Employees

The sub tree ou=employees,uid=4000000,ou=reseller,dc=stoney-cloud,dc=org contains the employees belonging to the reseller Reseller Ltd. (all the employees with the the attribute sstBelongsToEmployeeUID=4000000). With the attribute labeledURI we use the functionality of the dynamic lists overlay to automatically give us a list of employees belonging to this reseller. The number of employees is always the same or smaller than the number of people belonging to a reseller (they are a subset).

dn: ou=employees,uid=4000000,ou=reseller,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
ou: employees
labeledURI: ldap:///ou=people,dc=stoney-cloud,dc=org??one?(sstEmployeeOfUID=4000000)
member: uid=4000002,ou=people,dc=stoney-cloud,dc=org

In this example, the reseller Reseller Ltd. has one employee (with the uid=4000002).

The following table describes the different attributes:

Attribute
Existence
Mandatory
Description
attribure
MUST
x
TBD.

Legend:

  • x: Mandatory in all cases.

Reseller People

The sub tree ou=people,uid=4000000,ou=reseller,dc=stoney-cloud,dc=org contains the all the people belonging to the reseller Reseller Ltd. (all the people, including the employees, with the the attribute sstBelongsToResellerUID=4000000). With the attribute labeledURI we use the functionality of the dynamic lists overlay to automatically give us a list of employees belonging to this reseller. The number of people is always the same or larger than the number of employees belonging to a reseller.

dn: ou=people,uid=4000000,ou=reseller,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: labeledURIObject
ou: employees
labeledURI: ldap:///ou=people,dc=stoney-cloud,dc=org??one?(sstBelongsToResellerUID=4000000)
member: uid=4000002,ou=people,dc=stoney-cloud,dc=org
member: uid=4000064,ou=people,dc=stoney-cloud,dc=org
member: uid=4000066,ou=people,dc=stoney-cloud,dc=org
member: uid=4000069,ou=people,dc=stoney-cloud,dc=org

In this example, four people the reseller Reseller Ltd. (including the employee with the uid=4000002).

The following table describes the different attributes:

Attribute
Existence
Mandatory
Description
attribure
MUST
x
TBD.

Legend:

  • x: Mandatory in all cases.