330 likes | 697 Views
Shibboleth Architecture and Requirements. Nate Klingenstein Internet2. http://shibboleth.internet2.edu/archive/architecture.ppt. Overview. Shibboleth as implemented Key concepts in the code Identity Provider (IDP) structure, components, and functionality
E N D
Shibboleth Architecture and Requirements Nate Klingenstein Internet2 http://shibboleth.internet2.edu/archive/architecture.ppt
Overview • Shibboleth as implemented • Key concepts in the code • Identity Provider (IDP) structure, components, and functionality • Service Provider (SP) structure, components, and functionality • Federation functionality • Deployment guidelines & resources 2
WAYF Service Provider Web Site Identity Provider 5 3 2 4 6 1 7 Credentials 8 ACS HS Handle User DB Handle Resource Resource Manager 9 Handle AA AR Attributes 10 Attributes © SWITCH The Architecture of Shibboleth 3
Shibboleth: The Project, the Architecture, and the Code • Project encompasses design, direction • Architecture describes what a Shibboleth implementation should do • Code is “An” implementation of the architecture • In the code, some logical architectural components combined; others don’t exist; some exist in strange form • RM functionality exists in several places 4
Shibboleth as Implemented by Internet2 • Java IdP, C++ SP for Apache and IIS, Java SP in development • Extremely flexible and modular • Built on included OpenSAML; supports SAML 1.0, 1.1, and will support 2.0 • Supports Browser/POST profile • Artifact will be supported in 1.3 • Other implementations exist 5
Key Concepts • SAML • Attributes in an Inter-Realm Context • ProviderID’s & Relying Parties • Attribute Release Policies (ARP’s) • Attribute Acceptance Policies (AAP’s) 6
SAML • Security Assertion Markup Language • Codified by OASIS’ SSTC with participation from MACE and other bodies • Defines XML schema for Authentication and Attribute Assertions and XML schema for Queries and Responses • Defines bindings to protocols for transport • v2.0 expands to include concepts from Liberty Alliance 7
Attributes in an Inter-Realm Context • Provided by IdP, validated and evaluated by SP • Converted to SAML form for transport • Federations guide usage of common attributes and values, e.g. eduPerson, courseID • Others defined within bilateral relationships • Who can assert which attributes? • What level of assurance is there that this data is accurate? 8
LDAP to SAML as performed by AA LDAP: objectclass: eduPerson dn: uid=magneto, ou=people, dc=supervillain, dc=edu eduPersonAffiliation: staff SAML: <Attribute xmlns:typens="urn:mace:shibboleth:1.0" AttributeName="urn:mace:dir:attribute-def:eduPersonScopedAffiliation" AttributeNamespace="urn:mace:shibboleth:1.0:attributeNamespace:uri"> <AttributeValue Scope=”supervillain.edu" xsi:type="typens:AttributeValueType"> staff </AttributeValue> </Attribute> 9
ProviderID’s and Relying Parties • ProviderID’s are the basic atoms of inter-realm policy and trust; the molecule is the enterprise • URI (urn:mace:inqueue:supervillain.edu, or https://shibboleth.supervillain.edu/ShibMain) • Each SP or IdP may support multiple providerId’s • Must be carefully defined; defines distributed use of enterprise Shibboleth infrastructure • Care must be taken when defining providerID’s for single or multiple federation use • A Relying Party is the other end in a transaction, and may represent an individual site or a collection of sites 10
Attribute Release Policies (ARP’s) • Policies at the IdP governing the release of attributes to various SP providerID’s • ARP’s limit attributes released to a relying party on a per-site or per-user basis matched against a providerID • Can match individual targets, groups of targets, or regular expressions; supports both positive and negative attribute rules 11
ARP Example <Rule> <Target> <AnyTarget/> </Target> <Attribute name=“urn:mace:dir:attribute-def:eduPersonScopedAffiliation”> <AnyValue release=“permit”/> </Attribute> </Rule> 12
Attribute Acceptance Policies (AAP’s) • AAP’s filter received attributes before they are used by applications or as part of access control decisions • Also enforces privacy by limiting information available to agents using the SHAR to make requests • Partial answer to who can assert which attributes • Collectively define the set of attributes available to the resource manager to make access decisions require eduPersonScopedAffiliation staff@supervillain.edu 13
Garbage Collection • AA converts attributes for inter-realm use filtered by ARP’s chosen by the relying party’s providerID • SAML transports attributes; processed by AAP’s • Together, help define total set of information in a Shibboleth transaction 14
Simplified Identity Service Provider Architecture WAYF Shibboleth IdP Authentication Service Target HS AA Attribute Store (LDAP) Identity Management / Provisioning 15
Simplified Identity Provider Architecture Apache WebISO Tomcat Shibboleth HS Connectors Target Shibboleth AA ARP’s Attribute Store 16
HS Mechanics & Interfaces • The HS generates handles and authentication assertions per relying party • Any authentication method that can protect a webapp works; must populate REMOTE_USER with principal • Outside of Shibboleth’s concern • Required part of the surrounding infrastructure • Shibboleth as SSO? Would still require login piece 17
AA Mechanics & Interfaces • Attributes can be sourced through LDAP directories, MySQL databases, or any other source with a JDBC connector • Custom attribute classes may be written in Java to generate attributes or interface with complex systems • Frequently deployed on a separate port or server; distinct service from the HS, responds directly to AR requests • All attributes filtered by ARP’s before released 18
Required Campus Middleware Infrastructure • Person management -- identity & login • Attributes, attributes, attributes • Shibboleth isn’t very valuable without the right information to transport about the right principals • Level of Assurance begins at home • Your assertions are only as good as your I&A and mechanics • This really starts to matter in inter-realm scenarios • Firewall configuration may be necessary 19
System Requirements • Tested with Tomcat • Apache 1.3 or 2.0 with SSL Support • Java JDK v1.4 • mod_jk2 • Server loads not severe; signing by far the heaviest operation 20
Apache mod_shib mod_ssl OpenSSL Simplified (Apache-based) Service Provider Architecture AR WAYF Origin MySQL Session DB 21
Service Provider Request Mapping Architecture Web Server Webapps, pages, files, etc. AAP’s and access decisions Lazy Session Initiation ProviderID Bob pID Scott Attribute Release, Policy Atom App Alpha App Beta App Theta Sessions, Most Settings URL 1 URL 2 URL 3 URL 4 Externally Visible Resources Resource Requests 22
Applications, ProviderID’s, and Webapps • Decouples internal applications from externally visible services • Access controls can be defined at many granularities • Rules must be simple right now • More complicated rules engines (XACML, SPOCP, complex XML booleans) under consideration/development • Much of this should be hidden from users 23
Lazy Sessions • Allows an application to call for Shibboleth when needed without requiring Shibboleth for all access • Construct a special URL • Handle generation & attribute transport occur as usual 24
Attribute Consumption and Use • Exported via HTTP header variables • Other information about the Shibboleth transaction available in header values • Simple RM functionality included for Apache; using .htaccess, <Location> blocks, etc., require attribute values. Limited policy expression. 25
System Requirements • Built successfully on OS X 10.3, Solaris 2.8+, Debian, RedHat 7.2, 7.3, 9, Fedora, Enterprise, Windows NT/2000/XP/2003 • Binaries available for Windows; RPM’s available for RedHat • Apache 1.3 or 2.0 with SSL Support, or IIS 4.0+ • OpenSSL • Many prerequisite packages must be built 26
Logging & Auditing • All transactions can be logged; flat-file logging and log4j/log4cpp both supported • Multiple logging levels • The user’s privacy is preserved; so is their identity • Federation may help define practices: some information storage requirements for SP’s may require co-operation from IdP’s. • Decision logic may be hidden at either the IdP or SP by constructive use of attributes 27
Federations in Practice • May provide a WAYF Service • Defines attribute & trust rules • May issue certificates to participants • Distributes 3 metadata files: • ca-bundle.crt • sites.xml • trust.xml 28
WAYF Service Provider Web Site Identity Provider 5 3 2 4 6 1 7 Credentials 8 ACS HS Handle User DB Handle Resource Resource Manager 9 Handle AA AR Attributes 10 Attributes © SWITCH The Code of Shibboleth 29
Current Development • Shibboleth 1.2.1 released on Tuesday • Shibboleth 1.3 early 2005 • Reduces reliance on mod_ssl • e-Auth, compliance • WS-Fed compliance in 1.3.x • Shibboleth 2.0, using SAML 2.0, represents greatly enhanced functionality; work begins after 1.3 is released • Shibboleth project will be segmented and expanded • Extended beyond the web; some flows may not use HS 30
Deployment Guidelines • Extensive Apache/IIS Experience • Supports redundant production configurations • Dedicated servers likely not necessary • Surrounding infrastructure must be developed • Primary authentication & WebSSO • Attribute sources • Enable webapps • Good security practices • Shibboleth expertise can be developed while in InQueue 31
Deployment Resources • http://shibboleth.internet2.edu • http://inqueue.internet2.edu • Origin: • http://shibboleth.internet2.edu/guides/deploy-guide-origin-1.2.1.html • http://shibboleth.internet2.edu/guides/identity-provider-checklist.html • Target: • http://shibboleth.internet2.edu/guides/deploy-guide-target-1.2.1.html • shibboleth-users@internet2.edu 32