<?xml version="1.0"  encoding="US-ASCII"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<!-- used by XSLT processors -->

<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>

<?rfc symrefs="yes"?>

<?rfc sortrefs="no" ?>
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>


<rfc docName="draft-li-scim-user-scenarios-00" 
	category="info" 
	ipr="trust200902"
> 

<front>

<title>
SCIM User Scenarios </title>

	<author fullname="Kepeng LI" initials="K." 
            surname="Li">
      <organization>Huawei Technologies</organization>

      <address> 
	     <postal>
          <street>Bantian</street>
          <!-- Reorder these if your country does things differently -->
          <city>Shenzhen</city>
          <region>Guangdong</region>
          <code>518129</code>
          <country>China</country>
        </postal>
        <email>likepeng@huawei.com</email>
      </address>
    </author>

<date month="Jan" year="2013"/>

<area>Applications</area>
<workgroup>SCIM WG</workgroup>
<keyword>I-D</keyword>
<keyword>Internet-Draft</keyword>

<abstract>
<t>This document lists the user scenarios of System for Cross-domain Identity Management (SCIM).
</t>
</abstract> 

</front>

<middle>


<section title="Introduction">

<t>
This document describes the SCIM user scenarios.   
The document's objective is to help with understanding of the design and applicability of 
<xref target="I-D.ietf-scim-core-schema">SCIM schema</xref> and
<xref target="I-D.ietf-scim-api">SCIM protocol</xref>. 

<vspace blankLines="1"/>
The following section provides the abbreviated descriptions of the user scenarios. 
</t>

</section> <!-- Introduction -->

<section title="SCIM User Scenarios">      
    <section title="Background &amp; Context">       
    	<t>The Simple Cloud Identity Management (SCIM) specification is designed to make managing user identity 
		in cloud based applications and services easier. The specification suite seeks to build upon experience 
		with existing schemas and deployments, placing specific emphasis on simplicity of development and 
		integration, while applying existing authentication, authorization, and privacy models. 
		It's intent is to reduce the cost and complexity of user management operations by providing a common 
		user schema and extension model, as well as binding documents to provide patterns for exchanging 
		this schema using standard protocols. In essence, make it fast, cheap, and easy to move users in to,
		out of, and around the cloud.
		</t> 
		
		<t>The SCIM user scenarios are overview user stories designed to help clarify the intended scope of the 
		SCIM effort.    
		</t>   

	</section>  
	
	<section title="Model Concepts">      
    	<section title="Triggers">    
		    <t>Quite simply, triggers are actions or activities that start SCIM flows. Triggers may not be relevant
			at the protocol or the schema, they really serve to help identity the type or activity that resulted 
			in a SCIM protocol exchange. Triggers make use of the traditional provisioning C.R.U.D (Create Retrieve Modify
			&amp; Delete) operations but add additional use case contexts like "SSO" as it is designed
			to capture a class of use case that makes sense to the actor requesting it rather than to describe a 
			protocol operation. 
			</t> 

			<t> 
			   <list style='symbols'> 
			      <t>Create SCIM Identity Resource - Service On-boarding Trigger: 
				  A create SCIM resource trigger is a service on-boarding activity in which a business action 
				  such as a new hire or new service subscription is initiated by one of the SCIM Actors. 
				  In the protocol itself, service on-boarding may well be implemented via the same resource 
				  PUT method as a service change.  This is particular to the implementation not to the use 
				  cases that drive that implementation.  
				  </t> 
				  <t>Update SCIM Identity Resource  - Service Change Trigger:  
				  An Update SCIM resource trigger is a service change activity as a result of an identity 
				  moving or changing its service level. An Update Identity trigger might be the result of 
				  a change in a service subscription level or a change to key identity data used to denote
				  a service subscription level. Password changes are specifically called out from other 
				  more general identity attribute changes as they are considered to have specific use 
				  case differences.
				  </t> 
				  <t>Delete SCIM Identity Resource - Service Termination Trigger:  
				  A delete SCIM resource trigger represents a specific and deliberate action to remove an 
				  identity from a given SCIM service point. At this stage it is unclear if the SCIM protocol 
				  needs to identify separate protocol exchange for a service suspension actions. This may 
				  be relevant as target services usually differentiate between these result and may require 
				  separate resource representations as a result.
				  </t> 
				  <!--
				  <t>Sync SCIM Identity Resource - Identity/Group Synchronization Trigger: 
                  A Sync SCIM resource Trigger represents the request to synchronize two or more SCIM 
				  resources.  A sync triggers tells the service that one or more identity records need 
				  to be synchronized between SCIM service points.  In implementation, operational use 
				  cases like sync result in issuing the same basic RESTful POST/PUT operations with 
				  enhanced meta-data.
				  </t>  
				  -->
				  <t>Single-Sign On (SSO) Trigger - Real-time Service Access Request:  
				  A SSO trigger is a special class of activity in which a Create or Update trigger 
				  is initiated during an SSO operational flow. The implication here is that as the 
				  result of a real-time service access request by the end user (SSO), defined SCIM 
				  protocol exchanges can be used to initiate SCIM resource CRUD somewhere in the 
				  service cloud.    
				  </t> 
				</list> 
			</t> 
		</section>                 <!-- end concepts -->           
		<section title="Actors">        
		    <t>Actors are the operating parties that take part in both sides of a SCIM protocol exchange, and help 
			identify the source of a given Trigger. So far, we have identified the following SCIM Actors:
			</t>          
			<t> 
			   <list style='symbols'>
 			       <t>Cloud Service Provider (CSP): A CSP is the entity operating a given cloud service. In a SaaS 
				   scenario this is simply the application provider. In an IaaS or PaaS scenario, the CSP may be 
				   the underlying IaaS/PaaS infrastructure provider or the owner of the application running on 
				   that platform. In all cases, the CSP is the thing that holds the identity information being 
				   operated upon. Put another way, the CSP really is the service that the end-end user interacts with.
                   </t> 
				   <t>Enterprise Cloud Subscriber (ECS): An ECS represents a middle-tier of aggregation for related
				   identity records. In one of our sample enterprise SaaS scenarios, the ECS is "FooBar.Inc" that 
				   subscribes to a cloud based CRM service "SaaS-CRM.Inc" (the CSP) for all of its sales 
				   staff. The actual Cloud Service Users (CSUs) are the FooBar.Inc. sales staff. The ECS actor 
				   is identified to help capture use cases in which a single entitle is given administrative 
				   responsibility for other identity accounts. SCIM may not address the configuration and setup of 
				   an ECS within the CSP, but it does address use cases in which SCIM identity resources are grouped
				   together and administers as part of some broader agreement or operational exchange.
				   </t>                                
				   <t>Cloud Service User (CSU): A CSU represents the real cloud service end-end user - the 
				   "person logging into and using the cloud service". As described above, and ECS will typically
				   own or manage multiple CSU identities where as the CSU represents the FooBar.Inc. employee 
				   using the cloud service to manage their CRM process.
				   </t>                                 
			   </list> 
		    </t>  
            <t>
