22
OpenID Connect Federation Workshop UNINETT 6. oktober 2017 [email protected] Andreas Åkre Solberg

OpenID Connect Federation

Embed Size (px)

Citation preview

Page 1: OpenID Connect Federation

OpenID Connect FederationWorkshopUNINETT 6. oktober 2017

[email protected] Åkre Solberg

Page 2: OpenID Connect Federation

2

SAML 2.0SP

SAML 2.0SP

SAML 2.0SP

SAML 2.0IdP

SAML 2.0IdP

SAML 2.0IdP

SAML 2.0MetadataAggregate

Page 3: OpenID Connect Federation

3

SAML 2.0SP

SAML 2.0SP

SAML 2.0SP

SAML 2.0IdP

SAML 2.0IdP

SAML 2.0IdP

SAML 2.0MetadataAggregate

SAML 2.0MetadataAggregate

SAML 2.0MetadataAggregate

eduGAIN

Page 4: OpenID Connect Federation

4

OIDCClient

OIDCClient

OIDCClient

OIDCProvider

Self-serviceRegistry

Page 5: OpenID Connect Federation

5

OIDCClient

OIDCProvider

Discovery

Registration

Authentication request

Token request

Providermetadata

client config

Page 6: OpenID Connect Federation

Metadata

Express something about:

Client (an unregistered one)

Provider

Schema similar to:

OpenID Connect Discovery Response describes a provider

OpenID Connect Dynamic Client registration request describes a client

Using JWS to sign and chain trust to a common root

6

Page 7: OpenID Connect Federation

Signed metadata

7

Page 8: OpenID Connect Federation

Rolands OpenID Connect Federations

8

Nested metadata

Page 9: OpenID Connect Federation

Rolands OpenID Connect Federations

9

OIDCClient

OIDCProvider

Discovery

Registration

Authentication request

Token request

SignedProvidermetadatasigned client

metadataclientconfig

client_secret

Page 10: OpenID Connect Federation

Less state in clients

Complex to deal with expired

Possibility to use vanilla OIDC Core clients.

Use of asymmetric crypto

10

Proposed changes

Page 11: OpenID Connect Federation

11

Page 12: OpenID Connect Federation

12

Page 13: OpenID Connect Federation

13

Page 14: OpenID Connect Federation

14

Page 15: OpenID Connect Federation

15

Page 16: OpenID Connect Federation

16

Page 17: OpenID Connect Federation

17

Page 18: OpenID Connect Federation

18

Page 19: OpenID Connect Federation

19

Page 20: OpenID Connect Federation

OpenID Client requirements

100% vanilla OpenID Connect Core Client should interop with OIDC Fed Provider.

Restrictions on what part of [Core] to use. Typically client authentication using private_key_jwt

The client may want to filter / configure which OP to trust. This can typically be added as a hook in the Discovery process.

Will need to host a well-known static document at client hostname, pointing to a registry or other that issues a signed metadata statement about the client.

20

Page 21: OpenID Connect Federation

OpenID Provider requirements

Single hook where to validate and discover OIDC client metadata.

Typically implement the client configuration store getClientConfig(String client_id) getClientConfig(‘https://client.example.org’)

Will need to publish a signed Metadata Statement along with Provider config at well known location.

21

Page 22: OpenID Connect Federation

Nested MS versus flat list of signed MS. Pros cons?

22