UC IDM Provisioning Middleware: Technical Design Guide UC IDM User Provisioning Middleware Technical Design Guide Working Draft 07, August 1, 2011 Document identifier: draft-ucitag-idmprovisioning-design-guide-07 Location: TBD Technical Committee: UC IT Architecture Group UCTrust Work Group Editors: Albert Wu ([email protected]), University of California Los Angeles Contributors: Arlene Allen, University of California Santa Cruz Dede Bruno, University of California, Office of the President Dedra Chamberlin, University of California, Berkeley Jeff McCullough, University of California Berkeley Anthony Merriweather, University of California Los Angeles Benn Oshrin, University of California Berkeley Lucas Rockwell, University of California San Francisco Dattathreya Sharma, University of California Los Angeles David Walker, University of California, Davis Mukesh Yadav, University of California San Francisco Tom Zeller, University of Memphis Abstract This document provides a non-normative technical design overview and implementation guideline for the UC Identity Management User Provisioning Middleware. Document1 1 UC IDM Provisioning Middleware: Technical Design Guide Status of This Document This is a draft document. Its content will change before completion, Please submit comments to Albert Wu ([email protected]). Document1 2 UC IDM Provisioning Middleware: Technical Design Guide Table of Contents 1 INTRODUCTION ................................................................................................................................ 5 1.1 BACKGROUND ..................................................................................................................................... 5 1.2 ASSUMPTIONS AND RECOMMENDATIONS ............................................................................................... 5 1.2.1 Leverage the UCTrust Framework ........................................................................................... 5 1.2.2 Implementer Responsibilities .................................................................................................. 6 1.2.3 Implementation Timing ............................................................................................................ 6 1.2.4 Campus and Application Agnostic Design .............................................................................. 6 1.3 DEPENDENT (OUT OF SCOPE) COMPONENTS .......................................................................................... 6 1.3.1 Identity Provider........................................................................................................................ 7 1.3.2 Identity Registry ........................................................................................................................ 7 1.3.3 Service Provider ........................................................................................................................ 7 1.3.4 Target Resource (or Application) ............................................................................................. 7 1.4 OUTLINE ............................................................................................................................................. 7 2 UC IDM USER PROVISIONING MIDDLEWARE COMPONENTS .......................................................... 8 2.1 IDENTITY PROVIDER PROVISIONING AGENT ............................................................................................. 8 2.1.1 Change Notify Issuer ................................................................................................................ 9 2.1.2 Identity Registry Adapter....................................................................................................... 10 2.1.3 Attribute Authority ................................................................................................................. 10 2.1.4 Service Provider Registration Service .................................................................................. 10 2.1.5 Change Data Cache .............................................................................................................. 10 2.1.6 IdPPA Administration Service ............................................................................................... 10 2.2 SERVICE PROVIDER PROVISIONING AGENT .......................................................................................... 11 2.2.1 Change Notify Receiver ......................................................................................................... 11 2.2.2 Target Resource Adapter ...................................................................................................... 12 2.2.3 Attribute Requester ............................................................................................................... 12 2.2.4 IdPPA Registration Service ................................................................................................... 12 2.2.5 SPPA Administration Service ................................................................................................ 12 2.2.6 Change Data Cache .............................................................................................................. 12 3 COMPONENT INTERACTIONS ........................................................................................................ 13 3.1 OPERATING THE MIDDLEWARE IN A FEDERATED ENVIRONMENT ............................................................. 13 3.2 IDP PROVISIONING AGENT TO IDENTITY PROVIDER INTERACTION ............................................................ 14 3.3 SP PROVISIONING AGENT TO TARGET RESOURCE INTERACTION ............................................................. 15 3.3.1 LDAP TRA ............................................................................................................................... 15 3.3.2 CSV File TRA........................................................................................................................... 15 3.4 IDP PROVISIONING AGENT TO SP PROVISIONING AGENT INTERACTION ................................................... 16 3.4.1 Snapshot Update ................................................................................................................... 16 3.4.2 Subscription Update .............................................................................................................. 17 3.4.3 Batched Change Update ....................................................................................................... 18 4 IMPLEMENTATION GUIDELINE ...................................................................................................... 20 4.1 IMPLEMENTATION RESPONSIBILITIES .................................................................................................. 20 4.1.1 UCTrust’s Responsibility ....................................................................................................... 20 Document1 3 UC IDM Provisioning Middleware: Technical Design Guide 4.1.2 The UC IDM User Provisioning Team’s Responsibility ........................................................ 20 4.1.3 The Identity Provider Team’s Responsibility ........................................................................ 21 4.1.4 The Service Provider Team’s Responsibility ........................................................................ 21 4.2 IMPLEMENTATION TECHNOLOGY ......................................................................................................... 22 4.2.1 The UC IDM User Provisioning Middleware Should Be Implemented in Java. .................. 22 4.2.2 Data within and exchanged with the UC IDM User Provisioning Middleware must meet specific authentication, authorization, and encryption requirements. .......................................... 22 4.3 IDENTITY PROVIDER PROVISIONING AGENT .......................................................................................... 23 4.3.1 Design Directives ................................................................................................................... 23 4.3.2 Target Resource Adapter Implementation .......................................................................... 24 4.3.3 Interacting with the SP Provisioning Agent .......................................................................... 25 4.4 SERVICE PROVIDER PROVISIONING AGENT .......................................................................................... 25 4.4.1 Design Directives ................................................................................................................... 25 4.4.2 Interacting with the Target Resource................................................................................... 26 4.4.3 Interacting with the IDP Provisioning Agent ........................................................................ 27 5 REFERENCES ................................................................................................................................ 28 6 DOCUMENT HISTORY .................................................................................................................... 29 Document1 4 UC IDM Provisioning Middleware: Technical Design Guide 1 Introduction This document describes the conceptual design of an UCTrust-based middleware infrastructure that enables on-demand user provisioning among the University of California’s inter-campus applications This infrastructure represents an extension to the existing Shibboleth-based UCTrust infrastructure. It complements Shibboleth’s front-channel, synchronous user data provisioning capabilities with a backchannel, asynchronous and/or batch user data change notification and replication mechanism. For the purposes of this document, user provisioning is defined as the processes, both human and automated, that authorize (and de-authorize) people to use application systems, when those processes occur at times other than the start of an online session. This is distinguished from application systems that use a "pure" single sign-on infrastructure (e.g., Shibboleth), authorizing anyone with a defined set of attributes that are provided at the start of a session. The infrastructure described in this document supports the delivery of identity information from campus Identity and Access Management (IAM) systems to application systems. It does not account for the entire set of provisioning processes. A note to implementers: this document is not meant to be a detailed, normative specification document. It is important that the implementation team of this project work closely with UC Trust members and UC IT Architecture Group to clarify detailed implementation requirements and specifications throughout the project. 1.1 Background The UC IDM User Provisioning Middleware is built upon the following standards: SAML V2.0 [SAML2Core] SAML V2.0 Change Notify Protocol V1.0 [SSTC-SAML2-Notify-Protocol-V1.0] 1.2 Assumptions and Recommendations 1.2.1 Leverage the UCTrust Framework The middleware described in this document leverages existing UCTrust agreements, policies, processes, and technology. The document assumes the reader has detailed understanding of UCTrust technologies, policies, and operating principles. Where possible, the implementer of this infrastructure should leverage existing UCTrust agreements, policies, processes, and technology. This design assumes that the offices currently operating each UC campus’s identity management implementation implement the Identity Provider Provisioning Service components. Furthermore, it assumes that the same offices also operate the campus’ Shibboleth Identity Provider. This framework provides a common mechanism for application systems to obtain identity information from each campus’ identity management system. Merging the results from multiple campuses, however, is left to the application. Document1 5 UC IDM Provisioning Middleware: Technical Design Guide 1.2.2 Implementer Responsibilities This document is a conceptual design guide. It’s written to frame the middleware infrastructure’s key design scope and direction. Throughout this document, it specifies technologies to be used in the middleware’s design. These specifications are made to ensure that the eventual product leverages the work already done in the UCTrust framework. However, this document is by no means a comprehensive and normative design specification. The implementation team must still engage all relevant stakeholders (UCTrust, UC IT Architecture Group, UC IT Leadership Council, key Service Providers) to iteratively determine detailed implementation level architecture and software/hardware selection. This document’s authors recommend that the implementation team include at least one fulltime technical architect with detailed understanding of US higher education identity management issues to ensure successful implementation. 1.2.3 Implementation Timing Deploying identity provisioning middleware, or middleware in general, across UC requires time and timing. Middleware, by definition, has no value on its own unless it facilitates interactions between other components of an IT infrastructure. Without a compelling adoption use case (i.e., “the killer app”), deploying middleware is difficult at best. As of July 2011, UC is on the verge of adopting a new UC-wide HR/PPS system. All UC identity providers will need to integrate with the new HR/PPS system; the HR/PPS project presents a compelling provisioning middleware adoption use case. We recommend that the Provisioning Middleware implementers adopt HR/PPS as its primary integration use case. We also recommend UC campuses pool together resources allocated to perform HR/PPS to IDM integration to develop and deploy this Provisioning Middleware. 1.2.4 Campus and Application Agnostic Design Although the Provisioning Middleware will initially integrate only with a small number of applications, it is critical that the Provisioning Middleware is standards-based and application-agnostic. To provide longterm value, this provisioning middleware must easily integrate with a wide variety of current and future target applications without requiring significant modifications or extensions. 1.3 Dependent (Out of Scope) Components The UC IDM Provisioning Middleware is one piece in a broader UC federated identity management framework. To help clarify design, section 1.3 describes key identity management components the Provisioning Middleware interacts with. These components are not within the implementation scope of the Provisioning Middleware. In addition, the SAML2 Glossary defines additional identity management related terms used throughout this document. [SAML2Gloss] Document1 6 UC IDM Provisioning Middleware: Technical Design Guide 1.3.1 Identity Provider An Identity Provider creates, maintains, and manages identity information for principals and provides principal authentication to service providers within a federation. Within this document, an Identity Provider (IdP) refers to the entire set of technical mechanisms an organization operates to manage identity information and to perform principal authentication. This includes, but is not limited to, the organization’s Shibboleth Identity Provider. 1.3.2 Identity Registry An Identity Registry stores identity information within an IdP. It is typically the organization’s enterprise directory. Although the Identity Registry may also describe any number of programmatic interfaces an external entity uses to manipulate identity information. 1.3.3 Service Provider A Service Provider provides services to principals or other system entities. In this document, a Service Provider (SP) describes the Target Resource providing the service as well as the Shibboleth Service Provider components the Target Resource relies on to perform federated single sign-on. 1.3.4 Target Resource (or Application) A Target Resource is the application providing services to principals within the federation. A Target Resource is likely a federated web application. 1.4 Outline Section 2 of this document describes the components comprising the UC IDM User Provisioning Middleware. Section 3 introduces the message flows between components of the User Provisioning Middleware. Section 4 provides key implementation guidance to the technical implementation team tasked to develop the UC IDM Provisioning Middleware. Document1 7 UC IDM Provisioning Middleware: Technical Design Guide 2 UC IDM User Provisioning Middleware Components A conforming UC IDM Provisioning Middleware implementation includes at least one Identity Provider Provisioning Agent and one Service Provider Provisioning Agent. These components interact with existing identity management components to replicate changes to a subject’s identity information. SAML Change SAMLEvents Change Notify Events Identity Registry Identity Provider Identity Provider Provisioning Agent SAML Attribute Query SAML Attribue Assertion Service Provider Provisioning Agent Target Resource Service Provider Figure 1: IDM Provisioning Middleware Components 2.1 Identity Provider Provisioning Agent An Identity Provider Provisioning Agent (IdPPA) captures identity subject change events, notifies the service provider of change events, and responds to queries to retrieve identity subject data updates. The IdPPA consists of a collection of interrelated runtime modules, each responsible for specific tasks. These modules may be implemented as a single executable. However, they are more likely to be implemented as several loosely coupled runtime modules. Figure 2 illustrates the components within the Identity Provider Provisioning Agent (IdPPA). These sub-components are discussed in the following sub-sections. Note: The interaction between an Identity Provider Agent and external components is described in Sections 3 and 4. Document1 8 UC IDM Provisioning Middleware: Technical Design Guide Identity Provider Provisioning Agent IdPPA Administration Service Attribute Authority Change Notify Issuer Change Data Cache Identity Registry Adapter Identity Registry SPPA Registration Service Attribute Filter Policy Shibboleth Metadata Shibboleth Identity Provider Figure 2: Identity Provider Provisioning Agent Components 2.1.1 Change Notify Issuer The Change Notify Issuer implements the SAML 2 Change Notify Protocol. It is the IdPPA’s data change detection and signaling mechanism. The Change Notify Issuer (CNI): Receives identity subject data changes from the Identity Registry through the Identity Registry Adapter; Manages pending change transactions for each registered SP Provisioning Agent; Writes the pending change transactions to the Change Data Cache; Composes and sends SAML Change Notify requests to registered SP Provisioning Agents at scheduled intervals; Process change notify responses from SP Provisioning Agents; The CNI is one of the IdPPA interfaces to the Service Provider Provisioning Agent. The CNI also exposes the standard change event signal interface an Identity Provider uses (via the Identity Registry Adapter) to signal change events occurring within the Identity Provider. Document1 9 UC IDM Provisioning Middleware: Technical Design Guide 2.1.2 Identity Registry Adapter The Identity Registry Adapter (IRA) is a connection and signal adapter between the CNI and the Identity Provider. The IRA provides the necessary data connection and conversion processing between IdPPA and the Identity Registry. Because each campus has a unique identity management infrastructure, the campuses will likely need to work with the Middleware implementation team to develop its own Identity Registry Adapter. The Identity Registry Adapter: Detects identity subject data change events in the Identity Provider; Sends relevant change events to the CNI; 2.1.3 Attribute Authority The Attribute Authority processes SAML attribute requests; that is, it issues SAML attribute assertions. The Attribute Authority (AA) authenticates and authorizes any requests it receives via the Service Provider Registration Service. The AA is one of the IdPPA interfaces to the Service Provider Provisioning Agent. The AA may retrieve attributes from either the Change Data Cache or directly from the Identity Provider. In implementation, the AA could be a minor variation of the Shibboleth Attribute Authority in order to maintain maximum compatibility and reuse between Shibboleth and the Provisioning Middleware. 2.1.4 Service Provider Registration Service The Service Provider Registration Service provides location discovery, authentication and authorization service to the CNA and the AA. The Service Provider Registration Service (SPRS): Accesses the Identity Provider’s Shibboleth metadata and attribute filter policy to determine SP access; Manages the Service Provider’s provisioning metadata; 2.1.5 Change Data Cache The Change Data Cache stores all queued identity subject change events. 2.1.6 IdPPA Administration Service The IdPPA Administration Service provides programmatic and end user facing interfaces to monitor, configure, and administer the IdPPA. The IdPPA Administration Service’s key responsibilities include: Change event monitoring; Relying Party registration and access management; System startup and runtime settings configuration; Change notification scheduling; Error and transaction log viewer; Identity Registry Adapter configuration; Document1 10 UC IDM Provisioning Middleware: Technical Design Guide 2.2 Service Provider Provisioning Agent A Service Provider Provisioning Agent listens for identity subject change notifications from registered IdPPA’s, queues the change events, queries the appropriate IdPPA to retrieve the identity subject data changes, and updates the Target Resource. Figure 3 illustrates the components within the Service Provider Provisioning Agent (SPPA). These components are discussed in the following sub-sections. Note: The interaction between a Service Provider Agent and external components is described in Sections 3 and 4. Service Provider Provisioning Agent SPPA Administration Service Attribute Requester Change Notify Receiver Change Data Cache IdPPA Registration Service Attribute Acceptance Policy Target Resource Adapter Shibboleth Metadata Target Resource (Application) Shibboleth Service Provider Figure 3: Service Provider Provisioning Agent Components 2.2.1 Change Notify Receiver The Change Notify Issuer implements the SAML 2 Change Notify Protocol. It is the SPPA’s data change receiving and response mechanism. The Change Notify Receiver (CNR): Listens for identity subject data changes from registered IdP Provisioning Agents; Acknowledge the receipt of identity subject change requests; Optionally queues the change request for batched processing; Signals the Attribute Requester to submit SAML attribute requests to update changed subject data; The CNR is one of the SPPA’s interfaces to the Identity Provider Provisioning Agent. Document1 11 UC IDM Provisioning Middleware: Technical Design Guide 2.2.2 Target Resource Adapter The Target Resource Adapter (TRA) connects to the Target Resource and pushes change data from SPPA to the Target Resource. The Target Resource Adapter pushes data stored in the Change Data Cache to the Target Resource at scheduled intervals. Because each Target Resource differs in its design and implementation, there will be multiple Target Resource Adapter implementations. The Provisioning Middleware implementation team should develop at least the two common TRA described in section 3.3. 2.2.3 Attribute Requester The Attribute Requester composes SAML attribute requests; that is, it issues SAML attribute requests. The Attribute Requester (AR) also processes the returning SAML attribute responses, queues the responses in the Change Data Cache, and schedules update to the Target Resource. The AR is one of the SPPA’s interfaces to the Identity Provider Provisioning Agent. 2.2.4 IdPPA Registration Service The IdPPA Registration Service provides location discovery, authentication and authorization service to the CNR and the AR. The IdPPA Registration Service: Accesses the Service Provider’s Shibboleth metadata to determine IdP endpoint configurations; Manages the IdP’s provisioning configurations in addition to it’s Shibboleth configuration; 2.2.5 SPPA Administration Service The SPPA Administration Service provides programmatic and end user facing interfaces to monitor, configure, and administer the SPPA. The SPPA Administration Service’s key responsibilities include: Change event monitoring; Identity Provider registration and access management; System startup and runtime settings configuration; Attribute update scheduling; Error and transaction log viewer; Target Resource Adapter configuration; 2.2.6 Change Data Cache The Change Data Cache stores all queued identity subject change events. Document1 12 UC IDM Provisioning Middleware: Technical Design Guide 3 Component Interactions 3.1 Operating the Middleware in a Federated Environment The UC IDM User Provisioning Middleware operates in a federated environment, that is, there are multiple IdPPA and SPPA in a mature runtime environment. The IdPPA must have be ability to register and communicate with multiple SPPA’s. Each SPPA must be able to register and communicate with multiple IdPPA’s. The IdPPA has the responsibility to track the SPPA it communicates with. The IdPPA manages each SPPA’s access to the individuals’ identity data within the IdPPA’s community. The SPPA has the responsibility to track each IdPPA it communicates with. It is also responsible for declaring to the IdPPA (via either registration metadata or runtime declaration) the mechanism it wishes to use to receive data. The SPPA also has the responsibility to merge the records it receives from multiple IdPPA's. In most cases, this “merging” is simple concatenation, but it may require algorithmic matching, when it is necessary to detect the same person being asserted by multiple IdPPA's. Federation Metadata Campus IdP Campus IdP Campus IdP IRA IRA IRA SPPA TRA Campus SP SPPA TRA Campus SP SPPA TRA External SP SPPA TRA External SP IdPPA IdPPA IdPPA ● ● Federation responsibility Campus responsibility, to federation specs SAML V2.0 SAML V2.0 Change Notify Protocol V1.0 LDAP File ● Others in future ● ● Campus responsibility Third-party responsibility Figure 4: Provisioning Middleware in a Federated Environment Document1 13 UC IDM Provisioning Middleware: Technical Design Guide 3.2 IdP Provisioning Agent to Identity Provider Interaction The interaction between the IdPPA and the (external) Identity Provider is modeled after the SAML Change Notify Protocol but does not actually require implementation of that protocol in the Identity Provider. This interaction is implemented in the Identity Registry Adapter. The Identity Provider operator must provide an implementation of the Identity Registry Adaptor. It should implement the following Java interfaces: // The unique identifier for individuals in the IdMS Interface SubjectID { }; Interface IdentityRegistryAdapter { // Return all attributes for the individual identified by id. // SAMLObject is provided by the Shibboleth project’s OpenSAML // distribution. public SAMLObject getAttributes (SubjectID id); }; In addition, the Identity Registry Adapter listens for changes within the Identity Provider. When relevant identity data change occurs, it invokes the following CNI interface method to let CNI know to retrieve the updated subject data via the IRA // Tell the IdPPA’s Change Notify Issuer that the user identified by id has been updated. public void IdPPACNI.signalUpdate (SubjectID id) { }; The following diagram illustrates this interaction. Document1 14 UC IDM Provisioning Middleware: Technical Design Guide Identity Provider Identity Registry User information Updated IdP Provisioning Agent Identity Registry Adapter Change Notify Issuer Listening for data change... 1. IdPPACNI.signalUpdate() 2. IdentityRegistryAdapter.getAttributes () 3. return SAMLObject Figure 5: Interaction between IDP and IdPPA Note that there may be a time delay between the IdPPA calls signalUpdate() and when the SPPA calls IdPConnector.getAttributes(). The amount of time is determined by the configuration of the SPPA and the access method being employed between the SPPA and the IdPPA. 3.3 SP Provisioning Agent to Target Resource Interaction The interaction between a Target Resource and the RP Provisioning Agent depends on the specific Target Resource Adapter (TRA) selected for the Target Resource. 3.3.1 LDAP TRA Interaction with the LDAP TRA is specified by version 3 of the LDAP protocol [LDAPv3]. Only read access is supported. 3.3.2 CSV File TRA The CSV File TRA is configured with the location of the CSV file and the frequency with which the file is written to that location. Target Resources read the file from that location whenever they require an update to their user information. Document1 15 UC IDM Provisioning Middleware: Technical Design Guide 3.4 IdP Provisioning Agent to SP Provisioning Agent Interaction The IdP Provisioning Agent and SP Provisioning Agent communicate with each other via the SAML V2.0 Change Notify Protocol V1.0 [SSTC-SAML2-Notify-Protocol-V1.0] to support three access methods: Snapshot, Subscription, and Batched Change The following sections describe each of these methods. 3.4.1 Snapshot Update The Snapshot update mechanism is intended to address the following three use cases: initial retrieval of user information when the SP is first put into service, recovery from lost transactions or other failures of the Subscription and Change Log update mechanisms, and on-going update of the SP’s user information when the need for currency in that information is low, compared to the cost of implementing either the Subscription or Change Log update mechanisms. In the Snapshot update mechanism, the SP initiates all transfers of user information via the Service Provider Provisioning Agent. The SP, therefore, drives the scheduling. However, the Identity Providers and the federation may establish service level descriptions that limit when and how often Snapshot updates can be initiated in order to avoid overloading the Identity Providers’ ability to transmit data. Document1 16 UC IDM Provisioning Middleware: Technical Design Guide IdP Provisioning Agent Change Notify Issuer SP Provisioning Agent Attribute Authority Change Notify Receiver Attribute Requester 1. Snapshot event triggered; 2. request snapshot dataset 3. return snapshot dataset Figure 6: Snapshot Update Sequence 3.4.2 Subscription Update The Subscription update mechanism is the preferred method for an SP to keep its user information current, when the need for currency is not low, compared to the cost of maintaining high availability of the SPPA (to receive the updates). In the Subscription update mechanism, the SP initially uses the Snapshot method to initialize its user information. The SP then uses the Subscription mechanism to receive updates that occur after the Snapshot; the timing of those updates is driven by IdP events that affect user information that may be needed by the SP. It is worth noting that not all updates will be of interest to the SP. It is the SP’s responsibility to apply updates according to its requirements. The federation and the IdPs will establish service level statements concerning any delays that may exists between the IdP events affecting user information and when the Change Notify Issuer signals the Change Notify Receiver. In the event of lost transactions or other failures of the Subscription mechanism, the SP will use the Snapshot method to re-synchronize its data and then restart the Subscription mechanism. Document1 17 UC IDM Provisioning Middleware: Technical Design Guide IdP Provisioning Agent Change Notify Issuer SP Provisioning Agent Attribute Authority Change Notify Receiver Attribute Requester 1. Change Event Triggered; 2. <ChangeNotifyRequest>... 3. CNR determines response; 4. <ChangeNotifyResponse>... 5. signals change 6. SAML attribute assertion request 7. SAML attribute assertion response Figure 7: Subscription Update Sequence 3.4.3 Batched Change Update The Batched Change (Change Log) update mechanism is the preferred method for an SP to keep its user information current, when the need for currency is not low, compared to the cost of maintaining high availability of the SPPA (to receive the updates), but there are operational or technical reasons why updates to the SP’s copy of the user information should be applied in batches according to an SP-driven schedule. In the Batched Change update mechanism, the SP initially uses the Snapshot method to initialize its user information. The SP then uses the Batched Change mechanism to receive updates that occur after the Snapshot. The timing of those updates is driven by the SP. Note: Not all updates will be of interest to the SP; it is the SP’s responsibility to apply updates according to its requirements. The federation and the IdPs will establish service level statements concerning any delays that may exists between the IdP events affecting user information and when the Change Notify Issuer signals the Change Notify Receiver. In the event of lost transactions or other failures of the Batched Change mechanism, the SP will use the Snapshot method to re-synchronize its data and then restart the Batched Change mechanism. Document1 18 UC IDM Provisioning Middleware: Technical Design Guide IdP Provisioning Agent Change Notify Issuer SP Provisioning Agent Attribute Authority Change Notify Receiver Attribute Requester 1. Change Event Triggered; 2. <ChangeNotifyRequest>... 3. add to queue; 4. <ChangeNotifyResponse>... 5. ---- time passes ---- 6. batched SAML attribute assertion request 7. SAML attribute assertion response Figure 8: Batched Change (Change Log) Update Sequence Document1 19 UC IDM Provisioning Middleware: Technical Design Guide 4 Implementation Guideline This section contains specific implementation guidance and reminders to the implementation team. It is not meant to be a normative specification. The implementation teams should make every effort to understand the statements within this section and proactively seek clarification from the document authors. 4.1 Implementation Responsibilities Developing, deploying, and operating the UC IDM User Provisioning Middleware is a collaborative effort. In order for the middleware to succeed, entities within UC need to work closely together. The key entities are: UCTrust – UCTrust is the University of California’s identity federation. It is the basis for a unified identity and access management infrastructure for the University of California system. UCTrust enables authorized campus individuals to use their local campus electronic credential to gain access, as appropriate, to participating services (Resource Providers) throughout the UC system. UCTrust is based on industry standard technologies and a common set of identity attributes and identity management practices. UC IDM User Provisioning Middleware Team – The UC IDM Provisioning Middleware Team is the implementation team (to be formed) responsible for developing the bulk of the UC IDM User Provisioning Middleware. Identity Provider Team – The Identity Provider Team refers to each UC organization operating its Identity Management System, including Shibboleth. Service Provider Team – The Service Provider Team refers to the UC or vendor application team responsible for the development and/or operations of an UC federated application. 4.1.1 UCTrust’s Responsibility The UCTrust federation is responsible for: The on-going development and maintenance of UC federated identity management policies and practices; Coordinate the deployment of the Provisioning Middleware across UC; Coordinating, collecting, and proposing future Provisioning Middleware feature enhancements; 4.1.2 The UC IDM User Provisioning Team’s Responsibility The Provisioning Middleware Team needs to: Design and publish detailed IdP Provisioning agent component interfaces: o Identity Register Adapter interface; o The Change Notify Issuer; o The Attribute Authority; o The Change Data Cache; Document1 20 UC IDM Provisioning Middleware: Technical Design Guide o The SP Registration Service; o The IdPPA Administration Service; Deliver production implementation of the following IdP Provisioning Agent components: o The Change Notify Issuer; o The Attribute Authority; o The Change Data Cache o The SP Registration Service o The IdPPA Administration Service Assist each UC Identity Provider team with: o The development and deployment of the appropriate Identity Registry Adapter; o The configuration and deployment of the IdPPA at each UC location; Design and publish SP Provisioning agent component programmatic interfaces: o The Target Resource Adapter interface; o The Change Notify Receiver; o The Attribute Requester; o The Change Data Cache; o The IdP Registration Service; o The SPPA Administration Service; Deliver production implementation of the following SP Provisioning Agent components: o Two reference Target Resource Adapter implementations: LDAPTargetResourceAdapter; FileTargetResourceAdapter; o The Change Notify Receiver; o The Attribute Requester; o The Change Data Cache; o The IdP Registration Service; o The SPPA Administration Service; Demonstrate the successful deployment and operation of the UC IDM User Provisioning Middleware among at least two UC Identity Providers and three Service Providers; 4.1.3 The Identity Provider Team’s Responsibility Each Identity Provider Team needs to: o o o o o Understand the Provisioning Middleware’s implementation requirements; Work with ITLC and its CIO to develop funding and implementation plan; Secure the appropriate development resources to develop the IdP-specific Identity Registry Adapter; Work with the Provisioning Middleware team to integrate the Provisioning Middleware with its Identity Management operations; Work with any applicable federated Service Providers to provision user identity data via the Provisioning Middleware; 4.1.4 The Service Provider Team’s Responsibility Each Service Provider Team needs to: o Understand the Provisioning Middleware’s implementation requirements; Document1 21 UC IDM Provisioning Middleware: Technical Design Guide o o o Deploy and operate the SP Provisioning Agent for its Target Resource; Optionally develop custom Target Resource Adapters if neither reference adapters work for its Target Resource; Work with UC Identity Providers to provision user identity data via the Provisioning Middleware; 4.2 Implementation Technology 4.2.1 The UC IDM User Provisioning Middleware Should Be Implemented in Java. The UC IDM User Provisioning Middleware is designed to work with SAML 2 compliant Identity Providers and Service Providers. Within UC, Shibboleth is the standard federated SAML SSO implementation. The implementers of this document’s design should leverage the same Java implemented Shibboleth/SAML code whenever appropriate. Furthermore, a Java-written solution is easier to deploy across multiple operating systems. Finally, it is anticipated that IdPOs will operate SPPAs as a service on behalf of SPs. The choice to implement the UC IDM User Provisioning Middleware in Java aligns with the fact that the Shibboleth IdP is also implemented in Java. 4.2.2 Data within and exchanged with the UC IDM User Provisioning Middleware must meet specific authentication, authorization, and encryption requirements. 4.2.2.1 The IdP Provisioning Agent must authenticate all data request to ensure that only a registered SP Provisioning Agent may connect; We assume that authentication will be done in the same manner an Shibboleth IdP authenticates attribute requests from an Shibboleth SP. 4.2.2.2 When responding, the IDP Provisioning Agent must ensure that it only returns data a registered SPPA is authorized to access; We assume that data authorization control will be done in the same manner an Shibboleth IdP filters attribute responses. 4.2.2.3 The SP Provisioning Agent must authenticate all change notify requests to ensure that only a registered IdP Provisioning Agent may connect; We assume that authentication will be done in the same manner an Shibboleth IdP authenticates attribute requests from an Shibboleth SP. 4.2.2.4 All communication between an IdP Provisioning Agent and a SP Provisioning must be encrypted; We assume that encryption between an IdPPA and a SPPA will reuse the same encryption mechanism used between a Shibboleth IDP and a Shibboleth SP. Document1 22 UC IDM Provisioning Middleware: Technical Design Guide 4.2.2.5 While at rest, data managed by the Provisioning Middleware should be appropriately protected from unauthorized access. The information managed by the Provisioning Middleware is likely sensitive and must be protected from unauthorized access. The Provisioning Middleware Team must evaluate each data store’s (e.g., the change data cache, the file generated by the FileTargetResourceAdapter, etc.) technical capabilities and recommend the appropriate encryption and/or access control mechanism. 4.2.2.6 The IdP Provisioning Agent must authenticate all data change events to ensure that only the registered Identity Provider may connect; To avoid an unauthorized agent from injecting illegal data change events, the IdPPA must authenticate data change events from its Identity Provider. The authentication mechanism used must be at least as strong as the one used between the IdPPA and the SPPA. 4.2.2.7 All user identity data exchange between an IdP Provisioning Agent and its Identity Provider should be encrypted; If the Identity Provisioning Agent will be exchanging user identity data with its Identity Provider over a network, the exchange must be encrypted. This means that the Provisioning Middleware team must implement the appropriate encryption mechanism so that the identity management operators can enable it at runtime. 4.2.2.8 All user identity data exchange between an SP Provisioning Agent and its Service Provider should be encrypted; If the SP Provisioning Agent will be exchanging user identity data with its Identity Provider over a network, the exchange must be encrypted. This means that the Provisioning Middleware team must implement the appropriate encryption mechanism so that the service provider operators can enable it at runtime. 4.3 Identity Provider Provisioning Agent 4.3.1 Design Directives 4.3.1.1 The Identity Provider operators are members of the development team. To accommodate the uniquely different data management practices and technical architecture its campus, the IdMS implementation at each UC differs significantly from one and the other. These differences make creating a generically installable IdPPA impractical. Therefore, we expect that each UC Identity Provider operator will contribute technical resources to assist in the development of the integration components between the IdPPA and its campus IdMS infrastructure. Document1 23 UC IDM Provisioning Middleware: Technical Design Guide 4.3.1.2 The IdP Provisioning Agent extends an organization’s existing Identity Provider implementation. It does not replace it. The Provisioning Middleware’s design can be potentially generalized to perform additional data replication and provisioning tasks within an identity provider’s infrastructure. That work is beyond the scope of this project. Any modification made to the internals of the Identity Provider’s infrastructure while integrating and/or deploying the IdPPA is the sole responsibility of the Identity Provider team. The Implementation team and the Identity Provider operators MUST exclude any requirements to replace any portion of existing Identity Provider infrastructure from the scope of this project. 4.3.1.3 The IdP Provisioning Agent relies on the IdP to consolidate identity information from multiple sources. The Identity Provider SHOULD consolidate identity information in the Identity Registry prior to interfacing with the IdP Provisioning Agent. Managing multiple identity data sources on the IDP side is beyond the scope of the IdPPA’s implementation. 4.3.1.4 The IdP Provisioning Agent SHOULD be able to run on separate machines from the Identity Provider. The IdPPA retrieves data from the Identity Provider. However, it should not necessarily be required to run on the same machine or network as the Identity Provider services. 4.3.1.5 The IdP Provisioning Agent MUST be able to run in a high availability configuration. The IdPPA is a part of a mission critical service. The software must be designed from the ground up to run in a 24/7, uninterrupted, and redundant configuration. However, it should also be able to run in a single, standalone mode. 4.3.1.6 The IdP Provisioning Agent SHOULD use the IdP’s Shibboleth metadata and attribute filter policy to manage a Service Provider’s access to subject identity data. A key design principle of this Provisioning Middleware is to leverage the investments UC has made in its federated identity management framework. A central component of that is the UCTrust federation and the adoption of Shibboleth as its federated single sign-on service. This Shibboleth infrastructure has already generated a substantial amount of service provider metadata. This project should build on that effort by extending it where appropriate. It should not duplicate any work already done in Shibboleth unless there is proper technical justification. 4.3.1.7 Expect to track multiple SP’s Each IdPPA will have to provision data to an unknown number (potentially quite large number) of Service Providers. The IdPPA’s design should allow its operator to easily configure and manage a large number of authorized SP’s without any interruption to the service. 4.3.2 Target Resource Adapter Implementation There will be two initial Target Resource Adapters (TRAs) provided as part of the UC IDM User Provisioning Middleware, Document1 24 UC IDM Provisioning Middleware: Technical Design Guide LDAP - The LDAP TRA will implement a read-only LDAP server containing the users and attributes required by the SP. o The OIDs used to identify attributes will be those defined by the federation, or others mutually agreed upon by the SP and affected IdPs. o The user entries will be created under a top-level branch of the server’s directory tree called People. CSV File - The CSV File TRA will provide user information in a “CSV” file format. o The first record in the file will contain the OIDs of the attributes provided for each user, and the user information itself will follow, one record per user. All non-numeric values will be enclosed in quotes. o The OIDs used to identify attributes will be those defined by the federation, or others mutually agreed upon by the SP and affected IdPs. o When there are multi-valued attributes, the maximum number of occurrences of those attributes will be defined by the federation, or by mutual agreement between the SP and affected IdPs. Both TRAs can be configured for the update mechanism (Snapshot, Subscription, Batched Change) they will use in interactions with IdPs. It should be noted, however, that neither of these methods include a mechanism for signaling the SP when changes occur. They simply provide the most current information available to the SPPA. 4.3.3 Interacting with the SP Provisioning Agent The general interaction pattern between the IdPPA and the SPPA is described in sections 3.1 and 3.4. In addition, the IdPPA implementation team should ensure that the IdPPA is fault tolerant and is arbitrarily scalable to handle extreme transaction loads. In other words, the IdPPA’s software design should allow it to run in a clustered configuration out of the box. 4.4 Service Provider Provisioning Agent 4.4.1 Design Directives 4.4.1.1 Service Provider operators are product consumers (end users). Service Provider operators are often administrators of purchased applications. They should not be expected to know the inner workings of your software. When designing the Service Provider Provisioning Agent, provide user interfaces that a non-developer can use with ease. Intuitive graphical user interface with context sensitive help are very welcomed features. 4.4.1.2 Minimize SP’s need to develop custom integration code. There are many more Service Providers than Identity Providers. Service Provider operators are not identity management specialists. They should not have to write custom integration code to consume provisioning data from the Identity Provider. When designing the Service Provider Provisioning Agent, Document1 25 UC IDM Provisioning Middleware: Technical Design Guide make every effort to design for easy and flexible runtime configuration. Make effort to provide as many common Target Resource Adapters as time and resource allows during implementation. 4.4.1.3 Design for hassle-free installation and operation. Service Provider operators are not likely to be developers. Make your software easy to install and operate. 4.4.1.4 Expect to track/manage multiple IdP’s The SPPA operates in a federated environment, that is, it consumes data from multiple Identity Providers. Make sure the SPPA has the ability to easily manage and track all IdP/IdPPAs it interacts with. Make sure the operators can configure and manage these relationships at runtime without having to restart services. 4.4.1.5 The SPPA must be able to run remotely from its Target Resource The SPPA is an intermediary between an IdP and a SP. Specifically, it collects and organizes provisioned data on the SP’s behalf and make it easy for SP to consume. However, the SPPA may not run on the same hardware or network as the SP. In fact, a 3rd party may operate the SPPA on the SP’s behalf. The implementation team should take this operating requirement into consideration when designing the SPPA. 4.4.2 Interacting with the Target Resource 4.4.2.1 Implement at least the CSV File and LDAP Target Resource Adapters CSV file and LDAP are two of the most popular formats SPs use to consume provisioning data. To minimize the SP operator’s need to perform custom integration, the Provisioning Middleware implementation team should develop at least these two Target Resource Adapters. Time and resource permitting, the implementation team should develop additional Target Resource Adapters for commonly used data integration formats (e.g., SQLTargetResourceAdapter). 4.4.2.2 The Target Resource Adapter must be configurable in such a way that it can transform and integrate different file and database table formats without programming. SP’s have different file, schema, and database designs. When implementing a Target Resource Adapter, the TRA must allow its operator to configure it to work with a wide variety of file and database formats at runtime. 4.4.2.3 Expose a robust Target Resource Adapter Interface to simplify the creation of other custom Target Resource Adapters. 4.4.2.4 For the CSV File TRA, the files must be cryptographically signed and encrypted to ensure authenticity of the SP Provisioning Agent and the Target Resource. Encrypting and signing data files addresses the requirement for encryption and signing of communication among and with UC IDM User Provisioning Middleware components. Document1 26 UC IDM Provisioning Middleware: Technical Design Guide 4.4.3 Interacting with the IDP Provisioning Agent The general interaction pattern between the IdPPA and the SPPA is described in sections 3.1 and 3.4. The SP implementation team should ensure that the SPPA is fault tolerant and is arbitrarily scalable to handle extreme transaction loads. In other words, the SPPA software design should allow it to run in a clustered configuration out of the box. Document1 27 UC IDM Provisioning Middleware: Technical Design Guide 5 References [SSTC-SAML2-Notify-Protocol-V1.0] SAML V2.0 Change Notify Protocol Version 1.0. 22 February 2011. OASIS Committee Specification Public Review Draft 01. http://docs.oasisopen.org/security/saml/Post2.0/sstc-saml2-notify-protocol/v1.0/csprd01/sstc-saml2-notify-protocol-v1.0csprd01.odt [SAML2Bind] OASIS Standard, Bindings for the OASIS Security Association Markup Language (SAML) V2.0. March 2005.http://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf [SAML2Core] OASIS Standard, Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0.March 2005. http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf [SAML2Meta] S. Cantor et al. Metadata for the OASIS Security Assertion Markup Language (SAML) V2.0. OASIS SSTC, March 2005. http://docs.oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf [SAML2Prof] OASIS Standard, Profiles for the OASIS Security Assertion Markup Language (SAML) V2.0. March 2005.http://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf [SAML2Gloss] OASIS Standard, Glossary for the OASIS Security Assertion Markup Language (SAML) V2.0. March 2005. http://www.oasis-open.org/committees/download.php/21111/saml-glossary-2.0-os.html [LDAPv3] Lightweight Directory Access Protocol (LDAP): Technical Specification Road Map (RFC 4510). http://tools.ietf.org/html/rfc4510 Document1 28 UC IDM Provisioning Middleware: Technical Design Guide 6 Document History Revision 05....... 7/23/2011 .....................................................................complete draft for workgroup review Revision 06....... 7/30/2011 ............ amend document to conceptual design; edits from Walker, Allen, Bruno Revision 07....... 8/1/2011 ............................................................................................edits from Allen, Bruno Document1 29
© Copyright 2026 Paperzz