Added tool to keep attributemaps in sync. Ran it on the standard maps.

This commit is contained in:
Roland Hedberg
2014-04-15 00:11:21 +02:00
parent 4fcb94b6ed
commit 817733a821
6 changed files with 814 additions and 674 deletions

View File

@@ -1,20 +1,18 @@
# See http://technet.microsoft.com/en-us/library/cc733065(v=ws.10).aspx CLAIMS = 'http://schemas.xmlsoap.org/claims/'
# and http://technet.microsoft.com/en-us/library/ee913589(v=ws.10).aspx
# for information regarding the default claim types supported by
# Microsoft ADFS v1.x.
MAP = { MAP = {
"identifier": "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified", "identifier": "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified",
"fro": { 'fro': {
'http://schemas.xmlsoap.org/claims/commonname': 'commonName', CLAIMS+'commonname': 'commonName',
'http://schemas.xmlsoap.org/claims/emailaddress': 'emailAddress', CLAIMS+'emailaddress': 'emailAddress',
'http://schemas.xmlsoap.org/claims/group': 'group', CLAIMS+'group': 'group',
'http://schemas.xmlsoap.org/claims/upn': 'upn', CLAIMS+'upn': 'upn',
}, },
"to": { 'to': {
'commonName': 'http://schemas.xmlsoap.org/claims/commonname', 'commonName': CLAIMS+'commonname',
'emailAddress': 'http://schemas.xmlsoap.org/claims/emailaddress', 'emailAddress': CLAIMS+'emailaddress',
'group': 'http://schemas.xmlsoap.org/claims/group', 'group': CLAIMS+'group',
'upn': 'http://schemas.xmlsoap.org/claims/upn', 'upn': CLAIMS+'upn',
} }
} }

View File

@@ -1,47 +1,49 @@
# See http://technet.microsoft.com/en-us/library/ee913589(v=ws.10).aspx CLAIMS = 'http://schemas.xmlsoap.org/claims/'
# for information regarding the default claim types supported by COM_WS_CLAIMS = 'http://schemas.xmlsoap.com/ws/2005/05/identity/claims/'
# Microsoft ADFS v2.0. MS_CLAIMS = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/'
ORG_WS_CLAIMS = 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/'
MAP = { MAP = {
"identifier": "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified", "identifier": "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified",
"fro": { 'fro': {
'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress': 'emailAddress', CLAIMS+'commonname': 'commonName',
'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname': 'givenName', CLAIMS+'group': 'group',
'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name': 'name', COM_WS_CLAIMS+'denyonlysid': 'denyOnlySid',
'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn': 'upn', MS_CLAIMS+'authenticationmethod': 'authenticationMethod',
'http://schemas.xmlsoap.org/claims/commonname': 'commonName', MS_CLAIMS+'denyonlyprimarygroupsid': 'denyOnlyPrimaryGroupSid',
'http://schemas.xmlsoap.org/claims/group': 'group', MS_CLAIMS+'denyonlyprimarysid': 'denyOnlyPrimarySid',
'http://schemas.microsoft.com/ws/2008/06/identity/claims/role': 'role', MS_CLAIMS+'groupsid': 'groupSid',
'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname': 'surname', MS_CLAIMS+'primarygroupsid': 'primaryGroupSid',
'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier': 'privatePersonalId', MS_CLAIMS+'primarysid': 'primarySid',
'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier': 'nameId', MS_CLAIMS+'role': 'role',
'http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod': 'authenticationMethod', MS_CLAIMS+'windowsaccountname': 'windowsAccountName',
'http://schemas.xmlsoap.com/ws/2005/05/identity/claims/denyonlysid': 'denyOnlySid', ORG_WS_CLAIMS+'emailaddress': 'emailAddress',
'http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid': 'denyOnlyPrimarySid', ORG_WS_CLAIMS+'givenname': 'givenName',
'http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid': 'denyOnlyPrimaryGroupSid', ORG_WS_CLAIMS+'name': 'name',
'http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid': 'groupSid', ORG_WS_CLAIMS+'nameidentifier': 'nameId',
'http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid': 'primaryGroupSid', ORG_WS_CLAIMS+'privatepersonalidentifier': 'privatePersonalId',
'http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid': 'primarySid', ORG_WS_CLAIMS+'surname': 'surname',
'http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname': 'windowsAccountName', ORG_WS_CLAIMS+'upn': 'upn',
}, },
"to": { 'to': {
'emailAddress': 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress', 'authenticationMethod': MS_CLAIMS+'authenticationmethod',
'givenName': 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname', 'commonName': CLAIMS+'commonname',
'name': 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name', 'denyOnlyPrimaryGroupSid': MS_CLAIMS+'denyonlyprimarygroupsid',
'upn': 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn', 'denyOnlyPrimarySid': MS_CLAIMS+'denyonlyprimarysid',
'commonName': 'http://schemas.xmlsoap.org/claims/commonname', 'denyOnlySid': COM_WS_CLAIMS+'denyonlysid',
'group': 'http://schemas.xmlsoap.org/claims/group', 'emailAddress': ORG_WS_CLAIMS+'emailaddress',
'role': 'http://schemas.microsoft.com/ws/2008/06/identity/claims/role', 'givenName': ORG_WS_CLAIMS+'givenname',
'surname': 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname', 'group': CLAIMS+'group',
'privatePersonalId': 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier', 'groupSid': MS_CLAIMS+'groupsid',
'nameId': 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier', 'name': ORG_WS_CLAIMS+'name',
'authenticationMethod': 'http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod', 'nameId': ORG_WS_CLAIMS+'nameidentifier',
'denyOnlySid': 'http://schemas.xmlsoap.com/ws/2005/05/identity/claims/denyonlysid', 'primaryGroupSid': MS_CLAIMS+'primarygroupsid',
'denyOnlyPrimarySid': 'http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid', 'primarySid': MS_CLAIMS+'primarysid',
'denyOnlyPrimaryGroupSid': 'http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid', 'privatePersonalId': ORG_WS_CLAIMS+'privatepersonalidentifier',
'groupSid': 'http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid', 'role': MS_CLAIMS+'role',
'primaryGroupSid': 'http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid', 'surname': ORG_WS_CLAIMS+'surname',
'primarySid': 'http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid', 'upn': ORG_WS_CLAIMS+'upn',
'windowsAccountName': 'http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname', 'windowsAccountName': MS_CLAIMS+'windowsaccountname',
} }
} }

View File