<figure align="center" anchor="figure_scim_actors" title="SCIM Actors">
         <artwork>  <![CDATA[         
                        +---------------------+
                        |   Cloud Service     |
                        |   Provider (CSP)    |
                        +---------------------+
	                          |
                 +--------------------------------+
                 |                                |        
                 v                                v
         +----------------+              +----------------+
         |Enterprise Cloud|              |Enterprise Cloud|
         |Subscriber (ECS)|              |Subscriber (ECS | 
         +----------------+              +----------------+
                 |                                |
         +----------------+              +----------------+
         |                |              |                |  
         v                v              v                v
 +-------------+ +-------------+   +-------------+ +-------------+
 |Cloud Service| |Cloud Service|   |Cloud Service| |Cloud Service|
 |  User (CSU) | |  User (CSU) |   |  User (CSU) | |  User (CSU) |
 +-------------+ +-------------+   +-------------+ +-------------+
        ]]>  </artwork>
         </figure>   
            </t>			
	   </section>         <!-- end actors -->                  
	   <section title="Modes &amp; Flows">         
	      <t>Modes identify the functional intent of a data-flow initiated in a SCIM scenario.  The modes 
		  identified so far are 'push' and 'pull' referring to the fact of pushing data to, or pulling 
		  data from an authoritative identity data store.
		  </t>  
		  <t>In the SCIM scenarios, Modes are often used in the context of a flow between two Actors. 
		  For example, one might refer to a Cloud-to-Cloud Pull exchange.  Here one Cloud Service Provider 
		  (CSP) is pulling identity information from another CSP. Commonly referenced flows are:
		  </t>  
		  <t> 
		     <list style='symbols'> 
			    <t>Cloud Service Provider to Cloud Service Provider (CSP->CSP)</t>
				<t>Enterprise Cloud Subscriber to Cloud Service Provider (ECS-CSP)</t> 
			 </list> 
		  </t>  
		  <t>Modes &amp; flows simply help us understand what is taking place; they are likely to be 
		  technically meaningless at the protocol level, but again they help the reader follow the 
		  SCIM scenarios and apply them to real work use cases.
		  </t>                   
	   </section>         <!-- end modes -->                        
	   <section title="Bulk &amp; Batch Operational Semantics">  
	       <t> It is assumed that each of the triggers action outlined in this document may be part 
		   of the larger bulk or batch operation.  Individual SCIM actions should be able to be 
		   collected together to create single protocol exchanges.  
		   </t>  
		   <t>The initial focus of SCIM scenarios is on identifying base flows and single operations. 
		   The specific complexity of full bulk and batch operations is left to a later version of 
		   the scenarios or to the main specification.   
		   </t>  
		</section>  
	</section>    
	<section title="Cloud Service Provider to Cloud Service Provider Flows (CSP->CSP)">  
	   <t> These scenarios represent flows between two Cloud Service Providers (CSPs).  It is assumed 
	   that each CSP maintains an Identity Data Store for its Cloud Service Users (CSUs).  
	   These scenarios address various joiner, mover, leaver and JIT triggers, resulting in push and 
	   pull data exchanges between the CSPs.  
	   </t>  
	   <section title="CSP->CSP - Create Identity (Push)"> 
	       <t> In this scenario two CSPs (CSP-1 &amp; CSP-2) have a shared service agreement in place that 
		   requires the exchange of Cloud Service User (CSU) accounts. CSP-1 receives a Create Identity 
		   trigger action from its Enterprise Cloud Subscriber (ECS-1). CSP-1 creates a local user account
		   for the new CSU. CSP-1 then pushes the new CSU joiner push request down-stream to CSU-2 and gets 
		   confirmation that the account was successfully created. After receiving the confirmation from 
           CSP-2, CSP-1 sends an acknowledgement to the requesting ECS.
		   </t> 
		</section>  
		<section title="CSP->CSP - Update Identity (Push)">
  		    <t> In this scenario two CSP's (CSP-1 &amp; CSP-2) have a shared service agreement in place that requires 
			the exchange of Cloud Service User (CSU) accounts. The Enterprise Cloud Subscriber (ECS-1) has 
			already created an account with CSP-1 and supplied a critical attribute "department" that is 
			used by CSP-1 to drive service options. CSP-1 then receives an Update Identity trigger action 
			from its Enterprise Cloud Subscriber (ECS). CSP-1 updates its local directory account with the 
			new department value. CSP-1 then initiates a separate SCIM protocol exchange to push the mover 
			change request down-stream to CSP-2.  After receiving the confirmation from CSP-2, CSP-1 sends 
			an acknowledgment to ECS-1. 
			</t> 
		</section>  
		<section title="CSP->CSP - Delete Identity (Push)"> 
		    <t> In this scenario two CSPs (CSP-1 &amp; CSP-2) have a shared service agreement in place that 
			requires the exchange of Cloud Service User (CSU) accounts. CSP-1 receives a Delete Identity 
			trigger action from its Enterprise Cloud Subscriber (ECS-1). CSP-1 suspends the local directory 
			account for the specified CSU account. CSP-1 then pushes a termination request for the specified 
			CSU account down-stream to CSP-2 and gets confirmation that the account was successfully removed. 
			After receiving the confirmation from CSP-2, CSP-1 sends an acknowledgment to the requesting ECS.  
			</t> 
			<t>This use case highlights how different CSPs may implement different operational semantics 
			behind the same SCIM operation.  Note CSP-1 suspends the account representation for its service 
			where as CPS-2 implements a true delete operation.  
			</t>
		</section>  
		<!--
		<section title="CSP->CSP - Sync Identity(s) (Push &amp; Pull)"> 
		    <t> In this scenario two CSP's (CSP-1 &amp; CSP-2) have a shared service agreement in place that 
			requires the synchronization of Cloud Service User (CSU) accounts. On a periodic basis, either 
			CSP is able to respond to or initiate synchronization request for a sub-set of its managed accounts. 
			In the Push scenario, CSP-1 has the option to push a change-delta data set to CSP-1.  The key to 
			the Push scenario is its initiation by CSP-1.  In the Pull scenario, CSP-2 initiates the sync 
			requests and CSP-1 responds with the resulting data set. In either case, CSP-2 receives the data 
			set and successfully carries out any required additions, updates or deletes. 
			</t> 
		</section> 
        -->		
		<section title="CSP->CSP - SSO Trigger (Push)"> 
		    <t> In this scenario two CSPs (CSP-1 &amp; CSP-2) have a shared service agreement in place that 
			requires the exchange of Cloud Service User (CSU) accounts. However, rather than pre-provisioning 
			accounts from CSP-1 to CSP-2, CSP-1 waits for a service access request from the end Cloud 
			Service User (CSU-1) before issuing account creation details to CSP-2. When the CSU completes a 
			SSO transaction from CSP-1 to CSP-2, CSP-2 then creates an account for the CSU based on information
			pushed to it from CSP-1. 
			</t>
			<t> At the protocol level, this class of scenarios may result in the use of common protocol 
			exchange patters between CSP-1 &amp; CSP-2.
			</t>
		</section>   
		<section title="CSP->CSP - SSO Trigger (Pull)"> 
		    <t> In this scenario two CSPs (CSP-1 &amp; CSP-2) have a shared service agreement in place that 
			requires the exchange of Cloud Service User (CSU) accounts. However, rather than pre-provisioning 
			accounts from CSP-1 to CSP-2, CSP-2 waits for a service access request from the Cloud Service User 
			(CSU-1) before initiating a Pull request to gather information about the CSU sufficient to create 
			a local account.  
			</t> 
			<t>At the protocol level, this class of scenarios may result in the use of common protocol exchange 
			patterns between CSP-2 &amp; CSP-1.
			</t>
		</section> 
		<section title="CSP->CSP - Password Reset (Push)"> 
		    <t> In this scenario two CSPs (CSP-1 &amp; CSP-2) have a shared service agreement in place that 
			requires the exchange of Cloud Service User (CSU) accounts.  CSP-1 wants to change the password
			for a specific Cloud Service User (CSU-1).  CSP-1 sends a request to CSP-2 to reset the password 
			value for CSU-1.   
			</t> 
			<t>At the protocol level, this scenario may result in the same protocol exchange as any other
			attribute change request.
			</t>
		</section> 
	</section>  
	<section title="Enterprise Cloud Subscriber to Cloud Service Provider Flows(ECS->CSP)">  
	    <t> These scenarios represent flows between an Enterprise Cloud Subscriber (ECS) and a Cloud Service 
		Providers (CSP).  It is assumed that both the ECS and the CSP maintains an LDAP service for the relevant
		Cloud Service Users (CSUs).  These scenarios address various joiner, mover, leaver and JIT triggers,
		resulting in push and pull data exchanges between the ECS and the CSP.  
		</t> 
		<t> Many of these scenarios are very similar to those defined in the Cloud Service Provider to Cloud 
		Service Provider section above.  They are identified separately here so that we may explore any 
		differences and might emerge.  
		</t> 
		<section title="ECS->CSP - Create Identity (Push)"> 
		    <t> In this scenario an Enterprise Cloud Subscriber (ECS-1) maintains a service with a Cloud 
			Service Provider (CSP-1) that requires the sharing of various Cloud Service User (CSU) accounts. 
			A new user joins ECS-1 and so ECS-1 pushes an account creation request to CSP-1, supplying all
			required base SCIM schema attribute values and additional extended SCIM schema values as required. 
			</t>
		</section>  
		<section title="ECS ->CSP - Update Identity (Push)"> 
		    <t> In this scenario an Enterprise Cloud Subscriber (ECS-1) maintains a service with Cloud Service
			Provider (CSP-1) that drives service definition from a key account schema attribute called 
			Department. ECS-1 wishes to move a given CSU from Department A to Department B and so it 
			pushes an attribute update request to the CSP. 
			</t> 
		</section>  
		<section title="ECS ->CSP - Delete Identity (Push)"> 
		    <t> In this scenario an Enterprise Cloud Subscriber (ECS-1) maintains a service with a Cloud Service 
			Provider (CSP-1). Upon termination of one of its employees' employment agreement, 
			ECS-1 sends a suspend account request 
			to CSP-1 (Figure 1.4.3-1). One week later the ECS wishes to complete the process by fully removing 
			the Cloud Service User (CSU) account and so it sends a terminate account request to CSP-1. 
			</t> 
		</section>  
		<section title="ECS ->CSP - SSO Pull"> 
		    <t> In this scenario an Enterprise Cloud Subscriber (ECS-1) maintains a service with a Cloud 
			Service Provider (CSP-1). No accounts are created or exchanged in advance. However, rather than 
			pre-provisioning accounts from ECS-1 to CSP-1, CSP-1 waits for a service access request from 
			the Cloud Service User (CSU-1) under the control domain of ECS-1, before issuing an account 
			Pull request to CSP-1. 
			</t> 
		</section>		
	</section>  
</section>  <!-- SCIM User Scenarios --> 

<section title="Recommendations">
<t>
The recommendation is to merge the user scenarios document into the use case document
as section 2.
</t>
</section> <!-- Recommendations -->

<section title="Security considerations">
<t>
TBD 
</t>
</section> <!-- Security Considerations -->

<section title="IANA considerations">

<t>This Internet Draft includes no request to IANA.</t>

</section> <!-- iana-cons -->
<section title="Acknowledgements">
<t>
Authors would like to thank Darran Rolls and Patrick Harding, most of the texts 
in this document are taken from them. 
</t>
<t>
Thanks to Bert Greevenbosch for his review and feedback.
</t>
</section>
</middle>  

<back>


<references title='Informative References'>

 <?rfc include='http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-scim-api.xml' ?>

<?rfc include='http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-scim-core-schema.xml' ?>

        </references>

</back>
</rfc>


