Trust & Identity Incubator
Public Sprint Demo #3.2
Public (PU)
Public Sprint Demo
17 December 2024
GN5-1
Agenda
14:00 → 14:30
TI Wizard – A GUI-driven component to help configure endpoints and metadata for tools like SSP and SaToSa��Mihály Héder, Peter Bolha, Alexandr Petrunin
14:30 → 15:00
Verifiable Credentials Schema for eduPerson, SCHAC and voPerson
Niels van Dijk
15:00 → 15:30
OpenID Federation Implementation in Shibboleth IdP and SimpleSAMLphp
Henri Mikkonen, Marko Ivančić, Niels van Dijk
15:30 → 16:00
eduGAIN OpenID Federation Pilot��Davide Vaghetti, Diana Gudu, Gabriel Zachmann, Giuseppe De Marco, Niels van Dijk�
2 |
GN5-1
TI Wizard
3 |
GN5-1
Activity: TI Wizard – A GUI-driven component to help configure endpoints and metadata for tools like SSP and SaToSa
4 |
GN5-1
Activity: TI Wizard - A GUI-driven component to help configure endpoints and metadata for tools like SSP and SaToSa
✅ A very nice GUI library
✅ Design is starting to converge
😀 Reframing from GUI proxy to a general endpoint and metadata management utility
😀 From UI mockup to GUI code skeleton
😀 Considering sensible defaults in the GUI and specific connectors for specific identity products
5
5 |
GN5-1
Architecture
6 |
GN5-1
Demo Screencasts - �GUI
7 |
GN5-1
Config Processors
8 |
GN5-1
Demo Screencasts - �Config Processors
9 |
GN5-1
Links
Repos
https://github.com/PeterBolha/ti-wizard-connectors
10 |
GN5-1
Verifiable Credentials Schema for
eduPerson, SCHAC and voPerson
Esther Ruiz Ben (DFN), Niels van Dijk (SURF)
11 |
GN5-1
12
Verifiable Credentials �Subcommittee Meeting @TechEx
13
Verifiable Credentials Subcommittee Charter
W3C Verifiable Credentials (VC) are increasingly important to our community with the rise of Decentralized Identity and Wallet ecosystems. Several VC based credential definitions already exist for expressing skills and micro-credentials, like e.g. the Open Badges 3.0 specification. However, there is no consistent and community driven definition for expressing the 'identity related' credentials of the commonly used schema managed by REFEDs like e.g. eduPerson, SCHAC and voPerson.�
The REFEDS schema board is setting up a subcommittee to define the VC representations of these well known credentials so they may be used in an standardized and interoperable way.
14
Charter
Verifiable Credentials Subcommittee
15
Simple VC
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "https://university.example/Credential123",
"type": ["VerifiableCredential", "ExampleAlumniCredential"],
"issuer": "did:example:2g55q912ec3476eba2l9812ecbfe",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "https://www.example.org/persons/pat",
"name": "Pat",
"alumniOf": {
"id": "did:example:c276e12ec21ebfeb1f712ebc6f1",
"name": "Example University"
}
}
}
https://www.w3.org/TR/vc-data-model-2.0/
16
eduPerson Object Class Specification (202208) v4.4.0
https://wiki.refeds.org/display/STAN/eduPerson+%28202208%29+v4.4.0
VC != attributes
17
Approach #1: All of eduPerson + Selective Disclosure
18
Approach #1: All of eduPerson + Selective Disclosure
DEMO
19
Approach #2a: Specific Set of Claims
20
Approach #2: Specific Set of Claims
DEMO
21
Approach #3: eduPerson and voPerson in One VC
22
VC Presentation
DEMO
23
Approach #4: VC with Common Claims + Selective Disclosure
24
JSON Schema for Simple VC
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "https://university.example/Credential123",
"type": ["VerifiableCredential", "ExampleAlumniCredential"],
"issuer": "did:example:2g55q912ec3476eba2l9812ecbfe",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "https://www.example.org/persons/pat",
"name": "Pat",
"alumniOf": {
"id": "did:example:c276e12ec21ebfeb1f712ebc6f1",
"name": "Example University"
}
},
"credentialSchema": {
"id": "https://university.example/Credential-schema.json",
"type": "JsonSchema"
}
}
25
JSON Schema for Simple VC
{
"$id": "https://university.example/schemas/credential.json",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "ExampleAlumniCredential",
"description": "Alumni Credential using JsonSchema",
"type": "object",
"properties": {
"credentialSubject": {
"type": "object",
"properties": {
"alumniOf": {
"type": "string",
"format": "url"
}
},
"required": [
"alumniOf"
]
}
}
}
26
Issuer Specific Presentation
27
Presenting VCs
28
Proposed Approach
OID Federation implementation in
Shibboleth and SimpleSAMLphp
Public (PU)
Henri Mikkonen (CSC & Shibboleth Consortium), �Marko Ivančić (SRCE), �Niels van Dijk (SURF)�T&I Incubator Sprint Demo - December 17, 2024
GN5-1
Shibboleth IdP OIDC OP plugin - OIDfed support (1/5)
30 |
GN5-1
Shibboleth IdP OIDC OP plugin - OIDfed support (2/5)
<bean id="shibboleth.UnverifiedRelyingParty" parent="RelyingParty">
<property name="profileConfigurations">
<list>� <bean parent="OIDFED.Configuration"
p:cachedEntityStatementLifetime="PT2H" p:cachedEntityStatementLifetime=”PT1H”� p:authorityHints=”https://trust-anchor.testbed.oidcfed.incubator.geant.org/” />
</list>
</property>
</bean>
31 |
GN5-1
Shibboleth IdP OIDC OP plugin - OIDfed support (3/5)
32 |
GN5-1
Shibboleth IdP OIDC OP plugin - OIDfed support (4/5)
33 |
GN5-1
Shibboleth IdP OIDC OP plugin - OIDfed support (5/5)
...
<util:list id="shibboleth.RelyingPartyOverrides">
<bean parent="RelyingPartyByName" c:relyingPartyIds="https://trust-anchor.testbed.oidcfed.incubator.geant.org/">
<property name="profileConfigurations">
<list>
<bean parent="OIDFED.AutomaticRegistration" p:mandatoryTrustMarks="https://mandatory.example.org/trustmark"/>
</list>
</property>
</bean>
<bean parent="RelyingPartyByTrustAnchor" c:trustAnchorIds="https://trust-anchor.testbed.oidcfed.incubator.geant.org/">
<property name="profileConfigurations">
<list>
<bean parent="OIDC.SSO" p:forcePKCE=”true” p:allowPKCEPlain=”false” />
<bean parent="OIDC.UserInfo" />
</list>
</property>
</bean>
...
34 |
GN5-1
Shibboleth IdP OIDC OP plugin - OIDfed support - Demo
35 |
GN5-1
SimpleSAMLphp Module OIDC
https://github.com/simplesamlphp/simplesamlphp-module-oidc
36 |
GN5-1
SimpleSAMLphp Module OIDC - Demo
37 |
GN5-1
Interop and Integration testing
Shib and SSP OP added to, and tested against implementations of Roland Hedberg, SPID/CIE and Incubator GO based implementation of TA, Intermediate and RPs
Shibboleth
OP
SimpleSAMLphp
OP
38 |
GN5-1
Thank You
www.geant.org
eduGAIN OpenID Federation Pilot
40 |
GN5-1
eduGAIN OpenID Federation Pilot
The eduGAIN service activity will set up a PoC in to evaluate the new OpenID Federation (OID Fed) standard and wants to eventually create an official eduGAIN Technology Profile to extend the current service.
The Trust and Identity Incubator has over the years build considerable experience with developing tooling, and implementing OpenID Fedederation in various products and languages, as well as evaluating e.g. REFEDs specifications in the context of OID Fed.
This activity seeks to contribute to the eduGAIN PoC by:
The incubator will work on these in close collaboration with the eduGAIN PoC team.
41 |
GN5-1
“eduGAIN interfederation service connects identity federations around the world, simplifying access to content, services and resources for the global research and education community”
42 |
GN5-1
Inter-federated Access
Federation Blue
Federation Green
43 |
GN5-1
eduGAIN Global Coverage
78 Federations
9552 Entities
5775 Identity Providers
3795 Service Providers
Last update November 26th 2024
44 |
GN5-1
What do we use it for?
45 |
GN5-1
eduGAIN provides
46 |
GN5-1
eduGAIN provides
A trust layer for cross border access to R&E resources
47 |
GN5-1
eduGAIN OpenID Federation Pilot Overview
WHEN
HOW
WHO
WHY
48 |
GN5-1
OpenID Federation
Trust Mark Owner
Trust Mark Issuer
49 |
GN5-1
Pilot assumptions
50 |
GN5-1
eduGAIN OpenID Federation Trust model
51
51 |
GN5-1
The eduGAIN OpenID Connect Profile - work in progress
TRUST is based on trust chains with eduGAIN as Trust Anchor, Federations as Intermediates and Entities as Leaves
ENTITY RESOLUTION is provided by a resolver endpoint at federation and inter-federation level that provides metadata about entities
ENTITY VALIDATION is based the eduGAIN Trust Mark. Only validated entities can be part of trust chains with eduGAIN as Trust Anchor
52 |
GN5-1
Trust hierarchy ‘remix’ using Trustmarks
53
53 |
GN5-1
Trust hierarchy ‘remix’ using Trustmarks
54
54 |
GN5-1
Edugain Testbed
55 |
GN5-1
Benefits for using OID Fed in eduGAIN
56 |
GN5-1
Some of our software projects
57 |
GN5-1
Thank You
www.geant.org