Skip to content
Snippets Groups Projects
Commit 4d9a3040 authored by Davide Vaghetti's avatar Davide Vaghetti
Browse files

Merge branch 'master' into 'master'

Master

See merge request !5
parents 4b6a19dc 720fb7e1
No related branches found
No related tags found
1 merge request!5Master
...@@ -25,7 +25,8 @@ ns = { ...@@ -25,7 +25,8 @@ ns = {
'mdui': 'urn:oasis:names:tc:SAML:metadata:ui', 'mdui': 'urn:oasis:names:tc:SAML:metadata:ui',
'shibmd': 'urn:mace:shibboleth:metadata:1.0', 'shibmd': 'urn:mace:shibboleth:metadata:1.0',
'remd': 'http://refeds.org/metadata', 'remd': 'http://refeds.org/metadata',
'icmd': 'http://id.incommon.org/metadata' 'icmd': 'http://id.incommon.org/metadata',
'mdrpi': 'urn:oasis:names:tc:SAML:metadata:rpi',
} }
...@@ -33,6 +34,13 @@ entities = root.findall('./md:EntityDescriptor', ns) ...@@ -33,6 +34,13 @@ entities = root.findall('./md:EntityDescriptor', ns)
for entity in entities: for entity in entities:
sec_mails = set() sec_mails = set()
registration_authority = ''
registration_info = entity.find('./md:Extensions/mdrpi:RegistrationInfo', ns)
if registration_info == None:
continue
else:
registration_authority = registration_info.attrib['registrationAuthority'].strip()
orgname = entity.find('./md:Organization/md:OrganizationDisplayName', ns).text.strip() orgname = entity.find('./md:Organization/md:OrganizationDisplayName', ns).text.strip()
if not orgname: if not orgname:
continue continue
...@@ -62,7 +70,7 @@ for entity in entities: ...@@ -62,7 +70,7 @@ for entity in entities:
for mail in sec_mails: for mail in sec_mails:
if (domain,mail) not in seen_doms_mails: if (domain,mail) not in seen_doms_mails:
seen_doms_mails.add((domain, mail)) seen_doms_mails.add((domain, mail))
contacts.add('{},{},{}'.format(domain, mail, orgname)) contacts.add('{},{},{},{}'.format(registration_authority, domain, mail, orgname))
for contact in sorted(contacts): for contact in sorted(contacts):
print(contact) print(contact)
#!/usr/bin/env python3
# This script consume the eduGAIN API to retrieve the details of all the
# eduGAIN identity federations and parse it to create a list of security
# email addresses, if available, and the corresponding federation name in
# CSV format.
# This list will be printed to stdout.
import requests
feds = requests.get('https://technical.edugain.org/api.php?action=list_feds_full')
feds_dict = feds.json()
print('FEDERATION,COUNTRIES,SECURITY CONTACT,FEDERATION CONTACT')
for fed in feds_dict:
if feds_dict[fed]['status'] == '6':
countries = ""
security_contact = ""
if 'security_contact' in feds_dict[fed]:
if 'mail' in feds_dict[fed]['security_contact']:
security_contact = feds_dict[fed]['security_contact']['mail']['value']
if 'countries' in feds_dict[fed]:
countries_array = feds_dict[fed]['countries']
for country in countries_array:
countries = countries + " " + country
print(f"{fed},{countries.strip()},{security_contact},{feds_dict[fed]['contact_email']}")
#!/usr/bin/env python3 #!/usr/bin/env python3
# This script consume the eduGAIN API to retrieve the details of all the # This script consume the eduGAIN API to retrieve the details of all the
# eduGAIN identity federations and parse it to create a list of # eduGAIN identity federations and parse it to create a list of security
# security email addresses, if available, and the corresponding # email addresses, if available, and the corresponding federation name in
# federation name in CSV format. # CSV format.
# This list will be printed to stdout. # This list will be printed to stdout.
import requests import requests
...@@ -12,6 +12,8 @@ feds = requests.get('https://technical.edugain.org/api.php?action=list_feds_full ...@@ -12,6 +12,8 @@ feds = requests.get('https://technical.edugain.org/api.php?action=list_feds_full
feds_dict = feds.json() feds_dict = feds.json()
print('#NAME,EMAIL')
for fed in feds_dict: for fed in feds_dict:
if 'security_contact' in feds_dict[fed]: if 'security_contact' in feds_dict[fed]:
if 'mail' in feds_dict[fed]['security_contact']: if 'mail' in feds_dict[fed]['security_contact']:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment