Shibboleth 2: A Guide for Deployers. Scott Cantor cantor.2@osu.edu Internet2 / The Ohio State University



Similar documents
Shibboleth Identity Provider (IdP) Sebastian Rieger

Implementation Guide SAP NetWeaver Identity Management Identity Provider

This chapter describes how to use the Junos Pulse Secure Access Service in a SAML single sign-on deployment. It includes the following sections:

Setup Guide Access Manager 3.2 SP3

Ameritas Single Sign-On (SSO) and Enterprise SAML Standard. Architectural Implementation, Patterns and Usage Guidelines

How To Use Netiq Access Manager (Netiq) On A Pc Or Mac Or Macbook Or Macode (For Pc Or Ipad) On Your Computer Or Ipa (For Mac) On An Ip

Spring Security 3. rpafktl Pen source. intruders with this easy to follow practical guide. Secure your web applications against malicious

Standalone SAML Attribute Authority With Shibboleth

Perceptive Experience Single Sign-On Solutions

Identity Server Guide Access Manager 4.0

Single Sign-On for the UQ Web

Running Multiple Shibboleth IdP Instances on a Single Host

Authentication Methods

TIBCO Spotfire Platform IT Brief

Integrating VMware Horizon Workspace and VMware Horizon View TECHNICAL WHITE PAPER

Introduction to Directory Services

SAML Security Option White Paper

PingFederate. Salesforce Connector. Quick Connection Guide. Version 4.1

Web Services Security: OpenSSO and Access Management for SOA. Sang Shin Java Technology Evangelist Sun Microsystems, Inc. javapassion.

Flexible Identity Federation

SAML-Based SSO Solution

Logout Support on SP and Application

CA Single Sign-On r12.x (CA SiteMinder) Implementation Proven Professional Exam

Access Gateway Guide Access Manager 4.0 SP1

Setup Guide Access Manager Appliance 3.2 SP3

Federating with Web Applications

StreamServe Persuasion SP5 StreamStudio

Federated Identity Management. Willem Elbers (MPI-TLA) EUDAT training

IMPLEMENTING SINGLE SIGN- ON USING SAML 2.0 ON JUNIPER NETWORKS MAG SERIES JUNOS PULSE GATEWAYS

Integration of Office 365 with existing faculty SSO

Identity Management in Liferay Overview and Best Practices. Liferay Portal 6.0 EE

Federated Identity Management Solutions

How To Use Saml 2.0 Single Sign On With Qualysguard

New Single Sign-on Options for IBM Lotus Notes & Domino IBM Corporation

Spring Security SAML module

NetIQ Identity Manager Setup Guide

AD FS 2.0 Step-by-Step Guide: Federation with Shibboleth 2 and the InCommon Federation

Computer Services Documentation

Agenda. How to configure

IBM Tivoli Federated Identity Manager V6.2.2 Implementation. Version: Demo. Page <<1/10>>

Evaluation of different Open Source Identity management Systems

Single Sign-On Implementation Guide

Fairsail. Implementer. Single Sign-On with Fairsail and Microsoft Active Directory Federation Services 2.0. Version 1.92 FS-SSO-XXX-IG R001.

OpenSSO: Simplify Your Single-Sign-On Needs. Sang Shin Java Technology Architect Sun Microsystems, inc. javapassion.com

OIOSAML 2.0 Toolkits Test results May 2009

SSL VPN Server Guide. Access Manager 3.2 SP2. June 2013

Novell Access Manager

Moodle and Office 365 Step-by-Step Guide: Federation using Active Directory Federation Services

Using SAML for Single Sign-On in the SOA Software Platform

Configuring. Moodle. Chapter 82

Single Sign-on (SSO) technologies for the Domino Web Server

Tenrox. Single Sign-On (SSO) Setup Guide. January, Tenrox. All rights reserved.

Get Success in Passing Your Certification Exam at first attempt!

SAP NetWeaver Single Sign-On. Product Management SAP NetWeaver Identity Management & Security June 2011

