GEANT OIDC-work status

Henri Mikkonen henri.mikkonen at csc.fi
Mon Nov 13 09:31:11 EST 2017


Hi,

Scott asked us to give a short status update to this list every now and 
then. So, here you are, a rough list of features we’ve been working on 
after summer. The list is not 100% accurate: purpose is to give you some 
kind of description where we are at the moment. Feel free to ask more 
details.

In overall, we aim at packaging an alpha version before end of the year, 
supporting standard implicit flow and dynamic client registration. We’ll 
test it against the OpenID foundation’s certification tool and some RPs, 
but naturally we welcome any help/input from you.

BR,
Henri & Janne

---

How to add RPs?

1. File system via JSON

- The implementation is very similar to Shib’s metadata resolvers, but 
we needed to fork the whole (abstract) class hierarchy from the root as 
the existing were based on SAML EntityDescriptors.

- Example “metadata” (serialized OIDCClientInformation class from 
Nimbus): 
https://github.com/CSCfi/shibboleth-idp-oidc-extension/blob/master/roles/oidc-extension/templates/oidc-client.json

2. Dynamic registration, 
https://openid.net/specs/openid-connect-registration-1_0.html

- The registered RPs are stored & obtained via StorageService (still on 
PoC-phase), seems to be compatible with Shib’s in-memory and JPA services.

- OIDCfed (spec by Roland Hedberg et al.) compatibility under 
construction now, need to be in testable shape before end of November: 
https://wiki.geant.org/display/gn42jra3/OIDCfed+Hackathon

---

Authorize flow

1. Implicit flow

- Fairly mature already, some certification tool steps 
(https://op.certification.openid.net:60000/) need still work / 
verification. The configuration we use for certifying our alpha version 
of OP is 
https://github.com/CSCfi/shibboleth-idp-oidc-extension/blob/master/roles/oidc-extension/templates/openid-configuration.

2.  Security configuration - Id token signing

- See: 
https://github.com/CSCfi/shibboleth-idp-oidc-extension/wiki/SecurityConfiguration

- JWK credential support. Using JWK credentials is not mandatory. 
Shibboleth signing configurations are used for determining the algorithm 
and algorithm support.

- “All” OIDC RSA, ES and HS signing configurations supported.

3. Attribute resolution

- 
https://github.com/CSCfi/shibboleth-idp-oidc-extension/wiki/AttributeEncoderPluginConfiguration

- Encoders to support OIDC claims: string, int, boolean, array and 
simple JSON objects.

- More complex cases of JSON object still need work.

4. Attribute filtering

- 
https://github.com/CSCfi/shibboleth-idp-oidc-extension/wiki/AttributeFilterConfiguration

- Policy for scopes and matcher for requested claims. Example filter 
explains a lot - 
https://github.com/CSCfi/shibboleth-idp-oidc-extension/blob/master/roles/oidc-extension/templates/attribute-filter.xml

- Filtering claim values based on requested claim values is still missing

5. Subject Identifier

- 
https://github.com/CSCfi/shibboleth-idp-oidc-extension/wiki/SubjectIDConfiguration

- Shibboleth persistent name id generation mechanism is used for 
generating subject identifier. Subject Identifier configuration is 
independent of SAML name id configuration.


More information about the dev mailing list