SAML2.py 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. __author__ = 'rolandh'
  2. EDUPERSON_OID = "urn:oid:1.3.6.1.4.1.5923.1.1.1."
  3. X500ATTR_OID = "urn:oid:2.5.4."
  4. NOREDUPERSON_OID = "urn:oid:1.3.6.1.4.1.2428.90.1."
  5. NETSCAPE_LDAP = "urn:oid:2.16.840.1.113730.3.1."
  6. UCL_DIR_PILOT = 'urn:oid:0.9.2342.19200300.100.1.'
  7. PKCS_9 = "urn:oid:1.2.840.113549.1.9.1."
  8. UMICH = "urn:oid:1.3.6.1.4.1.250.1.57."
  9. MAP = {
  10. "identifier": "urn:oasis:names:tc:SAML:2.0:attrname-format:uri",
  11. "fro": {
  12. EDUPERSON_OID+'2': 'eduPersonNickname',
  13. EDUPERSON_OID+'9': 'eduPersonScopedAffiliation',
  14. EDUPERSON_OID+'11': 'eduPersonAssurance',
  15. EDUPERSON_OID+'10': 'eduPersonTargetedID',
  16. EDUPERSON_OID+'4': 'eduPersonOrgUnitDN',
  17. NOREDUPERSON_OID+'6': 'norEduOrgAcronym',
  18. NOREDUPERSON_OID+'7': 'norEduOrgUniqueIdentifier',
  19. NOREDUPERSON_OID+'4': 'norEduPersonLIN',
  20. EDUPERSON_OID+'1': 'eduPersonAffiliation',
  21. NOREDUPERSON_OID+'2': 'norEduOrgUnitUniqueNumber',
  22. NETSCAPE_LDAP+'40': 'userSMIMECertificate',
  23. NOREDUPERSON_OID+'1': 'norEduOrgUniqueNumber',
  24. NETSCAPE_LDAP+'241': 'displayName',
  25. UCL_DIR_PILOT+'37': 'associatedDomain',
  26. EDUPERSON_OID+'6': 'eduPersonPrincipalName',
  27. NOREDUPERSON_OID+'8': 'norEduOrgUnitUniqueIdentifier',
  28. NOREDUPERSON_OID+'9': 'federationFeideSchemaVersion',
  29. X500ATTR_OID+'53': 'deltaRevocationList',
  30. X500ATTR_OID+'52': 'supportedAlgorithms',
  31. X500ATTR_OID+'51': 'houseIdentifier',
  32. X500ATTR_OID+'50': 'uniqueMember',
  33. X500ATTR_OID+'19': 'physicalDeliveryOfficeName',
  34. X500ATTR_OID+'18': 'postOfficeBox',
  35. X500ATTR_OID+'17': 'postalCode',
  36. X500ATTR_OID+'16': 'postalAddress',
  37. X500ATTR_OID+'15': 'businessCategory',
  38. X500ATTR_OID+'14': 'searchGuide',
  39. EDUPERSON_OID+'5': 'eduPersonPrimaryAffiliation',
  40. X500ATTR_OID+'12': 'title',
  41. X500ATTR_OID+'11': 'ou',
  42. X500ATTR_OID+'10': 'o',
  43. X500ATTR_OID+'37': 'cACertificate',
  44. X500ATTR_OID+'36': 'userCertificate',
  45. X500ATTR_OID+'31': 'member',
  46. X500ATTR_OID+'30': 'supportedApplicationContext',
  47. X500ATTR_OID+'33': 'roleOccupant',
  48. X500ATTR_OID+'32': 'owner',
  49. NETSCAPE_LDAP+'1': 'carLicense',
  50. PKCS_9+'1': 'email',
  51. NETSCAPE_LDAP+'3': 'employeeNumber',
  52. NETSCAPE_LDAP+'2': 'departmentNumber',
  53. X500ATTR_OID+'39': 'certificateRevocationList',
  54. X500ATTR_OID+'38': 'authorityRevocationList',
  55. NETSCAPE_LDAP+'216': 'userPKCS12',
  56. EDUPERSON_OID+'8': 'eduPersonPrimaryOrgUnitDN',
  57. X500ATTR_OID+'9': 'street',
  58. X500ATTR_OID+'8': 'st',
  59. NETSCAPE_LDAP+'39': 'preferredLanguage',
  60. EDUPERSON_OID+'7': 'eduPersonEntitlement',
  61. X500ATTR_OID+'2': 'knowledgeInformation',
  62. X500ATTR_OID+'7': 'l',
  63. X500ATTR_OID+'6': 'c',
  64. X500ATTR_OID+'5': 'serialNumber',
  65. X500ATTR_OID+'4': 'sn',
  66. UCL_DIR_PILOT+'60': 'jpegPhoto',
  67. X500ATTR_OID+'65': 'pseudonym',
  68. NOREDUPERSON_OID+'5': 'norEduPersonNIN',
  69. UCL_DIR_PILOT+'3': 'mail',
  70. UCL_DIR_PILOT+'25': 'dc',
  71. X500ATTR_OID+'40': 'crossCertificatePair',
  72. X500ATTR_OID+'42': 'givenName',
  73. X500ATTR_OID+'43': 'initials',
  74. X500ATTR_OID+'44': 'generationQualifier',
  75. X500ATTR_OID+'45': 'x500UniqueIdentifier',
  76. X500ATTR_OID+'46': 'dnQualifier',
  77. X500ATTR_OID+'47': 'enhancedSearchGuide',
  78. X500ATTR_OID+'48': 'protocolInformation',
  79. X500ATTR_OID+'54': 'dmdName',
  80. NETSCAPE_LDAP+'4': 'employeeType',
  81. X500ATTR_OID+'22': 'teletexTerminalIdentifier',
  82. X500ATTR_OID+'23': 'facsimileTelephoneNumber',
  83. X500ATTR_OID+'20': 'telephoneNumber',
  84. X500ATTR_OID+'21': 'telexNumber',
  85. X500ATTR_OID+'26': 'registeredAddress',
  86. X500ATTR_OID+'27': 'destinationIndicator',
  87. X500ATTR_OID+'24': 'x121Address',
  88. X500ATTR_OID+'25': 'internationaliSDNNumber',
  89. X500ATTR_OID+'28': 'preferredDeliveryMethod',
  90. X500ATTR_OID+'29': 'presentationAddress',
  91. EDUPERSON_OID+'3': 'eduPersonOrgDN',
  92. NOREDUPERSON_OID+'3': 'norEduPersonBirthDate',
  93. UMICH+'57': 'labeledURI',
  94. UCL_DIR_PILOT+'1': 'uid',
  95. },
  96. "to": {
  97. 'roleOccupant': X500ATTR_OID+'33',
  98. 'gn': X500ATTR_OID+'42',
  99. 'norEduPersonNIN': NOREDUPERSON_OID+'5',
  100. 'title': X500ATTR_OID+'12',
  101. 'facsimileTelephoneNumber': X500ATTR_OID+'23',
  102. 'mail': UCL_DIR_PILOT+'3',
  103. 'postOfficeBox': X500ATTR_OID+'18',
  104. 'fax': X500ATTR_OID+'23',
  105. 'telephoneNumber': X500ATTR_OID+'20',
  106. 'norEduPersonBirthDate': NOREDUPERSON_OID+'3',
  107. 'rfc822Mailbox': UCL_DIR_PILOT+'3',
  108. 'dc': UCL_DIR_PILOT+'25',
  109. 'countryName': X500ATTR_OID+'6',
  110. 'emailAddress': PKCS_9+'1',
  111. 'employeeNumber': NETSCAPE_LDAP+'3',
  112. 'organizationName': X500ATTR_OID+'10',
  113. 'eduPersonAssurance': EDUPERSON_OID+'11',
  114. 'norEduOrgAcronym': NOREDUPERSON_OID+'6',
  115. 'registeredAddress': X500ATTR_OID+'26',
  116. 'physicalDeliveryOfficeName': X500ATTR_OID+'19',
  117. 'associatedDomain': UCL_DIR_PILOT+'37',
  118. 'l': X500ATTR_OID+'7',
  119. 'stateOrProvinceName': X500ATTR_OID+'8',
  120. 'federationFeideSchemaVersion': NOREDUPERSON_OID+'9',
  121. 'pkcs9email': PKCS_9+'1',
  122. 'givenName': X500ATTR_OID+'42',
  123. 'givenname': X500ATTR_OID+'42',
  124. 'x500UniqueIdentifier': X500ATTR_OID+'45',
  125. 'eduPersonNickname': EDUPERSON_OID+'2',
  126. 'houseIdentifier': X500ATTR_OID+'51',
  127. 'street': X500ATTR_OID+'9',
  128. 'supportedAlgorithms': X500ATTR_OID+'52',
  129. 'preferredLanguage': NETSCAPE_LDAP+'39',
  130. 'postalAddress': X500ATTR_OID+'16',
  131. 'email': PKCS_9+'1',
  132. 'norEduOrgUnitUniqueIdentifier': NOREDUPERSON_OID+'8',
  133. 'eduPersonPrimaryOrgUnitDN': EDUPERSON_OID+'8',
  134. 'c': X500ATTR_OID+'6',
  135. 'teletexTerminalIdentifier': X500ATTR_OID+'22',
  136. 'o': X500ATTR_OID+'10',
  137. 'cACertificate': X500ATTR_OID+'37',
  138. 'telexNumber': X500ATTR_OID+'21',
  139. 'ou': X500ATTR_OID+'11',
  140. 'initials': X500ATTR_OID+'43',
  141. 'eduPersonOrgUnitDN': EDUPERSON_OID+'4',
  142. 'deltaRevocationList': X500ATTR_OID+'53',
  143. 'norEduPersonLIN': NOREDUPERSON_OID+'4',
  144. 'supportedApplicationContext': X500ATTR_OID+'30',
  145. 'eduPersonEntitlement': EDUPERSON_OID+'7',
  146. 'generationQualifier': X500ATTR_OID+'44',
  147. 'eduPersonAffiliation': EDUPERSON_OID+'1',
  148. 'eduPersonPrincipalName': EDUPERSON_OID+'6',
  149. 'edupersonprincipalname': EDUPERSON_OID+'6',
  150. 'localityName': X500ATTR_OID+'7',
  151. 'owner': X500ATTR_OID+'32',
  152. 'norEduOrgUnitUniqueNumber': NOREDUPERSON_OID+'2',
  153. 'searchGuide': X500ATTR_OID+'14',
  154. 'certificateRevocationList': X500ATTR_OID+'39',
  155. 'organizationalUnitName': X500ATTR_OID+'11',
  156. 'userCertificate': X500ATTR_OID+'36',
  157. 'preferredDeliveryMethod': X500ATTR_OID+'28',
  158. 'internationaliSDNNumber': X500ATTR_OID+'25',
  159. 'uniqueMember': X500ATTR_OID+'50',
  160. 'departmentNumber': NETSCAPE_LDAP+'2',
  161. 'enhancedSearchGuide': X500ATTR_OID+'47',
  162. 'userPKCS12': NETSCAPE_LDAP+'216',
  163. 'eduPersonTargetedID': EDUPERSON_OID+'10',
  164. 'norEduOrgUniqueNumber': NOREDUPERSON_OID+'1',
  165. 'x121Address': X500ATTR_OID+'24',
  166. 'destinationIndicator': X500ATTR_OID+'27',
  167. 'eduPersonPrimaryAffiliation': EDUPERSON_OID+'5',
  168. 'surname': X500ATTR_OID+'4',
  169. 'jpegPhoto': UCL_DIR_PILOT+'60',
  170. 'eduPersonScopedAffiliation': EDUPERSON_OID+'9',
  171. 'edupersonscopedaffiliation': EDUPERSON_OID+'9',
  172. 'protocolInformation': X500ATTR_OID+'48',
  173. 'knowledgeInformation': X500ATTR_OID+'2',
  174. 'employeeType': NETSCAPE_LDAP+'4',
  175. 'userSMIMECertificate': NETSCAPE_LDAP+'40',
  176. 'member': X500ATTR_OID+'31',
  177. 'streetAddress': X500ATTR_OID+'9',
  178. 'dmdName': X500ATTR_OID+'54',
  179. 'postalCode': X500ATTR_OID+'17',
  180. 'pseudonym': X500ATTR_OID+'65',
  181. 'dnQualifier': X500ATTR_OID+'46',
  182. 'crossCertificatePair': X500ATTR_OID+'40',
  183. 'eduPersonOrgDN': EDUPERSON_OID+'3',
  184. 'authorityRevocationList': X500ATTR_OID+'38',
  185. 'displayName': NETSCAPE_LDAP+'241',
  186. 'businessCategory': X500ATTR_OID+'15',
  187. 'serialNumber': X500ATTR_OID+'5',
  188. 'norEduOrgUniqueIdentifier': NOREDUPERSON_OID+'7',
  189. 'st': X500ATTR_OID+'8',
  190. 'carLicense': NETSCAPE_LDAP+'1',
  191. 'presentationAddress': X500ATTR_OID+'29',
  192. 'sn': X500ATTR_OID+'4',
  193. 'domainComponent': UCL_DIR_PILOT+'25',
  194. 'labeledURI': UMICH+'57',
  195. 'uid': UCL_DIR_PILOT+'1'
  196. }
  197. }