ser.schema 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. #
  2. # $Id$
  3. #
  4. # This is the default LDAP schema of SER for OpenLDAP.
  5. # Written by Jan Janak <[email protected]>.
  6. #
  7. #
  8. # The root OID of IANA private enterprise numbers
  9. #
  10. objectIdentifier ianaPrivate 1.3.6.1.4.1
  11. #
  12. # The root OID of many LDAPv3 attributes
  13. #
  14. objectIdentifier ldap3OID ianaPrivate:1466
  15. #
  16. # The root OID assigned by the IANA to iptel.org
  17. #
  18. objectIdentifier iptelorg ianaPrivate:24960
  19. #
  20. # SER related objects and attributes
  21. #
  22. objectIdentifier ser iptelorg:0
  23. objectIdentifier serLDAP ser:1
  24. objectIdentifier serAttributeType serLDAP:0
  25. objectIdentifier serObjectClass serLDAP:1
  26. #
  27. # Convenience macros for commonly used syntax OIDs
  28. #
  29. objectIdentifier ldapSyntax ldap3OID:115.121.1
  30. objectIdentifier stringSyntax ldapSyntax:15
  31. objectIdentifier octetStringSyntax ldapSyntax:40
  32. objectIdentifier bitStringSyntax ldapSyntax:6
  33. objectIdentifier intSyntax ldapSyntax:27
  34. objectIdentifier numericStringSyntax ldapSyntax:36
  35. objectIdentifier binarySyntax ldapSyntax:5
  36. objectIdentifier boolSyntax ldapSyntax:7
  37. objectIdentifier genTimeSyntax ldapSyntax:24
  38. #
  39. # This is the parent attribute type for various UID attributes of SER, such
  40. # as serUID and serDID.
  41. #
  42. attributeType ( serAttributeType:0
  43. NAME 'serUUID'
  44. DESC 'SER Universally Unique Identifier'
  45. SYNTAX stringSyntax
  46. SINGLE-VALUE
  47. )
  48. #
  49. # serUID attribute stores universally unique identifiers of SER users, the
  50. # identifier is an opaque string by default.
  51. #
  52. attributeType ( serAttributeType:1 NAME 'serUID'
  53. DESC 'SER User Identifier'
  54. SUP serUUID
  55. )
  56. #
  57. # serDID attributes contain universally unique identifiers of virtual SER
  58. # domains. They are used to group a bunch of domain names together in a
  59. # single virtual domain.
  60. #
  61. attributeType ( serAttributeType:2 NAME 'serDID'
  62. DESC 'SER Domain Identifier'
  63. SUP serUUID
  64. )
  65. #
  66. # digesetUsername attribute contains the value of username field from
  67. # digest authentication credentials as specified in RFC2617. This attribute,
  68. # together with digestRealm, is used by SER during digest authentication to
  69. # lookup credentaials of a particular user.
  70. #
  71. attributeType ( serAttributeType:3 NAME 'digestUsername'
  72. DESC 'SIP Digest Authentication username'
  73. SYNTAX stringSyntax
  74. EQUALITY caseIgnoreMatch
  75. SINGLE-VALUE
  76. )
  77. #
  78. # digestRealm attribute contains the value of realm field from digest
  79. # authentication credentials as specified in RFC2617. This attribute,
  80. # together with digestUsername, is used by SER during digest authentication
  81. # to lookup credentials of a particular user.
  82. #
  83. attributeType ( serAttributeType:4 NAME 'digestRealm'
  84. DESC 'SIP Digest Authentication realm attribute'
  85. SYNTAX stringSyntax
  86. EQUALITY caseIgnoreMatch
  87. SINGLE-VALUE
  88. )
  89. #
  90. # digestPassword attribute contains the plain-text password for digest
  91. # authentication (see RFC2617)
  92. #
  93. attributeType ( serAttributeType:5 NAME 'digestPassword'
  94. DESC 'SIP Digest Authentication password'
  95. SYNTAX octetStringSyntax
  96. EQUALITY octetStringMatch
  97. SINGLE-VALUE
  98. )
  99. #
  100. # The attribute serFlags contains various SER and SERWeb related flags,
  101. # the flags are used to mark entries as deleted or disabled, they are
  102. # used to mark entries that are exclusively for SER or SERWeb, and so on.
  103. # The maximum length of the bit string fields is 32 bits, the most
  104. # significant bits of values longer than 32 will be ignored.
  105. #
  106. attributeType ( serAttributeType:6 NAME 'serFlags'
  107. DESC 'SER flags'
  108. SYNTAX bitStringSyntax
  109. EQUALITY bitStringMatch
  110. SINGLE-VALUE
  111. )
  112. #
  113. # This attribute contains the HA1 string as defined in RFC2617. The
  114. # string is an MD5 hash of digest username, realm, and password.
  115. # See RFC2617 for more details. SER is using either HA1 or plain-text
  116. # password (depending on configuration) when verifying digest credentials.
  117. #
  118. attributeType ( serAttributeType:7 NAME 'digestHA1'
  119. DESC 'Digest Authentication HA1 String'
  120. SYNTAX octetStringSyntax
  121. EQUALITY octetStringMatch
  122. SINGLE-VALUE
  123. )
  124. #
  125. # This attribute contains the HA1 string as defined in RFC2617. This is
  126. # similar to digestHA1 attribute, except that the MD5 hash in digestHA1b
  127. # also includes a domain part in username, so the username is of form
  128. # user@domain. This is sometimes needed when authenticating user agents
  129. # that put user@domain into the digest username field.
  130. #
  131. attributeType ( serAttributeType:8 NAME 'digestHA1b'
  132. DESC 'Digest Authentication HA1 String (includes domain in username)'
  133. SYNTAX octetStringSyntax
  134. EQUALITY octetStringMatch
  135. SINGLE-VALUE
  136. )
  137. #
  138. # This attribute stores a domain name within a virtual domain handled
  139. # by a SER server. SER users this value to determine whether the SIP
  140. # requests are to/from one of its virtual domains.
  141. #
  142. attributeType ( serAttributeType:9 NAME 'serDomain'
  143. DESC 'Domain Name'
  144. SYNTAX stringSyntax
  145. EQUALITY caseIgnoreMatch
  146. SINGLE-VALUE
  147. )
  148. #
  149. # SER attributes is a generic mechanism for storing configuration data.
  150. # This attribute contains the name of an SER attribute.
  151. #
  152. attributeType ( serAttributeType:10 NAME 'serAttrName'
  153. DESC 'SER Attribute Name'
  154. SYNTAX stringSyntax
  155. EQUALITY caseExactMatch
  156. SINGLE-VALUE
  157. )
  158. #
  159. # SER attributes is a generic mechanism for storing configuration data.
  160. # This attribute contains SER attribute type. There are two types of
  161. # SER attributes: integer and string.
  162. #
  163. attributeType ( serAttributeType:11 NAME 'serAttrType'
  164. DESC 'SER Attribute Type'
  165. SYNTAX intSyntax
  166. SINGLE-VALUE
  167. )
  168. #
  169. # SER attributes is a generic mechanism for storing configuration data.
  170. # This attribute contains the value (as string) of a SER attribute.
  171. #
  172. attributeType ( serAttributeType:12 NAME 'serAttrValue'
  173. DESC 'SER Attribute Value'
  174. SYNTAX stringSyntax
  175. EQUALITY caseExactMatch
  176. SINGLE-VALUE
  177. )
  178. #
  179. # digestAuthCredentials objects are used by SER to perform digest
  180. # authentication as defined in RFC3261 and RFC2617. Every object must
  181. # contain a username, a realm, and a UID of the user who owns the
  182. # credentials. In addition to that the object can contains either
  183. # password in plain-text format, or the HA1 string, or both. Which of
  184. # them will be used by SER depends on the configuration.
  185. #
  186. # This is an analogy to 'credentials' table found in SER relational
  187. # database schema.
  188. #
  189. objectClass ( serObjectClass:0 NAME 'digestAuthCredentials'
  190. DESC 'Credentials for SIP Digest Authentication'
  191. MUST ( digestUsername $ digestRealm $ serUID $ serFlags )
  192. MAY ( serDID $ digestPassword $ digestHA1 $ digestHA1b )
  193. )
  194. #
  195. # serDomain objects are used to store the information about virtual
  196. # domains supported by a SER server. The purpose of the object is
  197. # to map domain names (which appear in SIP messages) to universally
  198. # unique domain identifiers and vice versa.
  199. #
  200. # This is an analogy to 'domain' table found in SER relational database
  201. # schema.
  202. #
  203. objectClass ( serObjectClass:1 NAME 'serDomain'
  204. DESC 'SER Virtual Domains'
  205. MUST ( serDID $ serDomain $ serFlags )
  206. )
  207. #
  208. # This is an abstract class that can be used as a base for other classes
  209. # storing SER uri/user/domain/global attributes. An object storing SER
  210. # attributes must contain serAttrName, serAttrType, serAttrValue, and
  211. # serFlags attributes.
  212. #
  213. objectClass ( serObjectClass:2 NAME 'serAttrAbstract'
  214. ABSTRACT
  215. MUST ( serAttrName $ serAttrType $ serAttrValue $ serFlags )
  216. )
  217. #
  218. # An auxiliary class that can be used to extend other objects in an LDAP
  219. # directory with the possibility to store SER attributes.
  220. #
  221. objectClass ( serObjectClass:3 NAME 'serAttr'
  222. AUXILIARY
  223. SUP serAttrAbstract
  224. )
  225. #
  226. # This class is used to store domain level attributes. Domain level
  227. # attributes are attributes used to store configuration information related
  228. # to a virtual domain (i.e. common configuration for all users/URIs within
  229. # that virtual domain), such as digest authentication realm or default
  230. # language.
  231. #
  232. objectClass ( serObjectClass:4 NAME 'serDomainAttr'
  233. DESC 'SER Domain Attributes'
  234. SUP serAttrAbstract
  235. MUST ( serDID )
  236. )