diff --git a/entities_security_contacts.py b/entities_security_contacts.py index d718fdedaa40db41d97d941cb90e448bf9e73997..752923089724425d70dda1e78e5fbf02082794c3 100755 --- a/entities_security_contacts.py +++ b/entities_security_contacts.py @@ -25,7 +25,8 @@ ns = { 'mdui': 'urn:oasis:names:tc:SAML:metadata:ui', 'shibmd': 'urn:mace:shibboleth:metadata:1.0', 'remd': 'http://refeds.org/metadata', - 'icmd': 'http://id.incommon.org/metadata' + 'icmd': 'http://id.incommon.org/metadata', + 'mdrpi': 'urn:oasis:names:tc:SAML:2.0:metadata:rpi', } @@ -33,6 +34,13 @@ entities = root.findall('./md:EntityDescriptor', ns) for entity in entities: sec_mails = set() + + registration_authority = '' + registration_info = entity.find('./mdrpi:RegistrationInfo', ns) + if not registration_info: + continue + else: + registration_authority = registration_info.attrib['RegistrationAuthority'] orgname = entity.find('./md:Organization/md:OrganizationDisplayName', ns).text.strip() if not orgname: continue @@ -62,7 +70,7 @@ for entity in entities: for mail in sec_mails: if (domain,mail) not in seen_doms_mails: seen_doms_mails.add((domain, mail)) - contacts.add('{},{},{}'.format(domain, mail, orgname)) + contacts.add('{},{},{}'.format(domain, mail, orgname, registration_authority)) for contact in sorted(contacts): print(contact)