Federated Identity: Leveraging Shibboleth to Access On and Off Campus Resources

CA SiteMinder Secure Proxy Server

Web Applications Access Control Single Sign On

Secure the Web: OpenSSO

Crawl Proxy Installation and Configuration Guide

Securing Web Services With SAML

WebNow Single Sign-On Solutions

Configuring EPM System for SAML2-based Federation Services SSO

INUVIKA OPEN VIRTUAL DESKTOP ENTERPRISE

Configuring ADFS 3.0 to Communicate with WhosOnLocation SAML

Computer Systems Security 2013/2014. Single Sign-On. Bruno Maia Pedro Borges

IUCLID 5 Guidance and Support

Configuration Guide BES12. Version 12.3

Configuration Guide BES12. Version 12.2

SSL VPN Server Guide Access Manager 3.1 SP5 January 2013

IAM, Enterprise Directories and Shibboleth (oh my!)

USING FEDERATED AUTHENTICATION WITH M-FILES

Introducing Shibboleth

About Me. Software Architect with ShapeBlue Specialise in. 3 rd party integrations and features in CloudStack

Using Shibboleth for Single Sign- On

Symplified I: Windows User Identity. Matthew McNew and Lex Hubbard

Single Sign-on. Overview. Using SSO with the Cisco WebEx and Cisco WebEx Meeting. Overview, page 1

DEPLOYMENT GUIDE. SAML 2.0 Single Sign-on (SSO) Deployment Guide with Ping Identity

2 Downloading Access Manager 3.1 SP4 IR1

Authentication and access control in Sympa mailing list server

Configuration Guide BES12. Version 12.1

SAML 2.0 SSO Deployment with Okta

Interwise Connect. Working with Reverse Proxy Version 7.x

Improving Security and Productivity through Federation and Single Sign-on

From centralized to single sign on

WWPass External Authentication Solution for IBM Security Access Manager 8.0

Dell One Identity Cloud Access Manager How to Develop OpenID Connect Apps

Cloud Single Sign-On and On-Premise Identity Federation with SAP NetWeaver Cloud White Paper

Federations 101. An Introduction to Federated Identity Management. Peter Gietz, Martin Haase

Federal Identity, Credential, and Access Management Security Assertion Markup Language (SAML) 2.0 Web Browser Single Sign-on (SSO) Profile

Shibboleth Configuration from 100,000 Feet, in 15 Minutes or Less! Steve Thorpe Systems Programmer / Analyst MCNC

Copyright 2014 Jaspersoft Corporation. All rights reserved. Printed in the U.S.A. Jaspersoft, the Jaspersoft

SAML-Based SSO Solution

PingFederate. IWA Integration Kit. User Guide. Version 3.0

Kantara egov and SAML2int comparison

The increasing popularity of mobile devices is rapidly changing how and where we

Shibboleth N-Tier Support. Chad La Joie

SharePoint 2013 Logical Architecture

Shibboleth Authentication. Information Systems & Computing Identity and Access Management May 23, 2014

Authentication and access control in Sympa mailing list software

Transcription:

Shibboleth 2: A Guide for Deployers Scott Cantor cantor.2@osu.edu Internet2 / The Ohio State University

Outline Introduction to Shibboleth and Related Topics Software Architecture Deploying an Identity Provider Service Providers Futures 2

What is Shibboleth? Began life as an experimental project in standardsbased inter-organizational access control, primarily in the library access management space. Stable, second-generation SSO platform for web applications: Open Source (Apache-licensed) Standards-Based (de jure, not de facto) Multi-Protocol (SAML 2, SAML 1, WS-Federation RP) Federated (Multi-Domain) Attribute-Based, Privacy-Enabling 3

What is SAML? Security Assertion Markup Language Application of XML for the exchange and use of security-related information OASIS standard since 2003 (Final?) 2.0 revision approved in 2005, integrating capabilities from several federation efforts and profiles, including Shibboleth Widely adopted commercially (now including Microsoft), less so non-commercially due to XMLitis 4

SAML 2.0 Structure 5

Why Federations? "Noun" usage somewhat unique to higher education (Lack of) "Vision" of companies behind standard was to enable point to point exchanges, an "identity VPN" Shibboleth project goal was to scale to hundreds of organizations, potentially thousands of services Federations evolved out of a need for policy and technology to support NxN "mesh" of SAML-enabled peers The "I" in the SAML equivalent of a PKI 6

Federations Can range from the very simple to the very complex (can you guess which ones do better?) Commonly organized around geo-political boundaries Policy: Membership obligations Legal agreements to enforce obligations Identity management obligations Technology: Technical standards and attribute definitions Enumerating participants and facilitating reliable operations Brokering trust in the keys used at runtime for authentication and encryption 7

Metadata XML document format defined in SAML Used by Shibboleth software to: identify the systems allowed to request or provide authentication identify capabilities and endpoints to allow successful interoperation across multiple protocols identify public keys belonging to particular trusted systems Basis of virtually all runtime software behavior Metadata often signed by federation keys that act as trust roots much like CAs were intended to 8

Other Terms Identity Provider the login service Single Sign-On Service place you're sent to login by SP Attribute Service SOAP endpoint for attribute queries Service Provider the application end Assertion Consumer Service place for response to SP entityid unique identifiers for IdPs and SPs discovery figuring out which IdP to use 9

Basic Example Identity Provider SSOS Service Provider ACS (3) (4) (5) (6) (1) (2) 1. HTTP Request to SP 2. <samlp:authnrequest> encoded in URL Redirect 3. <samlp:authnrequest> passed to SSO Service via HTTP GET 4. <samlp:response> in HTML FORM (action=post) containing <saml:assertion> 5. HTTP POST to Assertion Consumer Service 6. HTTP Response

Complications Discovery is assumed / out of scope, but some possible mechanisms are defined Example assumes Redirect/POST bindings, others exist and can be mixed/matched, smaller implementations unlikely to support them all Encryption of assertion and inclusion of attributes can be adjusted in combination to achieve desired flow/compatibility/security Metadata exchange usually assumed to be out of band, though not required to be 11

Why Shibboleth? Federated access to external/outsourced services Single infrastructure for a larger range of needs Identity alone is insufficient, and LDAP requires additional effort in some cases Application portability Commercial interoperability Deployable for large-scale federated use 12

Why Not Shibboleth? IdP isn't self-contained or plug and play Java skills not necessarily common SP is NOT designed for developers, but for administrators with necessary rights SP will NOT provide an application API; if that's your perspective on SSO, it's not a good fit Configuration and operation is heavily XML-based 13

Commercial Alternatives Shibboleth End to end, like the Internet's supposed to be Metadata-driven, focused on scaling of basic trusted exchanges Integration with infrastructure Loose coupling between identities and your application's use of them Commercial Gatewayed, like the Internet actually is GUI-driven, focused on explicit "deep" relationships Sell you their infrastructure Tightly controlled account linking behavior 14

Federating Opportunities Outsourced services Financial Aid / Scholarship information Travel Reservations Discounted Purchasing Government Agencies (NIH, NSF) Grids Collaboration platforms itunesu Library resource access 15

FAQs Which version should I start with? Always use the latest version available Does the new version interoperate with older versions? Completely, dating back to 1.3 Do I have to use SSL? Only if you care about security How do I get started? If you're playing, there's www.testshib.org If you're serious, you need both an IdP and SP Does a test system need to be accessible, registered in DNS, etc? New defaults assume no back-channel between IdP and SP, so all contact is via your browser 16

Skill Sets Identity Provider Administration of web server / OS XML, XML, XML, and some XML Java web deployment Java development if customizing Basics of SSL / PKI concepts Integration skills for authentication and attribute backend(s) Service Provider Administration of web server, especially plugins/extensions XML, XML, and some XML Basics of SSL / PKI concepts Basics of web development environment (e.g. accessing headers, redirection) Understanding of session handling in a web environment Understanding of session handling in a web environment 17

Prerequisites Identity Provider Source(s) of authentication Source(s) of attributes Means of managing policies on attribute release Means of managing metadata for SPs Service Provider Supported web server with at least one hosted application Means of managing metadata for IdP(s) Strategy for IdP discovery At least one SP you control for testing 18

Resources http://shibboleth.internet2.edu/ http://shibboleth.internet2.edu/shib-which-version.html http://shibboleth.internet2.edu/downloads.html http://shibboleth.internet2.edu/lists.html https://spaces.internet2.edu/display/shib2/home http://www.incommonfederation.org/ http://net.educause.edu/campusarchitecturalmiddllewa replanning(camp)workshops/1607 19

Software Architecture

Identity Provider Written in Java, requires a container with Servlet 2.4 support Requires very non-buggy JAXP parser, often causes problems with commercial containers "Yet another multi-protocol software platform" Spring-based component framework and extension model Does NOT include database/directory or identity management tools Has no UI / direct user controls at the moment 21

Java Container Keys Certs Credential Resolver Profile Handler SOAP (8443) Meta data Metadata Provider Authentication Manager Filter Policy Trust Engine Attribute Resolver Login Handler Attribute Filter Browser Facing (443) JNDI/ LDAP JDBC RDBMS Kerberos Custom 22

Profile Handlers Implement protocols for SSO, attribute query, eventually logout, diagnostics, others SAML 2.0 Browser SSO Profile Attribute Query SAML 1.1 Shibboleth SSO Extension Attribute Query 23

Authentication Manager Incoming request determines selection of a LoginHandler Requested authentication class IsPassive ForceAuthn LoginHandler interacts with user to authenticate user PreviousSession handles SSO based on previous login UsernamePassword simple JAAS-backed option REMOTE_USER relies on container / web server 24

Attribute Resolver Directed dependency graph of plugins that performs like a virtual directory Data Connectors load attributes from data stores Attribute Definitions transform/combine/expose connector attributes for encoding into SAML Principal Connectors reverse map SAML subjects into local users (for queries) Connectors can failover for redundancy or consolidating distributed data stores 25

Attribute Filter Policy engine for rules governing which attributes are released to SPs Policies can apply based on a variety of criteria, and rules are run to permit or deny each attribute value Policies and rules for: Requesting SP Comparisons or regular expressions over values User identity Authentication method Other attribute values (e.g. FERPA release flags) 26

Service Provider Written in C++ for Apache, IIS, or Sun web servers Apache can front-end other web servers: Java containers, Zope, etc. "Yet another multi-protocol software platform" DLL-based component framework and extension model Does NOT include database/directory or identity management tools 27

Browser Facing (443) Keys Certs Meta data Service Handler IPC shibd Credential Resolver Metadata Provider Trust Engine Session Cache Attribute Extractor Attribute Resolver Attribute Filter Request Filter Request Map Attribute Map Attribute Policy Web Server 28

General Design No formal API; logged-in-user information available through protected headers or env. variables Requires identity to be externalized from application Applications can interact with SP using declarative configuration or simple redirection protocols Module inside web server filters requests, applies policy, attaches data from active sessions Services requests to special URLs for processing SAML messages and performing functions on behalf of applications Heavy lifting and state management delegated to a separate process 29

Service Handlers Implement protocols for SSO, logout, diagnostics, others SAML 2.0 Browser SSO Profile Browser SLO Profile NameID Management Profile SAML 1.1 Browser SSO Profile WS-Federation Passive Requester Profile Metadata generation, status, and session dump 30

Sessions Sessions tracked by cookie specific to SP, used to recover user identity data and attach to requests, honor logout, enforce timeouts Applications use or ignore SP session as they choose, choices vary widely by scenario Storage plugins provided for in-memory, ODBC, and memcache 31

Attribute Handling Extensive plugin architecture for turning SAML assertion data into attributes for application to consume Environment or header names all configurable Data can be filtered analagously to IdP (controls "release" to applications) Additional attributes can be "resolved" via plugins that query SAML authorities or local sources 32

Deploying an Identity Provider

A Real-World Example Access to a federated wiki run by Internet2 Requires the edupersonprincipalname attribute to identify and auto-provision users Sets email address and a display name locally if available from IdP Demonstrate an example using LDAP as an authentication/attribute store Identify some deployment choices as we go along 34

Basic Steps Install / setup Java container and web server if necessary Tomcat or Apache + Tomcat Download and install IdP software Set entityid, publish IdP metadata, supply SP metadata Configure Authentication Configure Attribute Resolution Release attributes to SP 35

Container / JVM https://spaces.internet2.edu/display/shib2/idpapachetomcatprepare Endorse XML libraries in container Install JCE stub as JVM security extension Setup SSL connectors on 443/8443 Adjust JVM heap size Create context deployment fragment 36

Initial Installation Download and unzip UI customizations currently maintained in source tree, applied with reinstallation Run install.sh or install.bat script installation location (default highly advised) hostname password for keystore Sanity check, start Tomcat: https://hostname/idp/profile/status https://idp.example.org:8443/idp/profile/status 37

Add SP Metadata to IdP This particular SP hosts and self-signs its metadata, obtaining the key is "out of scope" Install a reference to its metadata, verified by the signing key Most SP-oriented maintenance performed with relying-party.xml Typically rely on the DefaultRelyingParty, but if you need specific rules for an SP, remember that nothing is inherited from the default element settings 38

Add SP Metadata to IdP <MetadataProvider id="urlmd" xsi:type="filebackedhttpmetadataprovider" xmlns="urn:mace:shibboleth:2.0:metadata" metadataurl="https://spaces.internet2.edu/shibboleth" backingfile="c:\opt\shibboleth-idp/metadata/spaces-metadata.xml"> <MetadataFilter xsi:type="chainingfilter"> <MetadataFilter xsi:type="requiredvaliduntil" maxvalidityinterval="0" /> <MetadataFilter xsi:type="signaturevalidation" trustengineref="spacesmetadatatrustengine" requiresignedmetadata="true" /> <MetadataFilter xsi:type="entityrolewhitelist"> <RetainedRole>samlmd:SPSSODescriptor</RetainedRole> </MetadataFilter> </MetadataFilter> </MetadataProvider> <security:trustengine id="spacesmetadatatrustengine" xsi:type="security:staticexplicitkeysignature"> <security:credential id="spacescredentials" xsi:type="security:x509filesystem"> <security:certificate> C:/opt/shibboleth-idp/credentials/spaces.crt </security:certificate> </security:credential> </security:trustengine> 39

Add IdP Metadata to SP Procedurally could be similar, with the IdP hosting a self-signed file with OOB key exchange With lack of connectivity to example machine, the file will be copied manually to the SP and referenced locally Copy /opt/shibboleth-idp/metadata/idpmetadata.xml to /etc/shibboleth on SP Add reference to shibboleth2.xml: <MetadataProvider type="xml" path="idp-example-metadata.xml"/> 40

Authentication Primary settings for authentication in handler.xml Default configuration is for authentication by container / web server, switch to UsernamePassword handler, which points to a JAAS configuration file <!-- Username/password login handler --> <LoginHandler xsi:type="usernamepassword" jaasconfigurationlocation="file://c:\opt\shibboleth-idp/conf/login.config"> <AuthenticationMethod> urn:oasis:names:tc:saml:2.0:ac:classes:passwordprotectedtransport </AuthenticationMethod> </LoginHandler> LoginHandler identifies the technical authentication methods supported by the handler Can be annotated as to whether they support advanced SAML features 41

JAAS Configuration For simple name/password handling, the included handler relies on JAAS Good composition options and flexibility of back-ends Atrociously bad error handling LDAP example already in place, just uncomment and adjust settings edu.vt.middleware.ldap.jaas.ldaploginmodule required host="idp.example.org" port="10389" base="ou=people,dc=example,dc=org" ssl="false" serviceuser="uid=admin,ou=system" servicecredential="secret" userfield="uid"; 42

Attribute Resolution eduperson / LDAP examples already in attributeresolver.xml Need at least one DataConnector to pull raw bits from directory or database Need AttributeDefinition per-attribute to expose outside of IdP Variety of plugins available for non-trivial transforms and scripting to generate attributes Each AttributeDefinition needs AttributeEncoder for each SAML version to generate wire format 43

LDAP Data Connector Uncomment and adjust Returns all attributes in entry by default Can build filter around variety of request data, including other internal attributes <!-- Example LDAP Connector --> <resolver:dataconnector id="myldap" xsi:type="ldapdirectory" xmlns="urn:mace:shibboleth:2.0:resolver:dc" ldapurl="ldap://idp.example.org:10389" basedn="ou=people,dc=example,dc=org" principal="uid=admin,ou=system" principalcredential="myservicepassword"> <FilterTemplate> <![CDATA[ (uid=$requestcontext.principalname) ]]> </FilterTemplate> </resolver:dataconnector> 44

edupersonprincipalname Can be computed by appending a "scope" to a directory attribute, using the "Scoped" plugin Here, pull directly from LDAP using the "Prescoped" plugin <resolver:attributedefinition id="edupersonprincipalname" xsi:type="prescoped" xmlns="urn:mace:shibboleth:2.0:resolver:ad" sourceattributeid="edupersonprincipalname"> <resolver:dependency ref="myldap" /> <resolver:attributeencoder xsi:type="saml1scopedstring" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:mace:dir:attribute-def:edupersonprincipalname"/> <resolver:attributeencoder xsi:type="saml2scopedstring" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" friendlyname="edupersonprincipalname" /> </resolver:attributedefinition> 45

mail Pulled directly from directory using "Simple" plugin <resolver:attributedefinition id="email" xsi:type="simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad" sourceattributeid="mail"> <resolver:dependency ref="myldap" /> <resolver:attributeencoder xsi:type="saml1string" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:mace:dir:attribute-def:mail" /> <resolver:attributeencoder xsi:type="saml2string" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:0.9.2342.19200300.100.1.3" friendlyname="mail" /> </resolver:attributedefinition> 46

displayname Computed within IdP from the givenname and sn directory attributes using the "Template" plugin <resolver:attributedefinition id="displayname" xsi:type="template" xmlns="urn:mace:shibboleth:2.0:resolver:ad"> <resolver:dependency ref="myldap" /> <resolver:attributeencoder xsi:type="saml1string" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:mace:dir:attribute-def:displayname" /> <resolver:attributeencoder xsi:type="saml2string" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:2.16.840.1.113730.3.1.241" friendlyname="displayname" /> <Template><![CDATA[${givenname} ${sn}]]></template> <SourceAttribute>givenname</SourceAttribute> <SourceAttribute>sn</SourceAttribute> </resolver:attributedefinition> 47

Release the Attributes Default is to release nothing, so a policy in attribute-filter.xml is added for the SP <AttributeFilterPolicy> <PolicyRequirementRule xsi:type="basic:attributerequesterstring" value="https://spaces.internet2.edu/shibboleth" /> <AttributeRule attributeid="edupersonprincipalname"> <PermitValueRule xsi:type="basic:any" /> </AttributeRule> <AttributeRule attributeid="mail"> <PermitValueRule xsi:type="basic:any" /> </AttributeRule> <AttributeRule attributeid="displayname"> <PermitValueRule xsi:type="basic:any" /> </AttributeRule> </AttributeFilterPolicy> 48

A Note About NameIDs Shibboleth favors using SAML Attributes in place of the SAML NameID construct that appears in the assertion subject Commercial interop often requires reconfiguration to allow use of a non-transient NameID format Configured and released exactly like Attributes; only difference is the type of AttributeEncoder used 49

