@@ -15,9 +15,8 @@ from utils import getLogger, getIdPContacts, getDriver
...
@@ -15,9 +15,8 @@ from utils import getLogger, getIdPContacts, getDriver
"""
"""
The script works with 2 SPs that using Shibboleth Embedded Discovery Service to allow IdP selection on their login page.
The check works with the wayfless url of two SP and successed if the IdP Login Page appears and contains the fields "username" and "password" for each of them.
The script has been written to simulate an user that inserts the IdP's entityID into the EDS search box and press "Enter" to load its Login Page. The Login Page MUST presents the fields "username" and "password" to pass the check on each SP involved into the test.
It is possible to disable the check by eccs2properties with *denylist or by "robots.txt" put on the SAMLRequest endpoint root web dir.
If the IdP Login page presente the fields for both selected SP the test is passed, otherwise it is failed.
"""
"""
# Returns the FQDN to use on the HTML page_source files
# Returns the FQDN to use on the HTML page_source files
...
@@ -30,7 +29,8 @@ def getIDPlabel(url_or_urn):
...
@@ -30,7 +29,8 @@ def getIDPlabel(url_or_urn):
defgetIDPfqdn(samlrequest_url):
defgetIDPfqdn(samlrequest_url):
returngetIDPlabel(samlrequest_url)
returngetIDPlabel(samlrequest_url)
# The function check that the IdP recognized the SP by presenting its Login page.
# This function checks if an IdP recognized the SP by presenting its Login page with "username" and "password" fields.
# It is possible to disable the check on eccs2properties with the *denylist or by "robots.txt" file into the SAMLRequest endpoint root web dir.
# If the IdP Login page contains "username" and "password" fields, than the test is passed.
# If the IdP Login page contains "username" and "password" fields, than the test is passed.
defcheckIdP(sp,idp,test):
defcheckIdP(sp,idp,test):
...
@@ -47,33 +47,35 @@ def checkIdP(sp,idp,test):
...
@@ -47,33 +47,35 @@ def checkIdP(sp,idp,test):
returnNone
returnNone
# Configure Blacklists
# Configure Blacklists
federation_blacklist=FEDS_BLACKLIST
#federations_disabled_list = FEDS_DISABLED_LIST
entities_blacklist=IDPS_BLACKLIST
#idps_disabled_list = IDPS_DISABLED_LIST
federations_disabled_dict=FEDS_DISABLED_DICT
idps_disabled_dict=IDPS_DISABLED_DICT
fqdn_sp=parse_url(sp)[2]
fqdn_sp=parse_url(sp)[2]
wayfless_url=sp+idp['entityID']
wayfless_url=sp+idp['entityID']
robots=""
robots=""
if (idp['registrationAuthority']infederation_blacklist):
if (idp['registrationAuthority']infederations_disabled_dict.keys()):
# 'https://edugain-proxy.igtf.net/simplesaml/saml2/idp/metadata.php':'Disabled on 2017-03-17 on request of federation operator',
'https://gn-vho.grnet.gr/idp/shibboleth',
'https://gn-vho.grnet.gr/idp/shibboleth':'Disabled on 2019-04-24 because basic authentication is not supported by ECCS check',
'https://wtc.tu-chemnitz.de/shibboleth',
'https://wtc.tu-chemnitz.de/shibboleth':'Disabled on 2019-02-26 because ECCS cannot check non-standard login page',
'https://idp.utorauth.utoronto.ca/shibboleth',
# 'https://idp.utorauth.utoronto.ca/shibboleth':'Disabled on 2015-08-17 because login on this IdP requires JavaScript, which is not supported by the check',
'https://login.lstonline.ac.uk/idp/pingfederate',
'https://login.lstonline.ac.uk/idp/pingfederate':'Disabled on 2017-02-08 on request of federation operator',
'https://idp.cambria.ac.uk/openathens',
'https://idp.cambria.ac.uk/openathens':'Disabled on 2017-10-27 on request of federation operator',
'https://indiid.net/idp/shibboleth',
'https://indiid.net/idp/shibboleth':'Disabled on 2017-10-27 on request of federation operator',
'https://idp.nulc.ac.uk/openathens',
'https://idp.nulc.ac.uk/openathens':'Disabled on 2017-10-27 on request of federation operator',
'https://lc-idp.lincolncollege.ac.uk/shibboleth',
# 'https://lc-idp.lincolncollege.ac.uk/shibboleth':'Disabled on 2015-08-17 because uses HTTP Basic authentication, which cannot be checked reliably',
'https://boleth.chi.ac.uk/idp/shibboleth',
# 'https://boleth.chi.ac.uk/idp/shibboleth':'Disabled on 2015-08-17 because uses HTTP Basic authentication, which cannot be checked reliably',
'https://idp.wnsc.ac.uk/idp/shibboleth',
'https://idp.wnsc.ac.uk/idp/shibboleth':'Disabled on 2017-10-27 on request of federation operator',
'https://idp.strodes.ac.uk/shibboleth',
# 'https://idp.strodes.ac.uk/shibboleth':'Disabled on 2015-08-17 because uses HTTP Basic authentication, which cannot be checked reliably',
'https://idp.ucreative.ac.uk/shibboleth',
'https://idp.ucreative.ac.uk/shibboleth':'Disabled on 2017-10-27 on request of federation operator',
'https://idp.llandrillo.ac.uk/shibboleth',
'https://idp.llandrillo.ac.uk/shibboleth':'Disabled on 2017-10-27 on request of federation operator',
'https://idp.uel.ac.uk/shibboleth',
'https://idp.uel.ac.uk/shibboleth':'Disabled on 2017-10-27 on request of federation operator',
'https://idp-dev.cardiff.ac.uk/idp/shibboleth',
'https://idp-dev.cardiff.ac.uk/idp/shibboleth':'Disabled on 2017-02-08 on request of federation operator',
'https://sso.vu.lt/SSO/saml2/idp/metadata.php',
'https://sso.vu.lt/SSO/saml2/idp/metadata.php':'Disabled on 2018-11-02 because ECCS cannot check non-standard login page',