@@ -1,326 +1,328 @@
DEF = 'urn:mace:dir:attribute-def:'
MAP = { MAP = {
"identifier": "urn:oasis:names:tc:SAML:2.0:attrname-format:basic", "identifier": "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"fro": { 'fro': {
'urn:mace:dir:attribute-def:aRecord': 'aRecord', DEF+'aRecord': 'aRecord',
'urn:mace:dir:attribute-def:aliasedEntryName': 'aliasedEntryName', DEF+'aliasedEntryName': 'aliasedEntryName',
'urn:mace:dir:attribute-def:aliasedObjectName': 'aliasedObjectName', DEF+'aliasedObjectName': 'aliasedObjectName',
'urn:mace:dir:attribute-def:associatedDomain': 'associatedDomain', DEF+'associatedDomain': 'associatedDomain',
'urn:mace:dir:attribute-def:associatedName': 'associatedName', DEF+'associatedName': 'associatedName',
'urn:mace:dir:attribute-def:audio': 'audio', DEF+'audio': 'audio',
'urn:mace:dir:attribute-def:authorityRevocationList': 'authorityRevocationList', DEF+'authorityRevocationList': 'authorityRevocationList',
'urn:mace:dir:attribute-def:buildingName': 'buildingName', DEF+'buildingName': 'buildingName',
'urn:mace:dir:attribute-def:businessCategory': 'businessCategory', DEF+'businessCategory': 'businessCategory',
'urn:mace:dir:attribute-def:c': 'c', DEF+'c': 'c',
'urn:mace:dir:attribute-def:cACertificate': 'cACertificate', DEF+'cACertificate': 'cACertificate',
'urn:mace:dir:attribute-def:cNAMERecord': 'cNAMERecord', DEF+'cNAMERecord': 'cNAMERecord',
'urn:mace:dir:attribute-def:carLicense': 'carLicense', DEF+'carLicense': 'carLicense',
'urn:mace:dir:attribute-def:certificateRevocationList': 'certificateRevocationList', DEF+'certificateRevocationList': 'certificateRevocationList',
'urn:mace:dir:attribute-def:cn': 'cn', DEF+'cn': 'cn',
'urn:mace:dir:attribute-def:co': 'co', DEF+'co': 'co',
'urn:mace:dir:attribute-def:commonName': 'commonName', DEF+'commonName': 'commonName',
'urn:mace:dir:attribute-def:countryName': 'countryName', DEF+'countryName': 'countryName',
'urn:mace:dir:attribute-def:crossCertificatePair': 'crossCertificatePair', DEF+'crossCertificatePair': 'crossCertificatePair',
'urn:mace:dir:attribute-def:dITRedirect': 'dITRedirect', DEF+'dITRedirect': 'dITRedirect',
'urn:mace:dir:attribute-def:dSAQuality': 'dSAQuality', DEF+'dSAQuality': 'dSAQuality',
'urn:mace:dir:attribute-def:dc': 'dc', DEF+'dc': 'dc',
'urn:mace:dir:attribute-def:deltaRevocationList': 'deltaRevocationList', DEF+'deltaRevocationList': 'deltaRevocationList',
'urn:mace:dir:attribute-def:departmentNumber': 'departmentNumber', DEF+'departmentNumber': 'departmentNumber',
'urn:mace:dir:attribute-def:description': 'description', DEF+'description': 'description',
'urn:mace:dir:attribute-def:destinationIndicator': 'destinationIndicator', DEF+'destinationIndicator': 'destinationIndicator',
'urn:mace:dir:attribute-def:displayName': 'displayName', DEF+'displayName': 'displayName',
'urn:mace:dir:attribute-def:distinguishedName': 'distinguishedName', DEF+'distinguishedName': 'distinguishedName',
'urn:mace:dir:attribute-def:dmdName': 'dmdName', DEF+'dmdName': 'dmdName',
'urn:mace:dir:attribute-def:dnQualifier': 'dnQualifier', DEF+'dnQualifier': 'dnQualifier',
'urn:mace:dir:attribute-def:documentAuthor': 'documentAuthor', DEF+'documentAuthor': 'documentAuthor',
'urn:mace:dir:attribute-def:documentIdentifier': 'documentIdentifier', DEF+'documentIdentifier': 'documentIdentifier',
'urn:mace:dir:attribute-def:documentLocation': 'documentLocation', DEF+'documentLocation': 'documentLocation',
'urn:mace:dir:attribute-def:documentPublisher': 'documentPublisher', DEF+'documentPublisher': 'documentPublisher',
'urn:mace:dir:attribute-def:documentTitle': 'documentTitle', DEF+'documentTitle': 'documentTitle',
'urn:mace:dir:attribute-def:documentVersion': 'documentVersion', DEF+'documentVersion': 'documentVersion',
'urn:mace:dir:attribute-def:domainComponent': 'domainComponent', DEF+'domainComponent': 'domainComponent',
'urn:mace:dir:attribute-def:drink': 'drink', DEF+'drink': 'drink',
'urn:mace:dir:attribute-def:eduOrgHomePageURI': 'eduOrgHomePageURI', DEF+'eduOrgHomePageURI': 'eduOrgHomePageURI',
'urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI': 'eduOrgIdentityAuthNPolicyURI', DEF+'eduOrgIdentityAuthNPolicyURI': 'eduOrgIdentityAuthNPolicyURI',
'urn:mace:dir:attribute-def:eduOrgLegalName': 'eduOrgLegalName', DEF+'eduOrgLegalName': 'eduOrgLegalName',
'urn:mace:dir:attribute-def:eduOrgSuperiorURI': 'eduOrgSuperiorURI', DEF+'eduOrgSuperiorURI': 'eduOrgSuperiorURI',
'urn:mace:dir:attribute-def:eduOrgWhitePagesURI': 'eduOrgWhitePagesURI', DEF+'eduOrgWhitePagesURI': 'eduOrgWhitePagesURI',
'urn:mace:dir:attribute-def:eduPersonAffiliation': 'eduPersonAffiliation', DEF+'eduPersonAffiliation': 'eduPersonAffiliation',
'urn:mace:dir:attribute-def:eduPersonEntitlement': 'eduPersonEntitlement', DEF+'eduPersonEntitlement': 'eduPersonEntitlement',
'urn:mace:dir:attribute-def:eduPersonNickname': 'eduPersonNickname', DEF+'eduPersonNickname': 'eduPersonNickname',
'urn:mace:dir:attribute-def:eduPersonOrgDN': 'eduPersonOrgDN', DEF+'eduPersonOrgDN': 'eduPersonOrgDN',
'urn:mace:dir:attribute-def:eduPersonOrgUnitDN': 'eduPersonOrgUnitDN', DEF+'eduPersonOrgUnitDN': 'eduPersonOrgUnitDN',
'urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation': 'eduPersonPrimaryAffiliation', DEF+'eduPersonPrimaryAffiliation': 'eduPersonPrimaryAffiliation',
'urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN': 'eduPersonPrimaryOrgUnitDN', DEF+'eduPersonPrimaryOrgUnitDN': 'eduPersonPrimaryOrgUnitDN',
'urn:mace:dir:attribute-def:eduPersonPrincipalName': 'eduPersonPrincipalName', DEF+'eduPersonPrincipalName': 'eduPersonPrincipalName',
'urn:mace:dir:attribute-def:eduPersonScopedAffiliation': 'eduPersonScopedAffiliation', DEF+'eduPersonScopedAffiliation': 'eduPersonScopedAffiliation',
'urn:mace:dir:attribute-def:eduPersonTargetedID': 'eduPersonTargetedID', DEF+'eduPersonTargetedID': 'eduPersonTargetedID',
'urn:mace:dir:attribute-def:email': 'email', DEF+'email': 'email',
'urn:mace:dir:attribute-def:emailAddress': 'emailAddress', DEF+'emailAddress': 'emailAddress',
'urn:mace:dir:attribute-def:employeeNumber': 'employeeNumber', DEF+'employeeNumber': 'employeeNumber',
'urn:mace:dir:attribute-def:employeeType': 'employeeType', DEF+'employeeType': 'employeeType',
'urn:mace:dir:attribute-def:enhancedSearchGuide': 'enhancedSearchGuide', DEF+'enhancedSearchGuide': 'enhancedSearchGuide',
'urn:mace:dir:attribute-def:facsimileTelephoneNumber': 'facsimileTelephoneNumber', DEF+'facsimileTelephoneNumber': 'facsimileTelephoneNumber',
'urn:mace:dir:attribute-def:favouriteDrink': 'favouriteDrink', DEF+'favouriteDrink': 'favouriteDrink',
'urn:mace:dir:attribute-def:fax': 'fax', DEF+'fax': 'fax',
'urn:mace:dir:attribute-def:federationFeideSchemaVersion': 'federationFeideSchemaVersion', DEF+'federationFeideSchemaVersion': 'federationFeideSchemaVersion',
'urn:mace:dir:attribute-def:friendlyCountryName': 'friendlyCountryName', DEF+'friendlyCountryName': 'friendlyCountryName',
'urn:mace:dir:attribute-def:generationQualifier': 'generationQualifier', DEF+'generationQualifier': 'generationQualifier',
'urn:mace:dir:attribute-def:givenName': 'givenName', DEF+'givenName': 'givenName',
'urn:mace:dir:attribute-def:gn': 'gn', DEF+'gn': 'gn',
'urn:mace:dir:attribute-def:homePhone': 'homePhone', DEF+'homePhone': 'homePhone',
'urn:mace:dir:attribute-def:homePostalAddress': 'homePostalAddress', DEF+'homePostalAddress': 'homePostalAddress',
'urn:mace:dir:attribute-def:homeTelephoneNumber': 'homeTelephoneNumber', DEF+'homeTelephoneNumber': 'homeTelephoneNumber',
'urn:mace:dir:attribute-def:host': 'host', DEF+'host': 'host',
'urn:mace:dir:attribute-def:houseIdentifier': 'houseIdentifier', DEF+'houseIdentifier': 'houseIdentifier',
'urn:mace:dir:attribute-def:info': 'info', DEF+'info': 'info',
'urn:mace:dir:attribute-def:initials': 'initials', DEF+'initials': 'initials',
'urn:mace:dir:attribute-def:internationaliSDNNumber': 'internationaliSDNNumber', DEF+'internationaliSDNNumber': 'internationaliSDNNumber',
'urn:mace:dir:attribute-def:janetMailbox': 'janetMailbox', DEF+'janetMailbox': 'janetMailbox',
'urn:mace:dir:attribute-def:jpegPhoto': 'jpegPhoto', DEF+'jpegPhoto': 'jpegPhoto',
'urn:mace:dir:attribute-def:knowledgeInformation': 'knowledgeInformation', DEF+'knowledgeInformation': 'knowledgeInformation',
'urn:mace:dir:attribute-def:l': 'l', DEF+'l': 'l',
'urn:mace:dir:attribute-def:labeledURI': 'labeledURI', DEF+'labeledURI': 'labeledURI',
'urn:mace:dir:attribute-def:localityName': 'localityName', DEF+'localityName': 'localityName',
'urn:mace:dir:attribute-def:mDRecord': 'mDRecord', DEF+'mDRecord': 'mDRecord',
'urn:mace:dir:attribute-def:mXRecord': 'mXRecord', DEF+'mXRecord': 'mXRecord',
'urn:mace:dir:attribute-def:mail': 'mail', DEF+'mail': 'mail',
'urn:mace:dir:attribute-def:mailPreferenceOption': 'mailPreferenceOption', DEF+'mailPreferenceOption': 'mailPreferenceOption',
'urn:mace:dir:attribute-def:manager': 'manager', DEF+'manager': 'manager',
'urn:mace:dir:attribute-def:member': 'member', DEF+'member': 'member',
'urn:mace:dir:attribute-def:mobile': 'mobile', DEF+'mobile': 'mobile',
'urn:mace:dir:attribute-def:mobileTelephoneNumber': 'mobileTelephoneNumber', DEF+'mobileTelephoneNumber': 'mobileTelephoneNumber',
'urn:mace:dir:attribute-def:nSRecord': 'nSRecord', DEF+'nSRecord': 'nSRecord',
'urn:mace:dir:attribute-def:name': 'name', DEF+'name': 'name',
'urn:mace:dir:attribute-def:norEduOrgAcronym': 'norEduOrgAcronym', DEF+'norEduOrgAcronym': 'norEduOrgAcronym',
'urn:mace:dir:attribute-def:norEduOrgNIN': 'norEduOrgNIN', DEF+'norEduOrgNIN': 'norEduOrgNIN',
'urn:mace:dir:attribute-def:norEduOrgSchemaVersion': 'norEduOrgSchemaVersion', DEF+'norEduOrgSchemaVersion': 'norEduOrgSchemaVersion',
'urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier': 'norEduOrgUniqueIdentifier', DEF+'norEduOrgUniqueIdentifier': 'norEduOrgUniqueIdentifier',
'urn:mace:dir:attribute-def:norEduOrgUniqueNumber': 'norEduOrgUniqueNumber', DEF+'norEduOrgUniqueNumber': 'norEduOrgUniqueNumber',
'urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier': 'norEduOrgUnitUniqueIdentifier', DEF+'norEduOrgUnitUniqueIdentifier': 'norEduOrgUnitUniqueIdentifier',
'urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber': 'norEduOrgUnitUniqueNumber', DEF+'norEduOrgUnitUniqueNumber': 'norEduOrgUnitUniqueNumber',
'urn:mace:dir:attribute-def:norEduPersonBirthDate': 'norEduPersonBirthDate', DEF+'norEduPersonBirthDate': 'norEduPersonBirthDate',
'urn:mace:dir:attribute-def:norEduPersonLIN': 'norEduPersonLIN', DEF+'norEduPersonLIN': 'norEduPersonLIN',
'urn:mace:dir:attribute-def:norEduPersonNIN': 'norEduPersonNIN', DEF+'norEduPersonNIN': 'norEduPersonNIN',
'urn:mace:dir:attribute-def:o': 'o', DEF+'o': 'o',
'urn:mace:dir:attribute-def:objectClass': 'objectClass', DEF+'objectClass': 'objectClass',
'urn:mace:dir:attribute-def:organizationName': 'organizationName', DEF+'organizationName': 'organizationName',
'urn:mace:dir:attribute-def:organizationalStatus': 'organizationalStatus', DEF+'organizationalStatus': 'organizationalStatus',
'urn:mace:dir:attribute-def:organizationalUnitName': 'organizationalUnitName', DEF+'organizationalUnitName': 'organizationalUnitName',
'urn:mace:dir:attribute-def:otherMailbox': 'otherMailbox', DEF+'otherMailbox': 'otherMailbox',
'urn:mace:dir:attribute-def:ou': 'ou', DEF+'ou': 'ou',
'urn:mace:dir:attribute-def:owner': 'owner', DEF+'owner': 'owner',
'urn:mace:dir:attribute-def:pager': 'pager', DEF+'pager': 'pager',
'urn:mace:dir:attribute-def:pagerTelephoneNumber': 'pagerTelephoneNumber', DEF+'pagerTelephoneNumber': 'pagerTelephoneNumber',
'urn:mace:dir:attribute-def:personalSignature': 'personalSignature', DEF+'personalSignature': 'personalSignature',
'urn:mace:dir:attribute-def:personalTitle': 'personalTitle', DEF+'personalTitle': 'personalTitle',
'urn:mace:dir:attribute-def:photo': 'photo', DEF+'photo': 'photo',
'urn:mace:dir:attribute-def:physicalDeliveryOfficeName': 'physicalDeliveryOfficeName', DEF+'physicalDeliveryOfficeName': 'physicalDeliveryOfficeName',
'urn:mace:dir:attribute-def:pkcs9email': 'pkcs9email', DEF+'pkcs9email': 'pkcs9email',
'urn:mace:dir:attribute-def:postOfficeBox': 'postOfficeBox', DEF+'postOfficeBox': 'postOfficeBox',
'urn:mace:dir:attribute-def:postalAddress': 'postalAddress', DEF+'postalAddress': 'postalAddress',
'urn:mace:dir:attribute-def:postalCode': 'postalCode', DEF+'postalCode': 'postalCode',
'urn:mace:dir:attribute-def:preferredDeliveryMethod': 'preferredDeliveryMethod', DEF+'preferredDeliveryMethod': 'preferredDeliveryMethod',
'urn:mace:dir:attribute-def:preferredLanguage': 'preferredLanguage', DEF+'preferredLanguage': 'preferredLanguage',
'urn:mace:dir:attribute-def:presentationAddress': 'presentationAddress', DEF+'presentationAddress': 'presentationAddress',
'urn:mace:dir:attribute-def:protocolInformation': 'protocolInformation', DEF+'protocolInformation': 'protocolInformation',
'urn:mace:dir:attribute-def:pseudonym': 'pseudonym', DEF+'pseudonym': 'pseudonym',
'urn:mace:dir:attribute-def:registeredAddress': 'registeredAddress', DEF+'registeredAddress': 'registeredAddress',
'urn:mace:dir:attribute-def:rfc822Mailbox': 'rfc822Mailbox', DEF+'rfc822Mailbox': 'rfc822Mailbox',
'urn:mace:dir:attribute-def:roleOccupant': 'roleOccupant', DEF+'roleOccupant': 'roleOccupant',
'urn:mace:dir:attribute-def:roomNumber': 'roomNumber', DEF+'roomNumber': 'roomNumber',
'urn:mace:dir:attribute-def:sOARecord': 'sOARecord', DEF+'sOARecord': 'sOARecord',
'urn:mace:dir:attribute-def:searchGuide': 'searchGuide', DEF+'searchGuide': 'searchGuide',
'urn:mace:dir:attribute-def:secretary': 'secretary', DEF+'secretary': 'secretary',
'urn:mace:dir:attribute-def:seeAlso': 'seeAlso', DEF+'seeAlso': 'seeAlso',
'urn:mace:dir:attribute-def:serialNumber': 'serialNumber', DEF+'serialNumber': 'serialNumber',
'urn:mace:dir:attribute-def:singleLevelQuality': 'singleLevelQuality', DEF+'singleLevelQuality': 'singleLevelQuality',
'urn:mace:dir:attribute-def:sn': 'sn', DEF+'sn': 'sn',
'urn:mace:dir:attribute-def:st': 'st', DEF+'st': 'st',
'urn:mace:dir:attribute-def:stateOrProvinceName': 'stateOrProvinceName', DEF+'stateOrProvinceName': 'stateOrProvinceName',
'urn:mace:dir:attribute-def:street': 'street', DEF+'street': 'street',
'urn:mace:dir:attribute-def:streetAddress': 'streetAddress', DEF+'streetAddress': 'streetAddress',
'urn:mace:dir:attribute-def:subtreeMaximumQuality': 'subtreeMaximumQuality', DEF+'subtreeMaximumQuality': 'subtreeMaximumQuality',
'urn:mace:dir:attribute-def:subtreeMinimumQuality': 'subtreeMinimumQuality', DEF+'subtreeMinimumQuality': 'subtreeMinimumQuality',
'urn:mace:dir:attribute-def:supportedAlgorithms': 'supportedAlgorithms', DEF+'supportedAlgorithms': 'supportedAlgorithms',
'urn:mace:dir:attribute-def:supportedApplicationContext': 'supportedApplicationContext', DEF+'supportedApplicationContext': 'supportedApplicationContext',
'urn:mace:dir:attribute-def:surname': 'surname', DEF+'surname': 'surname',
'urn:mace:dir:attribute-def:telephoneNumber': 'telephoneNumber', DEF+'telephoneNumber': 'telephoneNumber',
'urn:mace:dir:attribute-def:teletexTerminalIdentifier': 'teletexTerminalIdentifier', DEF+'teletexTerminalIdentifier': 'teletexTerminalIdentifier',
'urn:mace:dir:attribute-def:telexNumber': 'telexNumber', DEF+'telexNumber': 'telexNumber',
'urn:mace:dir:attribute-def:textEncodedORAddress': 'textEncodedORAddress', DEF+'textEncodedORAddress': 'textEncodedORAddress',
'urn:mace:dir:attribute-def:title': 'title', DEF+'title': 'title',
'urn:mace:dir:attribute-def:uid': 'uid', DEF+'uid': 'uid',
'urn:mace:dir:attribute-def:uniqueIdentifier': 'uniqueIdentifier', DEF+'uniqueIdentifier': 'uniqueIdentifier',
'urn:mace:dir:attribute-def:uniqueMember': 'uniqueMember', DEF+'uniqueMember': 'uniqueMember',
'urn:mace:dir:attribute-def:userCertificate': 'userCertificate', DEF+'userCertificate': 'userCertificate',
'urn:mace:dir:attribute-def:userClass': 'userClass', DEF+'userClass': 'userClass',
'urn:mace:dir:attribute-def:userPKCS12': 'userPKCS12', DEF+'userPKCS12': 'userPKCS12',
'urn:mace:dir:attribute-def:userPassword': 'userPassword', DEF+'userPassword': 'userPassword',
'urn:mace:dir:attribute-def:userSMIMECertificate': 'userSMIMECertificate', DEF+'userSMIMECertificate': 'userSMIMECertificate',
'urn:mace:dir:attribute-def:userid': 'userid', DEF+'userid': 'userid',
'urn:mace:dir:attribute-def:x121Address': 'x121Address', DEF+'x121Address': 'x121Address',
'urn:mace:dir:attribute-def:x500UniqueIdentifier': 'x500UniqueIdentifier', DEF+'x500UniqueIdentifier': 'x500UniqueIdentifier',
}, },
"to": { 'to': {
'aRecord': 'urn:mace:dir:attribute-def:aRecord', 'aRecord': DEF+'aRecord',
'aliasedEntryName': 'urn:mace:dir:attribute-def:aliasedEntryName', 'aliasedEntryName': DEF+'aliasedEntryName',
'aliasedObjectName': 'urn:mace:dir:attribute-def:aliasedObjectName', 'aliasedObjectName': DEF+'aliasedObjectName',
'associatedDomain': 'urn:mace:dir:attribute-def:associatedDomain', 'associatedDomain': DEF+'associatedDomain',
'associatedName': 'urn:mace:dir:attribute-def:associatedName', 'associatedName': DEF+'associatedName',
'audio': 'urn:mace:dir:attribute-def:audio', 'audio': DEF+'audio',
'authorityRevocationList': 'urn:mace:dir:attribute-def:authorityRevocationList', 'authorityRevocationList': DEF+'authorityRevocationList',
'buildingName': 'urn:mace:dir:attribute-def:buildingName', 'buildingName': DEF+'buildingName',
'businessCategory': 'urn:mace:dir:attribute-def:businessCategory', 'businessCategory': DEF+'businessCategory',
'c': 'urn:mace:dir:attribute-def:c', 'c': DEF+'c',
'cACertificate': 'urn:mace:dir:attribute-def:cACertificate', 'cACertificate': DEF+'cACertificate',
'cNAMERecord': 'urn:mace:dir:attribute-def:cNAMERecord', 'cNAMERecord': DEF+'cNAMERecord',
'carLicense': 'urn:mace:dir:attribute-def:carLicense', 'carLicense': DEF+'carLicense',
'certificateRevocationList': 'urn:mace:dir:attribute-def:certificateRevocationList', 'certificateRevocationList': DEF+'certificateRevocationList',
'cn': 'urn:mace:dir:attribute-def:cn', 'cn': DEF+'cn',
'co': 'urn:mace:dir:attribute-def:co', 'co': DEF+'co',
'commonName': 'urn:mace:dir:attribute-def:commonName', 'commonName': DEF+'commonName',
'countryName': 'urn:mace:dir:attribute-def:countryName', 'countryName': DEF+'countryName',
'crossCertificatePair': 'urn:mace:dir:attribute-def:crossCertificatePair', 'crossCertificatePair': DEF+'crossCertificatePair',
'dITRedirect': 'urn:mace:dir:attribute-def:dITRedirect', 'dITRedirect': DEF+'dITRedirect',
'dSAQuality': 'urn:mace:dir:attribute-def:dSAQuality', 'dSAQuality': DEF+'dSAQuality',
'dc': 'urn:mace:dir:attribute-def:dc', 'dc': DEF+'dc',
'deltaRevocationList': 'urn:mace:dir:attribute-def:deltaRevocationList', 'deltaRevocationList': DEF+'deltaRevocationList',
'departmentNumber': 'urn:mace:dir:attribute-def:departmentNumber', 'departmentNumber': DEF+'departmentNumber',
'description': 'urn:mace:dir:attribute-def:description', 'description': DEF+'description',
'destinationIndicator': 'urn:mace:dir:attribute-def:destinationIndicator', 'destinationIndicator': DEF+'destinationIndicator',
'displayName': 'urn:mace:dir:attribute-def:displayName', 'displayName': DEF+'displayName',
'distinguishedName': 'urn:mace:dir:attribute-def:distinguishedName', 'distinguishedName': DEF+'distinguishedName',
'dmdName': 'urn:mace:dir:attribute-def:dmdName', 'dmdName': DEF+'dmdName',
'dnQualifier': 'urn:mace:dir:attribute-def:dnQualifier', 'dnQualifier': DEF+'dnQualifier',
'documentAuthor': 'urn:mace:dir:attribute-def:documentAuthor', 'documentAuthor': DEF+'documentAuthor',
'documentIdentifier': 'urn:mace:dir:attribute-def:documentIdentifier', 'documentIdentifier': DEF+'documentIdentifier',
'documentLocation': 'urn:mace:dir:attribute-def:documentLocation', 'documentLocation': DEF+'documentLocation',
'documentPublisher': 'urn:mace:dir:attribute-def:documentPublisher', 'documentPublisher': DEF+'documentPublisher',
'documentTitle': 'urn:mace:dir:attribute-def:documentTitle', 'documentTitle': DEF+'documentTitle',
'documentVersion': 'urn:mace:dir:attribute-def:documentVersion', 'documentVersion': DEF+'documentVersion',
'domainComponent': 'urn:mace:dir:attribute-def:domainComponent', 'domainComponent': DEF+'domainComponent',
'drink': 'urn:mace:dir:attribute-def:drink', 'drink': DEF+'drink',
'eduOrgHomePageURI': 'urn:mace:dir:attribute-def:eduOrgHomePageURI', 'eduOrgHomePageURI': DEF+'eduOrgHomePageURI',
'eduOrgIdentityAuthNPolicyURI': 'urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI', 'eduOrgIdentityAuthNPolicyURI': DEF+'eduOrgIdentityAuthNPolicyURI',
'eduOrgLegalName': 'urn:mace:dir:attribute-def:eduOrgLegalName', 'eduOrgLegalName': DEF+'eduOrgLegalName',
'eduOrgSuperiorURI': 'urn:mace:dir:attribute-def:eduOrgSuperiorURI', 'eduOrgSuperiorURI': DEF+'eduOrgSuperiorURI',
'eduOrgWhitePagesURI': 'urn:mace:dir:attribute-def:eduOrgWhitePagesURI', 'eduOrgWhitePagesURI': DEF+'eduOrgWhitePagesURI',
'eduPersonAffiliation': 'urn:mace:dir:attribute-def:eduPersonAffiliation', 'eduPersonAffiliation': DEF+'eduPersonAffiliation',
'eduPersonEntitlement': 'urn:mace:dir:attribute-def:eduPersonEntitlement', 'eduPersonEntitlement': DEF+'eduPersonEntitlement',
'eduPersonNickname': 'urn:mace:dir:attribute-def:eduPersonNickname', 'eduPersonNickname': DEF+'eduPersonNickname',
'eduPersonOrgDN': 'urn:mace:dir:attribute-def:eduPersonOrgDN', 'eduPersonOrgDN': DEF+'eduPersonOrgDN',
'eduPersonOrgUnitDN': 'urn:mace:dir:attribute-def:eduPersonOrgUnitDN', 'eduPersonOrgUnitDN': DEF+'eduPersonOrgUnitDN',
'eduPersonPrimaryAffiliation': 'urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation', 'eduPersonPrimaryAffiliation': DEF+'eduPersonPrimaryAffiliation',
'eduPersonPrimaryOrgUnitDN': 'urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN', 'eduPersonPrimaryOrgUnitDN': DEF+'eduPersonPrimaryOrgUnitDN',
'eduPersonPrincipalName': 'urn:mace:dir:attribute-def:eduPersonPrincipalName', 'eduPersonPrincipalName': DEF+'eduPersonPrincipalName',
'eduPersonScopedAffiliation': 'urn:mace:dir:attribute-def:eduPersonScopedAffiliation', 'eduPersonScopedAffiliation': DEF+'eduPersonScopedAffiliation',
'eduPersonTargetedID': 'urn:mace:dir:attribute-def:eduPersonTargetedID', 'eduPersonTargetedID': DEF+'eduPersonTargetedID',
'email': 'urn:mace:dir:attribute-def:email', 'email': DEF+'email',
'emailAddress': 'urn:mace:dir:attribute-def:emailAddress', 'emailAddress': DEF+'emailAddress',
'employeeNumber': 'urn:mace:dir:attribute-def:employeeNumber', 'employeeNumber': DEF+'employeeNumber',
'employeeType': 'urn:mace:dir:attribute-def:employeeType', 'employeeType': DEF+'employeeType',
'enhancedSearchGuide': 'urn:mace:dir:attribute-def:enhancedSearchGuide', 'enhancedSearchGuide': DEF+'enhancedSearchGuide',
'facsimileTelephoneNumber': 'urn:mace:dir:attribute-def:facsimileTelephoneNumber', 'facsimileTelephoneNumber': DEF+'facsimileTelephoneNumber',
'favouriteDrink': 'urn:mace:dir:attribute-def:favouriteDrink', 'favouriteDrink': DEF+'favouriteDrink',
'fax': 'urn:mace:dir:attribute-def:fax', 'fax': DEF+'fax',
'federationFeideSchemaVersion': 'urn:mace:dir:attribute-def:federationFeideSchemaVersion', 'federationFeideSchemaVersion': DEF+'federationFeideSchemaVersion',
'friendlyCountryName': 'urn:mace:dir:attribute-def:friendlyCountryName', 'friendlyCountryName': DEF+'friendlyCountryName',
'generationQualifier': 'urn:mace:dir:attribute-def:generationQualifier', 'generationQualifier': DEF+'generationQualifier',
'givenName': 'urn:mace:dir:attribute-def:givenName', 'givenName': DEF+'givenName',
'gn': 'urn:mace:dir:attribute-def:gn', 'gn': DEF+'gn',
'homePhone': 'urn:mace:dir:attribute-def:homePhone', 'homePhone': DEF+'homePhone',
'homePostalAddress': 'urn:mace:dir:attribute-def:homePostalAddress', 'homePostalAddress': DEF+'homePostalAddress',
'homeTelephoneNumber': 'urn:mace:dir:attribute-def:homeTelephoneNumber', 'homeTelephoneNumber': DEF+'homeTelephoneNumber',
'host': 'urn:mace:dir:attribute-def:host', 'host': DEF+'host',
'houseIdentifier': 'urn:mace:dir:attribute-def:houseIdentifier', 'houseIdentifier': DEF+'houseIdentifier',
'info': 'urn:mace:dir:attribute-def:info', 'info': DEF+'info',
'initials': 'urn:mace:dir:attribute-def:initials', 'initials': DEF+'initials',
'internationaliSDNNumber': 'urn:mace:dir:attribute-def:internationaliSDNNumber', 'internationaliSDNNumber': DEF+'internationaliSDNNumber',
'janetMailbox': 'urn:mace:dir:attribute-def:janetMailbox', 'janetMailbox': DEF+'janetMailbox',
'jpegPhoto': 'urn:mace:dir:attribute-def:jpegPhoto', 'jpegPhoto': DEF+'jpegPhoto',
'knowledgeInformation': 'urn:mace:dir:attribute-def:knowledgeInformation', 'knowledgeInformation': DEF+'knowledgeInformation',
'l': 'urn:mace:dir:attribute-def:l', 'l': DEF+'l',
'labeledURI': 'urn:mace:dir:attribute-def:labeledURI', 'labeledURI': DEF+'labeledURI',
'localityName': 'urn:mace:dir:attribute-def:localityName', 'localityName': DEF+'localityName',
'mDRecord': 'urn:mace:dir:attribute-def:mDRecord', 'mDRecord': DEF+'mDRecord',
'mXRecord': 'urn:mace:dir:attribute-def:mXRecord', 'mXRecord': DEF+'mXRecord',
'mail': 'urn:mace:dir:attribute-def:mail', 'mail': DEF+'mail',
'mailPreferenceOption': 'urn:mace:dir:attribute-def:mailPreferenceOption', 'mailPreferenceOption': DEF+'mailPreferenceOption',
'manager': 'urn:mace:dir:attribute-def:manager', 'manager': DEF+'manager',
'member': 'urn:mace:dir:attribute-def:member', 'member': DEF+'member',
'mobile': 'urn:mace:dir:attribute-def:mobile', 'mobile': DEF+'mobile',
'mobileTelephoneNumber': 'urn:mace:dir:attribute-def:mobileTelephoneNumber', 'mobileTelephoneNumber': DEF+'mobileTelephoneNumber',
'nSRecord': 'urn:mace:dir:attribute-def:nSRecord', 'nSRecord': DEF+'nSRecord',
'name': 'urn:mace:dir:attribute-def:name', 'name': DEF+'name',
'norEduOrgAcronym': 'urn:mace:dir:attribute-def:norEduOrgAcronym', 'norEduOrgAcronym': DEF+'norEduOrgAcronym',
'norEduOrgNIN': 'urn:mace:dir:attribute-def:norEduOrgNIN', 'norEduOrgNIN': DEF+'norEduOrgNIN',
'norEduOrgSchemaVersion': 'urn:mace:dir:attribute-def:norEduOrgSchemaVersion', 'norEduOrgSchemaVersion': DEF+'norEduOrgSchemaVersion',
'norEduOrgUniqueIdentifier': 'urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier', 'norEduOrgUniqueIdentifier': DEF+'norEduOrgUniqueIdentifier',
'norEduOrgUniqueNumber': 'urn:mace:dir:attribute-def:norEduOrgUniqueNumber', 'norEduOrgUniqueNumber': DEF+'norEduOrgUniqueNumber',
'norEduOrgUnitUniqueIdentifier': 'urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier', 'norEduOrgUnitUniqueIdentifier': DEF+'norEduOrgUnitUniqueIdentifier',
'norEduOrgUnitUniqueNumber': 'urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber', 'norEduOrgUnitUniqueNumber': DEF+'norEduOrgUnitUniqueNumber',
'norEduPersonBirthDate': 'urn:mace:dir:attribute-def:norEduPersonBirthDate', 'norEduPersonBirthDate': DEF+'norEduPersonBirthDate',
'norEduPersonLIN': 'urn:mace:dir:attribute-def:norEduPersonLIN', 'norEduPersonLIN': DEF+'norEduPersonLIN',
'norEduPersonNIN': 'urn:mace:dir:attribute-def:norEduPersonNIN', 'norEduPersonNIN': DEF+'norEduPersonNIN',
'o': 'urn:mace:dir:attribute-def:o', 'o': DEF+'o',
'objectClass': 'urn:mace:dir:attribute-def:objectClass', 'objectClass': DEF+'objectClass',
'organizationName': 'urn:mace:dir:attribute-def:organizationName', 'organizationName': DEF+'organizationName',
'organizationalStatus': 'urn:mace:dir:attribute-def:organizationalStatus', 'organizationalStatus': DEF+'organizationalStatus',
'organizationalUnitName': 'urn:mace:dir:attribute-def:organizationalUnitName', 'organizationalUnitName': DEF+'organizationalUnitName',
'otherMailbox': 'urn:mace:dir:attribute-def:otherMailbox', 'otherMailbox': DEF+'otherMailbox',
'ou': 'urn:mace:dir:attribute-def:ou', 'ou': DEF+'ou',
'owner': 'urn:mace:dir:attribute-def:owner', 'owner': DEF+'owner',
'pager': 'urn:mace:dir:attribute-def:pager', 'pager': DEF+'pager',
'pagerTelephoneNumber': 'urn:mace:dir:attribute-def:pagerTelephoneNumber', 'pagerTelephoneNumber': DEF+'pagerTelephoneNumber',
'personalSignature': 'urn:mace:dir:attribute-def:personalSignature', 'personalSignature': DEF+'personalSignature',
'personalTitle': 'urn:mace:dir:attribute-def:personalTitle', 'personalTitle': DEF+'personalTitle',
'photo': 'urn:mace:dir:attribute-def:photo', 'photo': DEF+'photo',
'physicalDeliveryOfficeName': 'urn:mace:dir:attribute-def:physicalDeliveryOfficeName', 'physicalDeliveryOfficeName': DEF+'physicalDeliveryOfficeName',
'pkcs9email': 'urn:mace:dir:attribute-def:pkcs9email', 'pkcs9email': DEF+'pkcs9email',
'postOfficeBox': 'urn:mace:dir:attribute-def:postOfficeBox', 'postOfficeBox': DEF+'postOfficeBox',
'postalAddress': 'urn:mace:dir:attribute-def:postalAddress', 'postalAddress': DEF+'postalAddress',
'postalCode': 'urn:mace:dir:attribute-def:postalCode', 'postalCode': DEF+'postalCode',
'preferredDeliveryMethod': 'urn:mace:dir:attribute-def:preferredDeliveryMethod', 'preferredDeliveryMethod': DEF+'preferredDeliveryMethod',
'preferredLanguage': 'urn:mace:dir:attribute-def:preferredLanguage', 'preferredLanguage': DEF+'preferredLanguage',
'presentationAddress': 'urn:mace:dir:attribute-def:presentationAddress', 'presentationAddress': DEF+'presentationAddress',
'protocolInformation': 'urn:mace:dir:attribute-def:protocolInformation', 'protocolInformation': DEF+'protocolInformation',
'pseudonym': 'urn:mace:dir:attribute-def:pseudonym', 'pseudonym': DEF+'pseudonym',
'registeredAddress': 'urn:mace:dir:attribute-def:registeredAddress', 'registeredAddress': DEF+'registeredAddress',
'rfc822Mailbox': 'urn:mace:dir:attribute-def:rfc822Mailbox', 'rfc822Mailbox': DEF+'rfc822Mailbox',
'roleOccupant': 'urn:mace:dir:attribute-def:roleOccupant', 'roleOccupant': DEF+'roleOccupant',
'roomNumber': 'urn:mace:dir:attribute-def:roomNumber', 'roomNumber': DEF+'roomNumber',
'sOARecord': 'urn:mace:dir:attribute-def:sOARecord', 'sOARecord': DEF+'sOARecord',
'searchGuide': 'urn:mace:dir:attribute-def:searchGuide', 'searchGuide': DEF+'searchGuide',
'secretary': 'urn:mace:dir:attribute-def:secretary', 'secretary': DEF+'secretary',
'seeAlso': 'urn:mace:dir:attribute-def:seeAlso', 'seeAlso': DEF+'seeAlso',
'serialNumber': 'urn:mace:dir:attribute-def:serialNumber', 'serialNumber': DEF+'serialNumber',
'singleLevelQuality': 'urn:mace:dir:attribute-def:singleLevelQuality', 'singleLevelQuality': DEF+'singleLevelQuality',
'sn': 'urn:mace:dir:attribute-def:sn', 'sn': DEF+'sn',
'st': 'urn:mace:dir:attribute-def:st', 'st': DEF+'st',
'stateOrProvinceName': 'urn:mace:dir:attribute-def:stateOrProvinceName', 'stateOrProvinceName': DEF+'stateOrProvinceName',
'street': 'urn:mace:dir:attribute-def:street', 'street': DEF+'street',
'streetAddress': 'urn:mace:dir:attribute-def:streetAddress', 'streetAddress': DEF+'streetAddress',
'subtreeMaximumQuality': 'urn:mace:dir:attribute-def:subtreeMaximumQuality', 'subtreeMaximumQuality': DEF+'subtreeMaximumQuality',
'subtreeMinimumQuality': 'urn:mace:dir:attribute-def:subtreeMinimumQuality', 'subtreeMinimumQuality': DEF+'subtreeMinimumQuality',
'supportedAlgorithms': 'urn:mace:dir:attribute-def:supportedAlgorithms', 'supportedAlgorithms': DEF+'supportedAlgorithms',
'supportedApplicationContext': 'urn:mace:dir:attribute-def:supportedApplicationContext', 'supportedApplicationContext': DEF+'supportedApplicationContext',
'surname': 'urn:mace:dir:attribute-def:surname', 'surname': DEF+'surname',
'telephoneNumber': 'urn:mace:dir:attribute-def:telephoneNumber', 'telephoneNumber': DEF+'telephoneNumber',
'teletexTerminalIdentifier': 'urn:mace:dir:attribute-def:teletexTerminalIdentifier', 'teletexTerminalIdentifier': DEF+'teletexTerminalIdentifier',
'telexNumber': 'urn:mace:dir:attribute-def:telexNumber', 'telexNumber': DEF+'telexNumber',
'textEncodedORAddress': 'urn:mace:dir:attribute-def:textEncodedORAddress', 'textEncodedORAddress': DEF+'textEncodedORAddress',
'title': 'urn:mace:dir:attribute-def:title', 'title': DEF+'title',
'uid': 'urn:mace:dir:attribute-def:uid', 'uid': DEF+'uid',
'uniqueIdentifier': 'urn:mace:dir:attribute-def:uniqueIdentifier', 'uniqueIdentifier': DEF+'uniqueIdentifier',
'uniqueMember': 'urn:mace:dir:attribute-def:uniqueMember', 'uniqueMember': DEF+'uniqueMember',
'userCertificate': 'urn:mace:dir:attribute-def:userCertificate', 'userCertificate': DEF+'userCertificate',
'userClass': 'urn:mace:dir:attribute-def:userClass', 'userClass': DEF+'userClass',
'userPKCS12': 'urn:mace:dir:attribute-def:userPKCS12', 'userPKCS12': DEF+'userPKCS12',
'userPassword': 'urn:mace:dir:attribute-def:userPassword', 'userPassword': DEF+'userPassword',
'userSMIMECertificate': 'urn:mace:dir:attribute-def:userSMIMECertificate', 'userSMIMECertificate': DEF+'userSMIMECertificate',
'userid': 'urn:mace:dir:attribute-def:userid', 'userid': DEF+'userid',
'x121Address': 'urn:mace:dir:attribute-def:x121Address', 'x121Address': DEF+'x121Address',
'x500UniqueIdentifier': 'urn:mace:dir:attribute-def:x500UniqueIdentifier', 'x500UniqueIdentifier': DEF+'x500UniqueIdentifier',
} }
} }