Clustering DNS is not a redundancy tool IdP session management is private to IdP unless container-managed authentication is used Officially supports clustering using Terracotta, in use by several large deployers At least one example of JBoss Groups known Back-channels make sticky sessions an incomplete solution, though possibly usable in some contexts 50

Service Providers

Basic Setup Binary install, generates self-signed keypair In shibboleth2.xml: Set entityid Supply IdP metadata source(s) and enter an IdP's entityid in the default <SessionInitiator> Extract metadata from /Shibboleth.sso/Metadata to enroll in federation or supply to IdP Define protection rules for content

More Setup Customizing error templates: don't be that guy Discovery In principal, a per-sp exercise, but you might choose to run a shared DS on behalf of campus apps DS software available from Internet2 (Java) and SWITCH (PHP), or there's always the simple web page of links Customizing attribute handling Uncomment or create mapping definitions and choose header names via attribute-map.xml Map selected attributes into REMOTE_USER if needed 53

Session Strategies Simple/small apps protect entire scope of app with SP session consume REMOTE_USER and attributes on each request allows easy portability to any proper SSO design More complex scenarios usual stategy is to protect an "entry/setup" script with SP session to establish a typical application session can time-out SP session quickly to save resources, or preserve for logout handling requires application changes for logout to work 54

Supporting a Campus Documentation Site: Overview / FAQ Formal documentation on supported attributes Instructions and configuration files for campus and federated use Message to deployers: install software in the usual manner follow instructions, copying in campus-specific files send registration request, with certificate test SP, check logs 55

Registration Approaches Email or web submission, the latter allows authenticated submissions of certificates Typical information: Service name / description Contact information Technical/platform details Requested attributes Web hostname(s) Certificate Verifiable phone number Rigor of processes depend on institutional culture 56

External Services Existing federation SPs: Timeline likely driven by your ability to get approval to release attributes and ensure users are supported Technical effort / involvement often quite low For some services, might be literally the 5 minutes to add a filter policy A typical outsourced SP coming online: You won't be the bottleneck If it's not in the RFP/contract, chances are low Use of a federation strongly advisable 57

Metadata Management External use Federations rely on MAD if I ask for bilateral vetting, others can ask me for it Pay a relative pittance and you solve a bunch of ongoing management and security problems Internal use Maintaining IdP metadata for SPs easy, but if you're in a federation anyway, just point them there Maintaining SP metadata has a range of solutions from the very manual to the highly automated Tools for this not a current project focus 58

Help Desk Implications Most problems either with authentication or application after initial testing Rule of thumb: if you're stopped at the IdP, treat centrally, otherwise application owner should take responsibility Strongly advise against SPs, especially externals, delegating triage responsibility to IdPs Biggest problem by far is application developers and owners refusing to own their part 59

Common Errors Clock skew Client address mismatches between IdP/SP Looping and other errors when SSL not used could make this easier for people, somewhat stubborn about it Hostname issues causing failures at IdP IIS file permissions 60

Futures

Logout SP includes extensive support for SAML 2 logout features, but leaves UI to deployer IdP currently lacks logout support, likely to offer back-channel profile eventually Front-channel profile requires substantial UI/design study Note most SPs unlikely to support logout in the medium term Seems to be largely an intranet concern; consider the implications when logout is usually partial 62

SSO Delegation https://spaces.internet2.edu/display/shibuportal/home Similar to CAS proxying, but with additional requirements: privacy, federation, standards-based Starting point is to achieve SSO-level security via bearer tokens between sites, improve later Can be transparent to applications but not usable without explicit opt-in via SP configuration Policy controls at IdP likely to evolve 63

User Consent Typical use of Shibboleth relies on administrative control over attribute release Consequence? Useless for collaborative / one-off scenarios Solution? Default to user approval of attribute release: Hide non-privacy-sensitive "technical" attributes users can't understand anyway Disclose and require approval on initial access if "intelligible" attributes are being requested Whitelist contractual arrangements where consent is OOB Major issue: requires SPs to disclose attribute requirements and federations to track them 64