shibboleth plumbing: implementation and architecture · 2005-11-08 · 11/08/05 25 service provider...

39
Shibboleth Plumbing: Implementation and Architecture http://shibboleth.internet2.edu/docs/plumbing.sxi Nate Klingenstein Internet2

Upload: others

Post on 15-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

Shibboleth Plumbing:Implementation and Architecture

http://shibboleth.internet2.edu/docs/plumbing.sxi

Nate Klingenstein

Internet2

Page 2: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 2

Overview

• Advanced Flows

• The IdP

• The SP

• The WAYF – Thomas Lenggenhager

• Deployment Considerations

• Example Applications

• Handing off to deployment – John Paschoud

• Questions & Answers

Page 3: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 3

Reso

urce

WAYF

Identity Provider Service ProviderWeb Site

1

ACS

3 2

HS

5

6

7

User DB

Credentials

4

AR

Handle

Handle

8

Handle9

AAAttributes 10

Reso

urce

Man

ager

Attributes

© SWITCH

Shibboleth 1.2 & Earlier

Page 4: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 4

Shibboleth 1.3 – Classical

Page 5: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 5

Shibboleth 1.3 – Attribute Push

Page 6: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 6

Shibboleth 1.3 – Artifact

Page 7: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 7

Installation

• Ant

• Binaries

• Eclipse

• Build from source

• Installation of other packages (mod_jk) the hardest part

• Easy– No, really, it is!

• Still too much vi; we're working on it

Page 8: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 8

Shibboleth 1.3 Assertions & Bindings

• SAML 1.0/1.1 Authentication Assertion• SAML 1.0/1.1 Attribute Assertion• SAML 2.0 Metadata• SAML 1.1 HTTP/POST & Artifact• SOAP over HTTP over SSL/TLS• Interoperability

– Burton Group

– eAuthentication

Page 9: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 9

1.3 Extended Profiles

• Lionshare

• GridShib

• ADFS

• Much simpler in 2.0

Page 10: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 10

SAML & Shibboleth 2.0

• Single Logout

• Authentication Request

• Decoupled from the web?

• Enhanced Client Profile (ECP)

• Interoperability

Page 11: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 11

Delegation

• Allowing a third party to act on the behalf of a principal...

• With limitations– Duration

– Permissions

• Used by portals, agents, etc.

Page 12: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 12

Delegation Techniques

• Liberty Alliance

• WS-Trust

• draft-cantor-saml-sso-delegation

• Recursive Delegation

Page 13: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 13

Steven Carmody of IEEE and Brown

• Identity Federation vs. Federated Identity

• Bi-directional Persistent Pseudonyms– Expression of these pointers to third parties

– Handling requests based on these pointers

• What makes an IdP an IdP?

• Strong homology to delegation

Page 14: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 14

Single Logout

• Many different kinds of session

• Inter-realm functionality exponentially compounds the problem– Negative permissions are always hard

• 1.3: Cookies & homeURL

• SAML 2.0 Profile– Implementation and application support will be

critical

• The ultimate: close the browser

Page 15: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 15

Naming

• Attributes– urn:mace:dir:attribute-def

– urn:oid:

• Providers (providerId)– Same for SP's and IdP's

– URI's (URL's or URN's)

– Unique string names; NOT resource locations• ... yet?

Page 16: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 16

Federations

• One of many trust structures

• Do Not Exist in the code

• Facilitate trust and simplify transfer between IdP's and SP's– ... but it's all bilateral in the end

• How many federations will the world have?– Peering?

– Metadata, attribute, and certificate translation?

– Dynamic trust?

Page 17: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 17

Advanced Flows: More Boxes

OpenSAML

Shibboleth Core Metadata Trust Credentials

SPCore

IdPCore

AttributeResolver

ARPEngine

NameIDResolver

SSO ServiceAttributeAuthority

AttributeFiltering

AccessControl

SessionCache

mod_shib, isapi_shib, etc.

Protocol EngineProtocol Engine

ApplicationsUserAuthentication

Page 18: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 18

Configuration Files

• Grand tour– idp.xml

– httpd.conf

– server.xml

– jk.properties

– resolver.xml