View File

@@ -1,21 +1,18 @@
__author__ = 'rolandh' EDUCOURSE_OID = 'urn:oid:1.3.6.1.4.1.5923.1.6.1.'
EDUPERSON_OID = 'urn:oid:1.3.6.1.4.1.5923.1.1.1.'
EDUPERSON_OID = "urn:oid:1.3.6.1.4.1.5923.1.1.1." NETSCAPE_LDAP = 'urn:oid:2.16.840.1.113730.3.1.'
EDUCOURSE_OID = "urn:oid:1.3.6.1.4.1.5923.1.6.1." NOREDUPERSON_OID = 'urn:oid:1.3.6.1.4.1.2428.90.1.'
X500ATTR_OID = "urn:oid:2.5.4." PKCS_9 = 'urn:oid:1.2.840.113549.1.9.1.'
NOREDUPERSON_OID = "urn:oid:1.3.6.1.4.1.2428.90.1." SCHAC = 'urn:oid:1.3.6.1.4.1.25178.1.2.'
NETSCAPE_LDAP = "urn:oid:2.16.840.1.113730.3.1." SIS = 'urn:oid:1.2.752.194.10.2.'
UCL_DIR_PILOT = 'urn:oid:0.9.2342.19200300.100.1.' UCL_DIR_PILOT = 'urn:oid:0.9.2342.19200300.100.1.'
PKCS_9 = "urn:oid:1.2.840.113549.1.9.1." UMICH = 'urn:oid:1.3.6.1.4.1.250.1.57.'
UMICH = "urn:oid:1.3.6.1.4.1.250.1.57." X500ATTR_OID = 'urn:oid:2.5.4.'
SCHAC = "urn:oid:1.3.6.1.4.1.25178.1.2."
SIS = "urn:oid:1.2.752.194.10.2."
#urn:oid:1.3.6.1.4.1.1466.115.121.1.26
MAP = { MAP = {
"identifier": "urn:oasis:names:tc:SAML:2.0:attrname-format:uri", 'identifier': 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri',
"fro": { 'fro': {
EDUCOURSE_OID+'1': 'eduCourseOffering', EDUCOURSE_OID+'1': 'eduCourseOffering',
EDUCOURSE_OID+'2': 'eduCourseMember', EDUCOURSE_OID+'2': 'eduCourseMember',
EDUPERSON_OID+'1': 'eduPersonAffiliation', EDUPERSON_OID+'1': 'eduPersonAffiliation',
@@ -29,6 +26,14 @@ MAP = {
EDUPERSON_OID+'9': 'eduPersonScopedAffiliation', EDUPERSON_OID+'9': 'eduPersonScopedAffiliation',
EDUPERSON_OID+'10': 'eduPersonTargetedID', EDUPERSON_OID+'10': 'eduPersonTargetedID',
EDUPERSON_OID+'11': 'eduPersonAssurance', EDUPERSON_OID+'11': 'eduPersonAssurance',
NETSCAPE_LDAP+'1': 'carLicense',
NETSCAPE_LDAP+'2': 'departmentNumber',
NETSCAPE_LDAP+'3': 'employeeNumber',
NETSCAPE_LDAP+'4': 'employeeType',
NETSCAPE_LDAP+'39': 'preferredLanguage',
NETSCAPE_LDAP+'40': 'userSMIMECertificate',
NETSCAPE_LDAP+'216': 'userPKCS12',
NETSCAPE_LDAP+'241': 'displayName',
NOREDUPERSON_OID+'1': 'norEduOrgUniqueNumber', NOREDUPERSON_OID+'1': 'norEduOrgUniqueNumber',
NOREDUPERSON_OID+'2': 'norEduOrgUnitUniqueNumber', NOREDUPERSON_OID+'2': 'norEduOrgUnitUniqueNumber',
NOREDUPERSON_OID+'3': 'norEduPersonBirthDate', NOREDUPERSON_OID+'3': 'norEduPersonBirthDate',
@@ -41,14 +46,6 @@ MAP = {
NOREDUPERSON_OID+'10': 'norEduPersonLegalName', NOREDUPERSON_OID+'10': 'norEduPersonLegalName',
NOREDUPERSON_OID+'11': 'norEduOrgSchemaVersion', NOREDUPERSON_OID+'11': 'norEduOrgSchemaVersion',
NOREDUPERSON_OID+'12': 'norEduOrgNIN', NOREDUPERSON_OID+'12': 'norEduOrgNIN',
NETSCAPE_LDAP+'1': 'carLicense',
NETSCAPE_LDAP+'2': 'departmentNumber',
NETSCAPE_LDAP+'3': 'employeeNumber',
NETSCAPE_LDAP+'4': 'employeeType',
NETSCAPE_LDAP+'39': 'preferredLanguage',
NETSCAPE_LDAP+'40': 'userSMIMECertificate',
NETSCAPE_LDAP+'216': 'userPKCS12',
NETSCAPE_LDAP+'241': 'displayName',
PKCS_9+'1': 'email', PKCS_9+'1': 'email',
SCHAC+'1': 'schacMotherTongue', SCHAC+'1': 'schacMotherTongue',
SCHAC+'2': 'schacGender', SCHAC+'2': 'schacGender',
@@ -128,119 +125,119 @@ MAP = {
X500ATTR_OID+'53': 'deltaRevocationList', X500ATTR_OID+'53': 'deltaRevocationList',
X500ATTR_OID+'54': 'dmdName', X500ATTR_OID+'54': 'dmdName',
X500ATTR_OID+'65': 'pseudonym', X500ATTR_OID+'65': 'pseudonym',
}, },
"to": { 'to': {
'associatedDomain': UCL_DIR_PILOT+'37', 'associatedDomain': UCL_DIR_PILOT+'37',
'authorityRevocationList': X500ATTR_OID+"38", 'authorityRevocationList': X500ATTR_OID+'38',
'businessCategory': X500ATTR_OID+"15", 'businessCategory': X500ATTR_OID+'15',
'c': X500ATTR_OID+"6", 'c': X500ATTR_OID+'6',
'cACertificate': X500ATTR_OID+"37", 'cACertificate': X500ATTR_OID+'37',
'carLicense': NETSCAPE_LDAP+"1", 'carLicense': NETSCAPE_LDAP+'1',
'certificateRevocationList': X500ATTR_OID+"39", 'certificateRevocationList': X500ATTR_OID+'39',
'cn': X500ATTR_OID+"3", 'cn': X500ATTR_OID+'3',
'co': UCL_DIR_PILOT+"43", 'co': UCL_DIR_PILOT+'43',
'crossCertificatePair': X500ATTR_OID+"40", 'crossCertificatePair': X500ATTR_OID+'40',
'dc': UCL_DIR_PILOT+"25", 'dc': UCL_DIR_PILOT+'25',
'deltaRevocationList': X500ATTR_OID+"53", 'deltaRevocationList': X500ATTR_OID+'53',
'departmentNumber': NETSCAPE_LDAP+"2", 'departmentNumber': NETSCAPE_LDAP+'2',
'destinationIndicator': X500ATTR_OID+"27", 'destinationIndicator': X500ATTR_OID+'27',
'displayName': NETSCAPE_LDAP+"241", 'displayName': NETSCAPE_LDAP+'241',
'dmdName': X500ATTR_OID+"54", 'dmdName': X500ATTR_OID+'54',
'dnQualifier': X500ATTR_OID+"46", 'dnQualifier': X500ATTR_OID+'46',
'eduCourseMember': EDUCOURSE_OID+"2", 'eduCourseMember': EDUCOURSE_OID+'2',
'eduCourseOffering': EDUCOURSE_OID+"1", 'eduCourseOffering': EDUCOURSE_OID+'1',
'eduPersonAffiliation': EDUPERSON_OID+"1", 'eduPersonAffiliation': EDUPERSON_OID+'1',
'eduPersonAssurance': EDUPERSON_OID+"11", 'eduPersonAssurance': EDUPERSON_OID+'11',
'eduPersonEntitlement': EDUPERSON_OID+"7", 'eduPersonEntitlement': EDUPERSON_OID+'7',
'eduPersonNickname': EDUPERSON_OID+"2", 'eduPersonNickname': EDUPERSON_OID+'2',
'eduPersonOrgDN': EDUPERSON_OID+"3", 'eduPersonOrgDN': EDUPERSON_OID+'3',
'eduPersonOrgUnitDN': EDUPERSON_OID+"4", 'eduPersonOrgUnitDN': EDUPERSON_OID+'4',
'eduPersonPrimaryAffiliation': EDUPERSON_OID+"5", 'eduPersonPrimaryAffiliation': EDUPERSON_OID+'5',
'eduPersonPrimaryOrgUnitDN': EDUPERSON_OID+"8", 'eduPersonPrimaryOrgUnitDN': EDUPERSON_OID+'8',
'eduPersonPrincipalName': EDUPERSON_OID+"6", 'eduPersonPrincipalName': EDUPERSON_OID+'6',
'eduPersonScopedAffiliation': EDUPERSON_OID+"9", 'eduPersonScopedAffiliation': EDUPERSON_OID+'9',
'eduPersonTargetedID': EDUPERSON_OID+"10", 'eduPersonTargetedID': EDUPERSON_OID+'10',
'email': PKCS_9+"1", 'email': PKCS_9+'1',
'employeeNumber': NETSCAPE_LDAP+"3", 'employeeNumber': NETSCAPE_LDAP+'3',
'employeeType': NETSCAPE_LDAP+"4", 'employeeType': NETSCAPE_LDAP+'4',
'enhancedSearchGuide': X500ATTR_OID+"47", 'enhancedSearchGuide': X500ATTR_OID+'47',
'facsimileTelephoneNumber': X500ATTR_OID+"23", 'facsimileTelephoneNumber': X500ATTR_OID+'23',
'federationFeideSchemaVersion': NOREDUPERSON_OID+"9", 'federationFeideSchemaVersion': NOREDUPERSON_OID+'9',
'generationQualifier': X500ATTR_OID+"44", 'generationQualifier': X500ATTR_OID+'44',
'givenName': X500ATTR_OID+"42", 'givenName': X500ATTR_OID+'42',
'houseIdentifier': X500ATTR_OID+"51", 'houseIdentifier': X500ATTR_OID+'51',
'initials': X500ATTR_OID+"43", 'initials': X500ATTR_OID+'43',
'internationaliSDNNumber': X500ATTR_OID+"25", 'internationaliSDNNumber': X500ATTR_OID+'25',
'jpegPhoto': UCL_DIR_PILOT+"60", 'jpegPhoto': UCL_DIR_PILOT+'60',
'knowledgeInformation': X500ATTR_OID+"2", 'knowledgeInformation': X500ATTR_OID+'2',
'l': X500ATTR_OID+"7", 'l': X500ATTR_OID+'7',
'labeledURI': UMICH+"57", 'labeledURI': UMICH+'57',
'mail': UCL_DIR_PILOT+"3", 'mail': UCL_DIR_PILOT+'3',
'member': X500ATTR_OID+"31", 'member': X500ATTR_OID+'31',
'norEduOrgAcronym': NOREDUPERSON_OID+"6", 'norEduOrgAcronym': NOREDUPERSON_OID+'6',
'norEduOrgNIN': NOREDUPERSON_OID+"12", 'norEduOrgNIN': NOREDUPERSON_OID+'12',
'norEduOrgSchemaVersion': NOREDUPERSON_OID+"11", 'norEduOrgSchemaVersion': NOREDUPERSON_OID+'11',
'norEduOrgUniqueIdentifier': NOREDUPERSON_OID+"7", 'norEduOrgUniqueIdentifier': NOREDUPERSON_OID+'7',
'norEduOrgUniqueNumber': NOREDUPERSON_OID+"1", 'norEduOrgUniqueNumber': NOREDUPERSON_OID+'1',
'norEduOrgUnitUniqueIdentifier': NOREDUPERSON_OID+"8", 'norEduOrgUnitUniqueIdentifier': NOREDUPERSON_OID+'8',
'norEduOrgUnitUniqueNumber': NOREDUPERSON_OID+"2", 'norEduOrgUnitUniqueNumber': NOREDUPERSON_OID+'2',
'norEduPersonBirthDate': NOREDUPERSON_OID+"3", 'norEduPersonBirthDate': NOREDUPERSON_OID+'3',
'norEduPersonLIN': NOREDUPERSON_OID+"4", 'norEduPersonLIN': NOREDUPERSON_OID+'4',
'norEduPersonLegalName': NOREDUPERSON_OID+"10", 'norEduPersonLegalName': NOREDUPERSON_OID+'10',
'norEduPersonNIN': NOREDUPERSON_OID+"5", 'norEduPersonNIN': NOREDUPERSON_OID+'5',
'o': X500ATTR_OID+"10", 'o': X500ATTR_OID+'10',
'ou': X500ATTR_OID+"11", 'ou': X500ATTR_OID+'11',
'owner': X500ATTR_OID+"32", 'owner': X500ATTR_OID+'32',
'physicalDeliveryOfficeName': X500ATTR_OID+"19", 'physicalDeliveryOfficeName': X500ATTR_OID+'19',
'postOfficeBox': X500ATTR_OID+"18", 'postOfficeBox': X500ATTR_OID+'18',
'postalAddress': X500ATTR_OID+"16", 'postalAddress': X500ATTR_OID+'16',
'postalCode': X500ATTR_OID+"17", 'postalCode': X500ATTR_OID+'17',
'preferredDeliveryMethod': X500ATTR_OID+"28", 'preferredDeliveryMethod': X500ATTR_OID+'28',
'preferredLanguage': NETSCAPE_LDAP+"39", 'preferredLanguage': NETSCAPE_LDAP+'39',
'presentationAddress': X500ATTR_OID+"29", 'presentationAddress': X500ATTR_OID+'29',
'protocolInformation': X500ATTR_OID+"48", 'protocolInformation': X500ATTR_OID+'48',
'pseudonym': X500ATTR_OID+"65", 'pseudonym': X500ATTR_OID+'65',
'registeredAddress': X500ATTR_OID+"26", 'registeredAddress': X500ATTR_OID+'26',
'roleOccupant': X500ATTR_OID+"33", 'roleOccupant': X500ATTR_OID+'33',
'schacCountryOfCitizenship': SCHAC+"5", 'schacCountryOfCitizenship': SCHAC+'5',
'schacCountryOfResidence': SCHAC+"11", 'schacCountryOfResidence': SCHAC+'11',
'schacDateOfBirth': SCHAC+"3", 'schacDateOfBirth': SCHAC+'3',
'schacExpiryDate': SCHAC+"17", 'schacExpiryDate': SCHAC+'17',
'schacGender': SCHAC+"2", 'schacGender': SCHAC+'2',
'schacHomeOrganization': SCHAC+"9", 'schacHomeOrganization': SCHAC+'9',
'schacHomeOrganizationType': SCHAC+"10", 'schacHomeOrganizationType': SCHAC+'10',
'schacMotherTongue': SCHAC+"1", 'schacMotherTongue': SCHAC+'1',
'schacPersonalPosition': SCHAC+"13", 'schacPersonalPosition': SCHAC+'13',
'schacPersonalTitle': SCHAC+"8", 'schacPersonalTitle': SCHAC+'8',
'schacPersonalUniqueCode': SCHAC+"14", 'schacPersonalUniqueCode': SCHAC+'14',
'schacPersonalUniqueID': SCHAC+"15", 'schacPersonalUniqueID': SCHAC+'15',
'schacPlaceOfBirth': SCHAC+"4", 'schacPlaceOfBirth': SCHAC+'4',
'schacProjectMembership': SCHAC+"20", 'schacProjectMembership': SCHAC+'20',
'schacProjectSpecificRole': SCHAC+"21", 'schacProjectSpecificRole': SCHAC+'21',
'schacSn1': SCHAC+"6", 'schacSn1': SCHAC+'6',
'schacSn2': SCHAC+"7", 'schacSn2': SCHAC+'7',
'schacUserPresenceID': SCHAC+"12", 'schacUserPresenceID': SCHAC+'12',
'schacUserPrivateAttribute': SCHAC+"18", 'schacUserPrivateAttribute': SCHAC+'18',
'schacUserStatus': SCHAC+"19", 'schacUserStatus': SCHAC+'19',
'searchGuide': X500ATTR_OID+"14", 'searchGuide': X500ATTR_OID+'14',
'serialNumber': X500ATTR_OID+"5", 'serialNumber': X500ATTR_OID+'5',
'sisLegalGuardianFor': SIS+"1", 'sisLegalGuardianFor': SIS+'1',
'sisSchoolGrade': SIS+"2", 'sisSchoolGrade': SIS+'2',
'sn': X500ATTR_OID+"4", 'sn': X500ATTR_OID+'4',
'st': X500ATTR_OID+"8", 'st': X500ATTR_OID+'8',
'street': X500ATTR_OID+"9", 'street': X500ATTR_OID+'9',
'supportedAlgorithms': X500ATTR_OID+"52", 'supportedAlgorithms': X500ATTR_OID+'52',
'supportedApplicationContext': X500ATTR_OID+"30", 'supportedApplicationContext': X500ATTR_OID+'30',
'telephoneNumber': X500ATTR_OID+"20", 'telephoneNumber': X500ATTR_OID+'20',
'teletexTerminalIdentifier': X500ATTR_OID+"22", 'teletexTerminalIdentifier': X500ATTR_OID+'22',
'telexNumber': X500ATTR_OID+"21", 'telexNumber': X500ATTR_OID+'21',
'title': X500ATTR_OID+"12", 'title': X500ATTR_OID+'12',
'uid': UCL_DIR_PILOT+"1", 'uid': UCL_DIR_PILOT+'1',
'uniqueMember': X500ATTR_OID+"50", 'uniqueMember': X500ATTR_OID+'50',
'userCertificate': X500ATTR_OID+"36", 'userCertificate': X500ATTR_OID+'36',
'userPKCS12': NETSCAPE_LDAP+"216", 'userPKCS12': NETSCAPE_LDAP+'216',
'userSMIMECertificate': NETSCAPE_LDAP+"40", 'userSMIMECertificate': NETSCAPE_LDAP+'40',
'x121Address': X500ATTR_OID+"24", 'x121Address': X500ATTR_OID+'24',
'x500UniqueIdentifier': X500ATTR_OID+"45", 'x500UniqueIdentifier': X500ATTR_OID+'45',
} }
} }

View File

@@ -1,73 +1,82 @@
EDUPERSON_OID = "urn:oid:1.3.6.1.4.1.5923.1.1.1." EDUPERSON_OID = 'urn:oid:1.3.6.1.4.1.5923.1.1.1.'
X500ATTR = "urn:oid:2.5.4." NETSCAPE_LDAP = 'urn:oid:2.16.840.1.113730.3.1.'
NOREDUPERSON_OID = "urn:oid:1.3.6.1.4.1.2428.90.1." NOREDUPERSON_OID = 'urn:oid:1.3.6.1.4.1.2428.90.1.'
NETSCAPE_LDAP = "urn:oid:2.16.840.1.113730.3.1." PKCS_9 = 'urn:oid:1.2.840.113549.1.9.'
UCL_DIR_PILOT = "urn:oid:0.9.2342.19200300.100.1." UCL_DIR_PILOT = 'urn:oid:0.9.2342.19200300.100.1.'
PKCS_9 = "urn:oid:1.2.840.113549.1.9." UMICH = 'urn:oid:1.3.6.1.4.1.250.1.57.'
UMICH = "urn:oid:1.3.6.1.4.1.250.1.57." X500ATTR = 'urn:oid:2.5.4.'
MAP = { MAP = {
"identifier": "urn:mace:shibboleth:1.0:attributeNamespace:uri", "identifier": "urn:mace:shibboleth:1.0:attributeNamespace:uri",
"fro": { 'fro': {
EDUPERSON_OID+'1': 'eduPersonAffiliation',
EDUPERSON_OID+'2': 'eduPersonNickname', EDUPERSON_OID+'2': 'eduPersonNickname',
EDUPERSON_OID+'9': 'eduPersonScopedAffiliation', EDUPERSON_OID+'3': 'eduPersonOrgDN',
EDUPERSON_OID+'11': 'eduPersonAssurance',
EDUPERSON_OID+'10': 'eduPersonTargetedID',
EDUPERSON_OID+'4': 'eduPersonOrgUnitDN', EDUPERSON_OID+'4': 'eduPersonOrgUnitDN',
EDUPERSON_OID+'5': 'eduPersonPrimaryAffiliation',
EDUPERSON_OID+'6': 'eduPersonPrincipalName',
EDUPERSON_OID+'7': 'eduPersonEntitlement',
EDUPERSON_OID+'8': 'eduPersonPrimaryOrgUnitDN',
EDUPERSON_OID+'9': 'eduPersonScopedAffiliation',
EDUPERSON_OID+'10': 'eduPersonTargetedID',
EDUPERSON_OID+'11': 'eduPersonAssurance',
NETSCAPE_LDAP+'1': 'carLicense',
NETSCAPE_LDAP+'2': 'departmentNumber',
NETSCAPE_LDAP+'3': 'employeeNumber',
NETSCAPE_LDAP+'4': 'employeeType',
NETSCAPE_LDAP+'39': 'preferredLanguage',
NETSCAPE_LDAP+'40': 'userSMIMECertificate',
NETSCAPE_LDAP+'216': 'userPKCS12',
NETSCAPE_LDAP+'241': 'displayName',
NOREDUPERSON_OID+'1': 'norEduOrgUniqueNumber',
NOREDUPERSON_OID+'2': 'norEduOrgUnitUniqueNumber',
NOREDUPERSON_OID+'3': 'norEduPersonBirthDate',
NOREDUPERSON_OID+'4': 'norEduPersonLIN',
NOREDUPERSON_OID+'5': 'norEduPersonNIN',
NOREDUPERSON_OID+'6': 'norEduOrgAcronym', NOREDUPERSON_OID+'6': 'norEduOrgAcronym',
NOREDUPERSON_OID+'7': 'norEduOrgUniqueIdentifier', NOREDUPERSON_OID+'7': 'norEduOrgUniqueIdentifier',
NOREDUPERSON_OID+'4': 'norEduPersonLIN',
EDUPERSON_OID+'1': 'eduPersonAffiliation',
NOREDUPERSON_OID+'2': 'norEduOrgUnitUniqueNumber',
NETSCAPE_LDAP+'40': 'userSMIMECertificate',
NOREDUPERSON_OID+'1': 'norEduOrgUniqueNumber',
NETSCAPE_LDAP+'241': 'displayName',
UCL_DIR_PILOT+'37': 'associatedDomain',
EDUPERSON_OID+'6': 'eduPersonPrincipalName',
NOREDUPERSON_OID+'8': 'norEduOrgUnitUniqueIdentifier', NOREDUPERSON_OID+'8': 'norEduOrgUnitUniqueIdentifier',
NOREDUPERSON_OID+'9': 'federationFeideSchemaVersion', NOREDUPERSON_OID+'9': 'federationFeideSchemaVersion',
X500ATTR+'53': 'deltaRevocationList',
X500ATTR+'52': 'supportedAlgorithms',
X500ATTR+'51': 'houseIdentifier',
X500ATTR+'50': 'uniqueMember',
X500ATTR+'19': 'physicalDeliveryOfficeName',
X500ATTR+'18': 'postOfficeBox',
X500ATTR+'17': 'postalCode',
X500ATTR+'16': 'postalAddress',
X500ATTR+'15': 'businessCategory',
X500ATTR+'14': 'searchGuide',
EDUPERSON_OID+'5': 'eduPersonPrimaryAffiliation',
X500ATTR+'12': 'title',
X500ATTR+'11': 'ou',
X500ATTR+'10': 'o',
X500ATTR+'37': 'cACertificate',
X500ATTR+'36': 'userCertificate',
X500ATTR+'31': 'member',
X500ATTR+'30': 'supportedApplicationContext',
X500ATTR+'33': 'roleOccupant',
X500ATTR+'32': 'owner',
NETSCAPE_LDAP+'1': 'carLicense',
PKCS_9+'1': 'email', PKCS_9+'1': 'email',
NETSCAPE_LDAP+'3': 'employeeNumber',
NETSCAPE_LDAP+'2': 'departmentNumber',
X500ATTR+'39': 'certificateRevocationList',
X500ATTR+'38': 'authorityRevocationList',
NETSCAPE_LDAP+'216': 'userPKCS12',
EDUPERSON_OID+'8': 'eduPersonPrimaryOrgUnitDN',
X500ATTR+'9': 'street',
X500ATTR+'8': 'st',
NETSCAPE_LDAP+'39': 'preferredLanguage',
EDUPERSON_OID+'7': 'eduPersonEntitlement',
X500ATTR+'2': 'knowledgeInformation',
X500ATTR+'7': 'l',
X500ATTR+'6': 'c',
X500ATTR+'5': 'serialNumber',
X500ATTR+'4': 'sn',
UCL_DIR_PILOT+'60': 'jpegPhoto',
X500ATTR+'65': 'pseudonym',
NOREDUPERSON_OID+'5': 'norEduPersonNIN',
UCL_DIR_PILOT+'3': 'mail', UCL_DIR_PILOT+'3': 'mail',
UCL_DIR_PILOT+'25': 'dc', UCL_DIR_PILOT+'25': 'dc',
UCL_DIR_PILOT+'37': 'associatedDomain',
UCL_DIR_PILOT+'60': 'jpegPhoto',
X500ATTR+'2': 'knowledgeInformation',
X500ATTR+'4': 'sn',
X500ATTR+'5': 'serialNumber',
X500ATTR+'6': 'c',
X500ATTR+'7': 'l',
X500ATTR+'8': 'st',
X500ATTR+'9': 'street',
X500ATTR+'10': 'o',
X500ATTR+'11': 'ou',
X500ATTR+'12': 'title',
X500ATTR+'14': 'searchGuide',
X500ATTR+'15': 'businessCategory',
X500ATTR+'16': 'postalAddress',
X500ATTR+'17': 'postalCode',
X500ATTR+'18': 'postOfficeBox',
X500ATTR+'19': 'physicalDeliveryOfficeName',
X500ATTR+'20': 'telephoneNumber',
X500ATTR+'21': 'telexNumber',
X500ATTR+'22': 'teletexTerminalIdentifier',
X500ATTR+'23': 'facsimileTelephoneNumber',
X500ATTR+'24': 'x121Address',
X500ATTR+'25': 'internationaliSDNNumber',
X500ATTR+'26': 'registeredAddress',
X500ATTR+'27': 'destinationIndicator',
X500ATTR+'28': 'preferredDeliveryMethod',
X500ATTR+'29': 'presentationAddress',
X500ATTR+'30': 'supportedApplicationContext',
X500ATTR+'31': 'member',
X500ATTR+'32': 'owner',
X500ATTR+'33': 'roleOccupant',
X500ATTR+'36': 'userCertificate',
X500ATTR+'37': 'cACertificate',
X500ATTR+'38': 'authorityRevocationList',
X500ATTR+'39': 'certificateRevocationList',
X500ATTR+'40': 'crossCertificatePair', X500ATTR+'40': 'crossCertificatePair',
X500ATTR+'42': 'givenName', X500ATTR+'42': 'givenName',
X500ATTR+'43': 'initials', X500ATTR+'43': 'initials',
@@ -76,115 +85,107 @@ MAP = {
X500ATTR+'46': 'dnQualifier', X500ATTR+'46': 'dnQualifier',
X500ATTR+'47': 'enhancedSearchGuide', X500ATTR+'47': 'enhancedSearchGuide',
X500ATTR+'48': 'protocolInformation', X500ATTR+'48': 'protocolInformation',
X500ATTR+'50': 'uniqueMember',
X500ATTR+'51': 'houseIdentifier',
X500ATTR+'52': 'supportedAlgorithms',
X500ATTR+'53': 'deltaRevocationList',
X500ATTR+'54': 'dmdName', X500ATTR+'54': 'dmdName',
NETSCAPE_LDAP+'4': 'employeeType', X500ATTR+'65': 'pseudonym',
X500ATTR+'22': 'teletexTerminalIdentifier',
X500ATTR+'23': 'facsimileTelephoneNumber',
X500ATTR+'20': 'telephoneNumber',
X500ATTR+'21': 'telexNumber',
X500ATTR+'26': 'registeredAddress',
X500ATTR+'27': 'destinationIndicator',
X500ATTR+'24': 'x121Address',
X500ATTR+'25': 'internationaliSDNNumber',
X500ATTR+'28': 'preferredDeliveryMethod',
X500ATTR+'29': 'presentationAddress',
EDUPERSON_OID+'3': 'eduPersonOrgDN',
NOREDUPERSON_OID+'3': 'norEduPersonBirthDate',
}, },
"to":{ 'to': {
'roleOccupant': X500ATTR+'33', 'associatedDomain': UCL_DIR_PILOT+'37',
'gn': X500ATTR+'42', 'authorityRevocationList': X500ATTR+'38',
'norEduPersonNIN': NOREDUPERSON_OID+'5', 'businessCategory': X500ATTR+'15',
'title': X500ATTR+'12', 'c': X500ATTR+'6',
'facsimileTelephoneNumber': X500ATTR+'23', 'cACertificate': X500ATTR+'37',
'mail': UCL_DIR_PILOT+'3', 'carLicense': NETSCAPE_LDAP+'1',
'postOfficeBox': X500ATTR+'18', 'certificateRevocationList': X500ATTR+'39',
'fax': X500ATTR+'23',
'telephoneNumber': X500ATTR+'20',
'norEduPersonBirthDate': NOREDUPERSON_OID+'3',
'rfc822Mailbox': UCL_DIR_PILOT+'3',
'dc': UCL_DIR_PILOT+'25',
'countryName': X500ATTR+'6', 'countryName': X500ATTR+'6',
'crossCertificatePair': X500ATTR+'40',
'dc': UCL_DIR_PILOT+'25',
'deltaRevocationList': X500ATTR+'53',
'departmentNumber': NETSCAPE_LDAP+'2',
'destinationIndicator': X500ATTR+'27',
'displayName': NETSCAPE_LDAP+'241',
'dmdName': X500ATTR+'54',
'dnQualifier': X500ATTR+'46',
'domainComponent': UCL_DIR_PILOT+'25',
'eduPersonAffiliation': EDUPERSON_OID+'1',
'eduPersonAssurance': EDUPERSON_OID+'11',
'eduPersonEntitlement': EDUPERSON_OID+'7',
'eduPersonNickname': EDUPERSON_OID+'2',
'eduPersonOrgDN': EDUPERSON_OID+'3',
'eduPersonOrgUnitDN': EDUPERSON_OID+'4',
'eduPersonPrimaryAffiliation': EDUPERSON_OID+'5',
'eduPersonPrimaryOrgUnitDN': EDUPERSON_OID+'8',
'eduPersonPrincipalName': EDUPERSON_OID+'6',
'eduPersonScopedAffiliation': EDUPERSON_OID+'9',
'eduPersonTargetedID': EDUPERSON_OID+'10',
'email': PKCS_9+'1',
'emailAddress': PKCS_9+'1', 'emailAddress': PKCS_9+'1',
'employeeNumber': NETSCAPE_LDAP+'3', 'employeeNumber': NETSCAPE_LDAP+'3',
'organizationName': X500ATTR+'10',
'eduPersonAssurance': EDUPERSON_OID+'11',
'norEduOrgAcronym': NOREDUPERSON_OID+'6',
'registeredAddress': X500ATTR+'26',
'physicalDeliveryOfficeName': X500ATTR+'19',
'associatedDomain': UCL_DIR_PILOT+'37',
'l': X500ATTR+'7',
'stateOrProvinceName': X500ATTR+'8',
'federationFeideSchemaVersion': NOREDUPERSON_OID+'9',
'pkcs9email': PKCS_9+'1',
'givenName': X500ATTR+'42',
'x500UniqueIdentifier': X500ATTR+'45',
'eduPersonNickname': EDUPERSON_OID+'2',
'houseIdentifier': X500ATTR+'51',
'street': X500ATTR+'9',
'supportedAlgorithms': X500ATTR+'52',
'preferredLanguage': NETSCAPE_LDAP+'39',
'postalAddress': X500ATTR+'16',
'email': PKCS_9+'1',
'norEduOrgUnitUniqueIdentifier': NOREDUPERSON_OID+'8',
'eduPersonPrimaryOrgUnitDN': EDUPERSON_OID+'8',
'c': X500ATTR+'6',
'teletexTerminalIdentifier': X500ATTR+'22',
'o': X500ATTR+'10',
'cACertificate': X500ATTR+'37',
'telexNumber': X500ATTR+'21',
'ou': X500ATTR+'11',
'initials': X500ATTR+'43',
'eduPersonOrgUnitDN': EDUPERSON_OID+'4',
'deltaRevocationList': X500ATTR+'53',
'norEduPersonLIN': NOREDUPERSON_OID+'4',
'supportedApplicationContext': X500ATTR+'30',
'eduPersonEntitlement': EDUPERSON_OID+'7',
'generationQualifier': X500ATTR+'44',
'eduPersonAffiliation': EDUPERSON_OID+'1',
'eduPersonPrincipalName': EDUPERSON_OID+'6',
'localityName': X500ATTR+'7',
'owner': X500ATTR+'32',
'norEduOrgUnitUniqueNumber': NOREDUPERSON_OID+'2',
'searchGuide': X500ATTR+'14',
'certificateRevocationList': X500ATTR+'39',
'organizationalUnitName': X500ATTR+'11',
'userCertificate': X500ATTR+'36',
'preferredDeliveryMethod': X500ATTR+'28',
'internationaliSDNNumber': X500ATTR+'25',
'uniqueMember': X500ATTR+'50',
'departmentNumber': NETSCAPE_LDAP+'2',
'enhancedSearchGuide': X500ATTR+'47',
'userPKCS12': NETSCAPE_LDAP+'216',
'eduPersonTargetedID': EDUPERSON_OID+'10',
'norEduOrgUniqueNumber': NOREDUPERSON_OID+'1',
'x121Address': X500ATTR+'24',
'destinationIndicator': X500ATTR+'27',
'eduPersonPrimaryAffiliation': EDUPERSON_OID+'5',
'surname': X500ATTR+'4',
'jpegPhoto': UCL_DIR_PILOT+'60',
'eduPersonScopedAffiliation': EDUPERSON_OID+'9',
'protocolInformation': X500ATTR+'48',
'knowledgeInformation': X500ATTR+'2',
'employeeType': NETSCAPE_LDAP+'4', 'employeeType': NETSCAPE_LDAP+'4',
'userSMIMECertificate': NETSCAPE_LDAP+'40', 'enhancedSearchGuide': X500ATTR+'47',
'facsimileTelephoneNumber': X500ATTR+'23',
'fax': X500ATTR+'23',
'federationFeideSchemaVersion': NOREDUPERSON_OID+'9',
'generationQualifier': X500ATTR+'44',
'givenName': X500ATTR+'42',
'gn': X500ATTR+'42',
'houseIdentifier': X500ATTR+'51',
'initials': X500ATTR+'43',
'internationaliSDNNumber': X500ATTR+'25',
'jpegPhoto': UCL_DIR_PILOT+'60',
'knowledgeInformation': X500ATTR+'2',
'l': X500ATTR+'7',
'localityName': X500ATTR+'7',
'mail': UCL_DIR_PILOT+'3',
'member': X500ATTR+'31', 'member': X500ATTR+'31',
'streetAddress': X500ATTR+'9', 'norEduOrgAcronym': NOREDUPERSON_OID+'6',
'dmdName': X500ATTR+'54',
'postalCode': X500ATTR+'17',
'pseudonym': X500ATTR+'65',
'dnQualifier': X500ATTR+'46',
'crossCertificatePair': X500ATTR+'40',
'eduPersonOrgDN': EDUPERSON_OID+'3',
'authorityRevocationList': X500ATTR+'38',
'displayName': NETSCAPE_LDAP+'241',
'businessCategory': X500ATTR+'15',
'serialNumber': X500ATTR+'5',
'norEduOrgUniqueIdentifier': NOREDUPERSON_OID+'7', 'norEduOrgUniqueIdentifier': NOREDUPERSON_OID+'7',
'st': X500ATTR+'8', 'norEduOrgUniqueNumber': NOREDUPERSON_OID+'1',
'carLicense': NETSCAPE_LDAP+'1', 'norEduOrgUnitUniqueIdentifier': NOREDUPERSON_OID+'8',
'norEduOrgUnitUniqueNumber': NOREDUPERSON_OID+'2',
'norEduPersonBirthDate': NOREDUPERSON_OID+'3',
'norEduPersonLIN': NOREDUPERSON_OID+'4',
'norEduPersonNIN': NOREDUPERSON_OID+'5',
'o': X500ATTR+'10',
'organizationName': X500ATTR+'10',
'organizationalUnitName': X500ATTR+'11',
'ou': X500ATTR+'11',
'owner': X500ATTR+'32',
'physicalDeliveryOfficeName': X500ATTR+'19',
'pkcs9email': PKCS_9+'1',
'postOfficeBox': X500ATTR+'18',
'postalAddress': X500ATTR+'16',
'postalCode': X500ATTR+'17',
'preferredDeliveryMethod': X500ATTR+'28',
'preferredLanguage': NETSCAPE_LDAP+'39',
'presentationAddress': X500ATTR+'29', 'presentationAddress': X500ATTR+'29',
'protocolInformation': X500ATTR+'48',
'pseudonym': X500ATTR+'65',
'registeredAddress': X500ATTR+'26',
'rfc822Mailbox': UCL_DIR_PILOT+'3',
'roleOccupant': X500ATTR+'33',
'searchGuide': X500ATTR+'14',
'serialNumber': X500ATTR+'5',
'sn': X500ATTR+'4', 'sn': X500ATTR+'4',
'domainComponent': UCL_DIR_PILOT+'25', 'st': X500ATTR+'8',
'stateOrProvinceName': X500ATTR+'8',
'street': X500ATTR+'9',
'streetAddress': X500ATTR+'9',
'supportedAlgorithms': X500ATTR+'52',
'supportedApplicationContext': X500ATTR+'30',
'surname': X500ATTR+'4',
'telephoneNumber': X500ATTR+'20',
'teletexTerminalIdentifier': X500ATTR+'22',
'telexNumber': X500ATTR+'21',
'title': X500ATTR+'12',
'uniqueMember': X500ATTR+'50',
'userCertificate': X500ATTR+'36',
'userPKCS12': NETSCAPE_LDAP+'216',
'userSMIMECertificate': NETSCAPE_LDAP+'40',
'x121Address': X500ATTR+'24',
'x500UniqueIdentifier': X500ATTR+'45',
} }
} }

140
tools/sync_attrmaps.py Executable file
View File

@@ -0,0 +1,140 @@
#!/usr/bin/env python
from importlib import import_module
import sys
import os
__author__ = 'roland'
def load(head, tail):
if head == "":
if sys.path[0] != ".":
sys.path.insert(0, ".")
else:
sys.path.insert(0, head)
if tail.endswith(".py"):
tail = tail[:-3]
return import_module(tail)
def intcmp(s1, s2):
try:
_i1 = int(s1)
_i2 = int(s2)
except ValueError:
_i1 = s1
_i2 = s2
if _i1 < _i2:
return -1
if _i1 > _i2:
return 1
else:
return 0
class AMap(object):
def __init__(self, head, tail, indent=4 * " "):
self.mod = load(head, tail)
self.variable = {}
self.vars = []
self.text = []
self.indent = indent
for key, val in self.mod.__dict__.items():
if key.startswith("__"):
continue
elif key == "MAP":
continue
else:
self.variable[key] = val
self.vars.append(key)
self.vars.sort()
def sync(self):
for key, val in self.mod.MAP["fro"].items():
try:
assert self.mod.MAP["to"][val] == key
except KeyError: # missing value
print "# Added %s=%s" % (self.mod.MAP["to"][val], key)
self.mod.MAP["to"][val] = key
except AssertionError:
raise Exception("Mismatch key:%s '%s' != '%s'" % (
key, val, self.mod.MAP["to"][val]))
for val in self.mod.MAP["to"].values():
if val not in self.mod.MAP["fro"]:
print "# Missing URN '%s'" % val
def do_fro(self):
txt = ["%s'fro': {" % self.indent]
i2 = self.indent + self.indent
_fro = self.mod.MAP["fro"]
for var in self.vars:
_v = self.variable[var]
li = [k[len(_v):] for k in _fro.keys() if k.startswith(_v)]
li.sort(intcmp)
for item in li:
txt.append("%s%s+'%s': '%s'," % (i2, var, item,
_fro[_v + item]))
txt.append('%s},' % self.indent)
return txt
def do_to(self):
txt = ["%s'to': {" % self.indent]
i2 = self.indent + self.indent
_to = self.mod.MAP["to"]
_keys = _to.keys()
_keys.sort()
invmap = dict([(v, k) for k, v in self.variable.items()])
for key in _keys:
val = _to[key]
for _urn, _name in invmap.items():
if val.startswith(_urn):
txt.append("%s'%s': %s+'%s'," % (i2, key, _name,
val[len(_urn):]))
txt.append('%s}' % self.indent)
return txt
def __str__(self):
self.sync()
text = []
for key in self.vars:
text.append("%s = '%s'" % (key, self.variable[key]))
text.extend(["", ""])
text.append("MAP = {")
text.append("%s'identifier': '%s'," % (self.indent,
self.mod.MAP["identifier"]))
text.extend(self.do_fro())
text.extend(self.do_to())
text.append("}")
text.append("")
return "\n".join(text)
if __name__ == "__main__":
_name = sys.argv[1]
if os.path.isfile(_name):
directory, fname = os.path.split(_name)
amap = AMap(directory, fname, 4 * " ")
f = open(_name)
f.write("%s" % amap)
f.close()
elif os.path.isdir(_name):
for fname in os.listdir(_name):
if fname == "__init__.py":
continue
elif fname.endswith(".pyc"):
continue
print 10 * "=" + fname + 10 * "="
amap = AMap(_name, fname, 4 * " ")
f = open(fname, "w")
f.write("%s" % amap)
f.close()