This document makes use of various formatting options to express how the description should be interpreted.
|
Roland please provide some input..
| Parameter Name | Value | State |
|---|---|---|
| issuer | the global service url (https://tbd.inacademia.org/foo) For dev/testing the FQDN of the server | Required |
| authorization_endpoint | URL of the global service Authorization Endpoint (https://tbd.inacademia.org/foo/authorize) For dev/testing the FQDN of the server is used instead of the global service FQDN | Required |
| jwks_uri | A URL pointing to the servers keys | Required |
| scopes_supported | A list of supported scopes | Required |
| response_types_supported | 'id_token' | Required |
| subject_types_supported | 'public' and 'pairwise' | Optional |
| id_token_signing_alg_values_supported | JSON array containing a list of the JWS signing algorithms (alg values) supported by the OP for the ID Token to encode the Claims in a JWT | Required |
| service_documentation | URL of a page containing human-readable information that developers might want or need to know when using the OpenID Provider | Optional |
Keys will be rolled over every 10 minutes, 3 keys max are accepted
The RP client database is filled in the Admin section, and will be provided via an MDX service. The MDX RP client database will contain:
| Parameter name | Value | State |
|---|---|---|
| redirect_uris | Array of Redirection URI values used by the Client | Required |
| response_types | 'id_token' | Recommended |
| contacts | Array of e-mail addresses of people responsible for this Client | Required |
| client_name | Name of the Client to be presented to the End-User | Recommended |
| sector_identifier_uri | The URL references a file with a single JSON array of redirect_uri values | Optional |
| logo_uri | ||
| client_uri | ||
| policy_uri | ||
| tos_uri |
| Parameter Name | Value | State |
|---|---|---|
| response_type | 'id_token' | Required |
| client_id | RP client_id | Required |
| scope | Multiple values allowed, based on policy. See scope mapping table below | Required |
| redirect_uri | URL to send response to.
| Required |
| state | opaque string which maintains state between RP and OP | Recommended |
| nonce | String value to associate Client session with ID Token. Prevents replay attacks
| Recommended |
| max_age | The max age of the authentication.
| Optional |
| all other | Will be ignored | Ignored |
| Parameter Name | Value | State |
|---|---|---|
| token_type | 'Bearer' | Required |
| id_token | See id_token definition below | Required |
| state | opaque string which maintains state between RP and OP | Required, if requested |
| all other | Will be ignored | Ignored |
KID: The Key ID will be constructed on a per node basis by hashing over (IP + timestamp)
The transaction response will contain an ID Token with the following contents:
| Parameter Name | Value | Implement? |
|---|---|---|
| sub | Based on scope requested, mapping table.
| Required |
| exp | 30 min after NOW() | Required |
| iss | the global service url (https://tbd.inacademia.org/foo) For dev/testing the FQDN of the server | Required |
| aud | RP client_id | Required |
| iat | timestamp | Required |
| auth_time | timestamp indicating when the SAML authN responce was recieved at the SvS SP | Required |
| nonce | String value to associate Client session with ID Token. Prevents replay attacks | Required, if requested |
(All claims are optional, which to deliver depends on requested scope parameters and the allowed scope for the RP)
| Name | Value |
|---|---|
| country | The country code of the institution that handled the AuthNFormat: ISO_3166-1_alpha-3 |
| domain | Specifies a person ́s home organization using the domain name of the organization Format: Domain name according to RFC 1035 |
| Scope | Description | Subject ID value | Available for SAML SP profile | |
|---|---|---|---|---|
| Identifier Claims | Claims that present a transaction identifier, either transient or persistent. To be used in to fill the 'sub' part of the id_token | |||
| persistent | A persistent identifier, unique for this person, on a per RP, per IdP basis. | pairwise persistent | SP_ID, SP_NOID | The pairwise persistent Subject ID is created using a hash over RP client_id + {SAML NameID or eduPersonTargetedID or ePPN \} + IdP entityID |
| transient | A transient identifier, which is unique for each transaction | SP_NOID | Could/Should this be the KID? | |
| Affiliation Claims | These claims establish the persons affiliation with the home institution. These scope request parameters are mutually exclusive | |||
| affiliated | Is this person affiliated to the institution? | SP_ID, SP_NOID | eduPersonAffiliation: faculty, staff, student or member
| |
| student | Is this person a student at the institution? | SP_ID, SP_NOID | eduPersonAffiliation: student | |
| faculty+staff | Institutional workers whose primary role is teaching or research (faculty) and workers other than teachers or researchers (staff) | SP_ID, SP_NOID | eduPersonAffiliation: staff or faculty
| |
| alum | Is this person an alumni at the institution? | SP_ID, SP_NOID | eduPersonAffiliation: alum
| |
| Other Claims | Additional claims an RP may request | |||
| country | What is the country of the users home institution? | SP_ID, SP_NOID | Derived from country information for the federation hosting the IdP, formatted as ISO_3166-1_alpha-3 | |
| domain | What is the domain name of the institution of the user? | SP_ID, SP_NOID | SchacHomeOrganisation |
Examples:
scope=affiliated
scope=affiliated persistent
scope=affiliated persistent country
scope=student persistent country
scope=student persistent country domain
Sources:
http://www.terena.org/activities/refeds/docs/ePSAcomparison_0_13.pdf