E N D
1. Introduction to Shibboleth
2. 2 Agenda What is Shibboleth?
IdP/SP Communication
1.3 to 2.X migration
Future Releases
Support Resources
3. 3 What is Shibboleth? Technically it’s a project group, like Apache or Eclipse, whose core team maintains a set of software components
Most people think of it as the set of software components
OpenSAML C++ and Java libraries
Shibboleth Identity Provider (IdP)
Shibboleth Service Provider (SP)
Shibboleth Discovery Service (DS)
Taken together these components make up a federated identity management (FIM) platform.
You might also think of Shibboleth as a multi-protocol platform that enforces a consistent set of policies.
4. 4 Shibboleth Components
5. 5 Shibboleth Components: Identity Provider What is it?
A Java Servlet (2.4) web application
What does it do?
Connects to existing authentication and user data systems
Provides information about how a user has been authenticated
Provides user identity information from the data source
6. 6 Shibboleth Components: Service Provider What is it?
mod_shib: A C++ web server (Apache/IIS/iPlanet) module
shibd: A C++ daemon - keeps state when web server processes die
What does it do?
Optionally initiates the request for authentication and attributes
Processes incoming authentication and attribute information
Optionally evaluates content access control rules
7. 7 Shibboleth Components: Discovery Service What is it?
A Java Servlet (2.4) web application
What does it do?
Asks the user to select their home organization from a list
8. 8 Terminology SAML - Security Assertion Markup Language - the standard describing the XML messages sent back and forth by the Shibboleth components (two versions: 1.1, 2.0)
Profile - Standard describing how to use SAML to accomplish a specific task (e.g. SSO, attribute query)
Binding - Standard that describes how to take a profile message and send it over a specific transport (e.g. HTTP)
Front-channel - A binding that sends message through a user’s browser via redirects or form posts
Back-channel - A binding where the entities connect directly to each other
9. 9 Terminology entityID - Unique identifier for an IdP or SP
Assertion - The unit of information in SAML
NameID - An identifier by which an IdP knows a user
Attribute - A named piece of information about a user
10. 10 Shibboleth Supported Profiles SAML 1
Shibboleth SSO
Attribute Query
Artifact Resolution
SAML 2
SSO
Attribute Query
Artifact Resolution
Single Logout (SP-only)
Discovery
Shibboleth 1 WAYF
SAML 2 Discovery Service
11. 11 Shibboleth Communication Flow: Shib 1
12. 12 Problems with Shib 1 SSO Flow The SP does not know which IdP will receive its request and so can not tailor the authentication request
Which protocol to use?
Which keys to use for encryption?
The IdP must have a second SSL port in order for the SP to make its attribute query (attribute pull model)
Twice the number of crypto operations
Two request/response pairs for every authentication
13. 13 Shibboleth Communication Flow: Shib 2 SSO
14. 14 Demo
15. 15 Odds and Ends Shibboleth knows nothing about federations, it just consumes metadata in order to:
locate the entity to which messages are sent
determine what protocols the entity supports
determine what signing/encryption keys to use
The IdP is CPU bound, unlike most web apps
No support for crypto-acceleration currently
Good support for clustering though
16. 16 Shibboleth 1.3 to 2.X migration Shibboleth 2 is backwards compatible with 1.3
Obviously new SAML 2 features don’t work with Shib 1.3
Entity’s should embed their certificates in their metadata
This is required in order to support SAML 2 encryption
The Shibboleth team recommends URLs for entityIDs
IdP entityID: https://HOSTNAME/idp/shibboleth
SP entityID: https://HOSTNAME/shibboleth
These URLs can then be used to get the metadata for the entity
17. 17 IdP Migration The Bad News
All configuration files have changed
IdP Endpoints have changed
The Good News
The installer generates:
Most of the configuration files
Certificates used for signing and encryption
IdP Metadata
Shibboleth 2 can operate in the same environment (LDAP/databases, CAS/PubCookie/Kerberos/etc, Apache, Tomcat)
Shibboleth 2 requires less infrastructure, you can remove:
other SSO systems
Apache
metadata refresh scripts
Versions 2 and 1.3 can be run in parallel
18. 18 IdP Migration: How To Install database (optional, needed for persistent name IDs)
Install version 2 (do not use the same $IDP_HOME)
Configure the Identity Provider
Add new IdP to your test federation and test
Update production metadata
Wait enough time for all SPs to refresh metadata
SPs will continue to contact the old IdP until their metadata updates
Shutdown version 1.3 (don’t forget any related cronjobs and services)
Strongly consider setting up a clustered IdP
Give advanced warning if you’re changing the IdP entityID
Systems that do not use metadata will need to be updated in some bilateral fashion
19. 19 SP Migration The Bad News
You can not install Shib 2 over 1.3
Configuration files are similar but not compatible
Versions 2 and 1.3 can not be run in parallel
The Good News
2.0 is mostly just a progression of version 1.3
Same components: shibd & mod_shib
Few changes unless you use new features
Installer generates certificates
New functionality allows the SP to generate its own metadata
20. 20 SP Migration: Attribute Names Version 1.3 placed attributes in HTTP HeadersHTTP_SHIB_EP_AFFILIATION staffHTTP_SHIB_INETORGPERSON_GIVENNAME Lukas
Version 2.0 (when using Apache) places attributes in server environment and uses slightly different names as a resultShib-EP-Affiliation staffShib-InetOrgePerson-givenName Lukas
Version 2.0 supports the old method but the new method guarantees that information can not be spoofed
21. 21 SP Migration: How To Backup old configuration, binaries, and shibd init.d script
Disable Apache module (a2dismod shib)
Disable cronjobs for siterefresh
Move 1.3 SP to some other location
Install version 2.0
Configure Service Provider
Make sure your application still works, if not:
Turn on use of HTTP headers using ShibUseHeaders On
This is needed for all Java applications
Remove old 1.3 SP
22. 22 Future Releases Identity Provider (IdP) 2.2
LDAP and Database query caching
Standard format for all time period/duration options
Small Improvements / Bug Fixes
Identity Provider (IdP) 3.0
Internal API changes
X.509 Authentication
Attribute Release Consent (uApprove)
New Installation Package containing configured Servlet container
New High Availability option that does not require extra software
Simpler Configuration Options
Discovery Service (DS) 2.0
HTML/CSS/Javascript based
Deployable centrally or on the Service Provider
23. 23 Support Resources First, check with your Federation, if you have one:
http://switch.ch/aai/support/documents
http://switch.ch/aai/support/help
Shibboleth Wiki
https://spaces.internet2.edu/display/SHIB2/Home
Shibboleth User’s Mailing List Archive
http://groups.google.com/group/shibboleth-users/topics
Shibboleth User’s Mailing List
http://shibboleth.internet2.edu/lists.html