– arp.site.xml

• Later, view them configured for applications

Page 19: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 19

Attribute Resolver

• resolver.xml

• Java Generation

• JNDI

• JDBC

• Simple/Scoped

Page 20: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 20

ARP's

• arp.site.xml

• Processing

• SHARPE

Page 21: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 21

Authentication

• Apache/WebISO

• Tomcat/Java

• Multiple mechanism & LoA support

• Shibboleth authentication – 2.0?

Page 22: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 22

Logging & Auditing

• Logging Mechanisms– Built-In

– Container logging• JULI

• Log4J

• Errors– Interrealm error considerations

• Debugging & production configuration

• Demonstrations

Page 23: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 23

Production Deployment

• Efficiency– Load Testing Statistics

• High Availability– Failover

– Load Balancing

• Security

Page 24: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 24

Recycled Boxes

OpenSAML

Shibboleth Core Metadata Trust Credentials

SPCore

IdPCore

AttributeResolver

ARPEngine

NameIDResolver

SSO ServiceAttributeAuthority

AttributeFiltering

AccessControl

SessionCache

mod_shib, isapi_shib, etc.

Protocol EngineProtocol Engine

ApplicationsUserAuthentication

Page 25: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 25

Service Provider Request Mapping

Web Server

App Alpha

Resource Requests

App Beta App Theta

ProviderID Bob pID Scott

URL 1 URL 2 URL 3 URL 4

Attribute Release, Policy Atom

Sessions, Most Settings

Webapps, pages, files, etc.

AAP’s and access decisions

Lazy Session Initiation

Externally Visible Resources

Page 26: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 26

Configuration Files

• shibboleth.xml / sp.xml

• server.xml

• web.xml

• httpd.conf

• AAP.xml

Page 27: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 27

The Many Flavors of “State”

• Authentication Assertion

• SSO Login

• WAYF Choice

• Attributes

• Shibboleth Session

• Application Session

Page 28: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 28

Lazy Session Initiation

• Allows access of URL's before Shibboleth intervenes

• Construct special URL's to trigger attribute release & authn/z– URL to return

– URL of the request handler

• https://foo.com/Shibboleth.sso/SAML/POST? target=https%3A%2F%2Ffoo.com%2Fportal

Page 29: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 29

AAP's

• Map SAML attributes to usable values

• Header variables

• Vary by web server

• Utterly extensible

• aap.xml

Page 30: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 30

Constructing SP Policy

• Restraining attribute acceptance & scope

• Apache directives / web.xml

• shibboleth.xml

• Export assertions/attributes for application-layer decision

• metadata.xml

Page 31: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 31

Application Integration

• Handoffs & expirations

• Some applications will need to be modified

• Storing preferences

• Mind the @ (apologies to London)

• Examples: TWiki, Simple Portal– Many others in production

Page 32: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 32

The WAYF and the Resource Registry

• Thomas Lenggenhager -- SWITCH

Page 33: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 33

Examples!

Page 34: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 34

Protocol Security

• Load balancing at SP is straightforward– ShibURLScheme

• checkAddress

• Assertion Confirmation– Bearer assertion

– Holder of key

• SSL/TLS

• SAML = COOKIE

Page 35: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 35

Attribute Use• *Person

• persistentID– Generated vs. database

– Auditing considerations

• eduPersonEntitlement– Is it a privilege?

• Policy logic visibility

– Is it a dynamic group?

• Identity

• Defining new attributes– Federation issue, or larger than that?

Page 36: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 36

Scope

• Who can talk for whom?

• Who decides?

• What are they allowed to say?

• Metadata & SP Policy

Page 37: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 37

Federation Operation

• Technical Needs– Hosted metadata.xml

– Defined attributes?

– WAYF?

• Policy Needs

• Granularity

• Federation Peering?

Page 38: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 38

John Paschoud

• Moving from development to production support

Page 39: Shibboleth Plumbing: Implementation and Architecture · 2005-11-08 · 11/08/05 25 Service Provider Request Mapping Web Server App Alpha Resource Requests App Beta App Theta ProviderID

11/08/05 39

What do you want to do?

• Q and hopefully A

[email protected]

[email protected]