To make sure that the migration to the edu-ID passes off as smoothly as possible, organisations are encouraged to test various processes and components before and during the migration. This page describes various testing scenarios and possibilities from the perspective of a migrating organisation.
See Testing for general information, e.g. differences between the production and test versions of the edu-ID service.
There are mainly two areas to test:
The following sections describe the details.
Depending on the chosen mechanism for the attribute exchange (i.e. synchronisation of affiliations), different testing approaches apply.
Note: For testing attribute synchronisation via the Affiliation API, i.e. testing the organisation's Affiliation API client implementation, it is important to know that affiliations are being linked with edu-ID accounts either in the test or the production version of the edu-ID service, depending on which instance of the Affiliation API is accessed (test or production). Consequently, an account at the organisation (i.e. an affiliation) is linked either with a test edu-ID account or a production edu-ID account, which have different edu-ID identifiers (identifiers of test edu-ID accounts are always prefixed with "0000-"). Since the edu-ID identifier of the linked edu-ID account must be stored in the linked organisation's account, linking test edu-ID accounts with organisation production accounts might not be possible in general.
Examples:
Which set of organisation accounts can be used for testing in the test environment depends on the implementation and deployment of the organisation's Affiliation API client.
In the following, we describe some concrete testing examples:
Here we assume that the test account is in the organisation's test directory. If it's in the production directory, see the next section.
Testing procedure:
For the Affiliation API operations, the organisation test account's swissEduPersonUniqueID value is used as key identifier, and the "edui-ID" identifier is used to specify the edu-ID account to link to.
Here we assume that the personal university account is in the organisation's production directory. The production account is linked with an edu-ID account in the edu-ID test environment.
Testing procedure:
For the Affiliation API operations, the organisation test account's swissEduPersonUniqueID value is used as key identifier, and the "edui-ID" identifier is used to specify the edu-ID account to link to.
This test may be used to verify if the synchronisation works in the production environment. The organisation can call its Affiliation API client for single, specific accounts having stored a production edu-ID identifier and check if synchronisation works as expected.
Applies to Attribute Pull via the Attribute Provider API.
Since it's the organisation's duty to implement and run the Attribute Provider API, you can do a lot of testing yourself.
You need to make sure that your implementation fulfils the requirements of the specification (available at Attribute Provider API).
You can use the test tool provided by the SWTICHaai Attribute Viewer to test your implementation. After having logged in with your AAI account, you can enter your API's URL and specify the required credentials. For getting more details, please see the instructions given there.
If you can't use or don't want to use this tool, you can also test your API implementation using curl. In this case, follow the instructions given below.
The following commands assume that your API instance is available at the base URL https://eduid-ap-api.uni-demo.ch/ap-api/.
curl --user attribute-aggregator https://eduid-ap-api.uni-demo.ch/ap-api/affiliations(Adapt the command to match your deployment.)
curl --user attribute-aggregator https://eduid-ap-api.uni-demo.ch/ap-api/affiliations/123456@uni-demo.ch(Adapt the command to match your deployment.)
SWITCH will do various test queries and verify if the data retrieved fulfils the requirements for synchronising affiliation data for yor organisation.
In this scenario the personal university account will be linked as affiliation with a test edu-ID account in the edu-ID test federation. It is assumed that the personal university account is in the organisation's directory.
Testing procedure:
The above procedure describes the creation of an affiliation. In a similar way, the update and removal of an affiliation can be tested by triggering the respective events in the organizational test identity management.
It's important to make sure that after the migration to the edu-ID, the AAI login works as before for all of the organisation's members, i.e. exactly as with the organisation's existing IdP. Especially, access to all of the organisation's critical services should be tested with great care. This includes whether AAI login to the service works in general and if the logged in users can access all of the service's data as before.
To allow testing the AAI login on the edu-ID IdP as an organisation member (i.e sending the same SAML assertion to services as the organisation's existing IdP would do), SWITCH will need to adapt the configuration of the edu-ID IdP such that it can fully simulate the organisation's existing IdP. This includes copying the SAML certificate (and the corresponding private key) from the organisation's existing IdP and copying some data stored on the organisation's IdP (such as Persistent ID values and attribute release consents).
SWITCH will configure the Staging IdP prior to an organisation's adoption of the edu-ID such that the organisation can test their important services and see how the login will work on the edu-ID IdP after the migration took place. The Staging IdP will be made available to a limited set of people to run tests.
Preparing for testing involves the following tasks:
| Organisation | SWITCH |
|
Provide SWITCH with the SAML certificate and private key of the organisation's existing IdP. |
SWITCH needs to install the existing IdP's SAML certificate on the edu-ID Staging IdP, such that this IdP can simulate the organisation's existing IdP. |
| Provide SWITCH with Persistent ID and attribute release user consent data on the existing IdP. | SWITCH needs to import this data on the edu-ID Staging IdP, such that services get the same Persistent ID values and that already given consents are honored. |
During the setup on the Staging IdP for an organisation, SWITCH will setup some additional DNS names for the edu-ID IdP that are dedicated to the organisation and communicate them to the organisation. In the table below, these dedicated DNS names are the ones starting with <orgid>.
The Staging IdP supports the following login scenarios:
(See the section "Examples" below to see how to run the actual tests.)
| Attribute Model | Affiliation/ Identity |
Scenario | Affiliation Chooser |
Login flow type | "hosts" entry required on client |
Remarks/Conditions | IdP DNS name |
| Classic | Organisation | Emulate Pre-Migration Legacy AAI Login |
No (only if user has multiple accounts at same org) |
Start login on SP, as usual (choose organisation in WAYF) |
Yes2 |
Current IdP's DNS name |
|
| Classic | Organisation | Access AAI SP as organization member | No (only if user has multiple accounts at same org) |
Special login link, start login on IdP1 | No | SP must support Unsolicited Login3 |
|
| Classic | Private Identity |
Access AAI SP as private person | Yes (if SP accepts all audiences) | Start login on SP, as usual (choose edu-ID in WAYF) |
Yes2 | login.eduid.ch |
|
| Classic | Private Identity |
Access AAI SP as private person | Yes (if SP accepts all audiences) | Special login link, start login on IdP1 | No | SP must support Unsolicited Login3 | login.staging.eduid.chCompose Link |
| Extended | Private Identity, Extended Attributes |
Access native edu-ID SP (or edu-ID only SP) | No | Start login on SP, as usual (choose edu-ID in WAYF) |
Yes2 | login.eduid.ch |
|
| Extended | Private Identity, Extended Attributes |
Access native edu-ID SP (or edu-ID only SP) | No | Special login link, start login on IdP1 | No | SP must support Unsolicited Login3 | login.staging.eduid.chCompose Link |
Remarks:
SP EntityID: (EntityID of SP to be tested)
SP Target URL: (Send user to this location at the SP after the login)
SP ACS: (Optional; required if SP supports multiple assertion consumption service locations)
IdP DNS Name: (DNS name according to the table above)
Generated Link:
Suitable hosts file entries (for test cases requiring them):
/etc/hostsC:\WINDOWS\system32\drivers\etc\hosts130.59.118.139 login.staging.eduid.ch 2001:620:0:1006:21a:4aff:fede:97 login.staging.eduid.ch