<?xml version="1.0" encoding="iso-8859-1"?>
<!-- comment -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"[]>
<?rfc toc="yes" ?>
<?rfc compact="yes" ?>
<?rfc sortrefs="no" ?>
<rfc ipr="trust200902" category="std" docName="draft-holmberg-sipcore-auth-id-00.txt" submissionType="IETF" xml:lang="en">
  <front>
    <title>
		Authorization server identity
	</title>
    <author fullname="Christer Holmberg" initials="C.H." surname="Holmberg">
      <organization abbrev="Ericsson">Ericsson</organization>
      <address>
        <postal>
          <street>Hirsalantie 11</street>
          <city>Jorvas</city>
          <region></region>
          <code>02420</code>
          <country>Finland</country>
        </postal>
        <phone></phone>
        <email>christer.holmberg@ericsson.com</email>
      </address>
    </author> 
    	
    <date year="2014" />

    <area>RAI</area>

    <abstract>
		<t>
			The 3rd-Generation Partnership Project (3GPP) has defined how the WebRTC framework can
			be used to provide access to IMS services. Users can use "web credentials" (e.g. a username
			and password) to retrieve an authorization token (e.g. an OAuth 2.0 access token), which
			is included in the user registration request sent towards the IMS network.
		</t>
		<t>
			3GPP has specified a requirement, that the eP-CSCF shall be able to include a string value,
			representing the identity of the WAF, in the REGISTER request forwarded towards the S-CSCF.
			The S-CSCF can use the identity for e.g. policy and routing decisions.
		</t>
		<t>   
			This document defines a new Authorization header field parameter, 'authorization-entity', which 
			the eP-CSCF can include in a REGISTER request in order to convey the identity of the WAF towards
			the S-CSCF.
		</t>
    </abstract>
</front>

<middle>
  
    <section title="Introduction">
		<t>
			The 3rd-Generation Partnership Project (3GPP) has defined how the WebRTC framework can
			be used to provide access to IMS services. Users can use "web credentials" (e.g. a username
			and password) to retrieve an authorization token (e.g. an OAuth 2.0 access token), which
			is included in the user registration request sent towards the IMS network.
		</t>
		<t>
			NOTE: The current assumption is that, when SIP <xref format="default" pageno="false" 
			target="RFC5234"/> is used between the WIC and the eP-CSCF, together with the OAuth 2.0
			framework <xref format="default" pageno="false" target="RFC6749"/>, the access token 
			will be conveyed in the REGISTER request using the mechanism defined in <xref 
			format="default" pageno="false" target="I-D.yusef-sipcore-sip-oauth"/>.
		</t>
		<t>
			The WWSF (OAuth 2.0 Client role) authenticates the user (OAuth 2.0 Resource Owner role), and
			obtains the token from the WAF WAF (OAuth 2.0 Authorization Server role). The WWSF then 
			provides the token to user (typically as part of a JavaScript application downloaded by 
			the user), which then includes the token in the registration request (REGISTER request when 
			SIP <xref format="default" pageno="false" target="RFC3261"/> is used) towards the IMS 
			network (OAuth 2.0 Resource Server role).
		</t>
		<t>
			When the eP-CSCF receives the registration request, it contacts the WAS and verifies the token.
			If the verification is successful, the WAF provides IMS credentials to eP-CSCF, which the eP-CSCF
			can include in the registration request sent towards the S-CSCF, in order to register the user
			using legacy IMS registration mechanisms.
		</t>
		<t>
			3GPP has specified a requirement, that the eP-CSCF shall be able to include a string value,
			representing the identity of the WAF, in the REGISTER request forwarded towards the S-CSCF.
			The S-CSCF can use the identity for e.g. policy and routing decisions.
		</t>
		<t>
			This document defines a new Authorization header field parameter, 'authorization-entity', which 
			the eP-CSCF can include in a REGISTER request in order to convey the identity of the WAF towards
			the S-CSCF.
		</t>
		<t>
			The 'authorization-entity' parameter is defined in order to fulfil requirements from the 
			3rd-Generation Partnership Project (3GPP), but it can also be used in other network environments.
		</t>
    </section>

	<section title="Abbreviations" toc="default">
		<t>
			WIC (WebRTC IMS Client): An application (typically a JavaScript application executed in a browser) 
			using the WebRTC 1.0 extensions used to access IMS.
		</t>
		<t>
			WAF (WebRTC Authorisation Function): Provides and validates access tokens. In the OAuth 2.00
			architecture the WAF represents the Authorization Server.
		</t>
		<t>
			WWSF (WebRTC Web Server Function): Retrieves access tokens on behalf of a user, and provides the 
			WIC application code to the user. In the OAuth 2.0 architecture the WWSF represents the Client.
		</t>
		<t>
			CSCF: Call Session Control Function: IMS SIP proxy. Different types of CSCFs perform different
			functions in an IMS network.
		</t>
		<t>
			eP-CSCF (P-CSCF enhanced for WebRTC): A SIP proxy which validates the access token, and retrieves
			IMS credentials associated with the access token.
		</t>
		<t>
			S-CSCF (Serving CSCF): IMS SIP registrar.
		</t>
	</section>
	
	<section title="Requirements">
		<t>
			REQ-1: It MUST be possible for a SIP proxy to include a string value, representing the identity of 
			an authorization server, in a REGISTER request sent towards a SIP registrar.
		</t>
	</section>
	
    <section title="Conventions">
		<t>
			The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
			"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
			document are to be interpreted as described in <xref target="RFC2119"></xref>.
		</t>
    </section>
           
    <section title="'authorization-entity' header field parameter">
		<section title="General">
			<t>
				This section defines a new Authorization header field
				'authorization-entity' header field parameter. The header field
				parameter is used in a REGISTER request to convey a string
				value which represents the identity of an authorization server.
				The header field parameter is included in the REGISTER request
				by the entity which verifies the access token received from a
				SIP UA.
			</t>	
			<t>
				This document only describes the usage of the authorization-entity 
				header field parameter within a REGISTER request. Usage with other 
				SIP methods, or within REGISTER responses, is unspecified.
			</t>
		</section>

		<section title="Syntax">
			<section title="General">
				<t>
					This section defines the ABNF for the SIP Authorization 
					'authorization-entity' header field parameter. 
					The ABNF defined in this specification is conformant to RFC 5234
					<xref format="default" pageno="false" target="RFC5234"/>.
				</t>
			</section>
			<section title="ABNF">
				<t>
					The ABNF <xref format="default" pageno="false" target="RFC5234"/> 
					grammar for the 'authorization-entity' header field parameter is:
				</t>
				<figure>
					<artwork align="left"><![CDATA[
dig-resp    /= "authorization-entity" EQUAL quoted-string
;; quoted-string defined in RFC 3261
				]]></artwork>
				</figure>
			</section>                 
		</section>
	</section>

	<section title="Security Considerations">
		<t>
			Security considerations come here.
		</t>
	</section>
	
	<section title="IANA Considerations">
		<t>
			[RFC EDITOR NOTE: Please replace RFCXXXX with the RFC 
			number of this document.]
		</t>
		<t>
			This specification adds one new header field parameter 
			to the IANA registration in the "Header Field Parameters 
			and Parameter Values" registry, as specified in 
			<xref format="default" pageno="false" target="RFC3969"/>.
		</t>
		<figure>
			<artwork align="left"><![CDATA[

		Header Field:		Authorization
		Parameter Name:		authorization-server
		Predefined Values:	No
		Reference:			RFCXXXX

			]]></artwork>
        </figure>
	</section>
                   
	<section title="Acknowledgments">
		<t>
			The author wishes to thank everyone in the 3GPP community that 
			provided input and comments on this document.
		</t>
	</section>
		
	<section title="Change Log">	
		<t>[RFC EDITOR NOTE: Please remove this section when publishing]</t>
		<t>draft-holmberg-sipcore-auth-id-XX
			<list style="symbols">
				<t>Changes are described here.</t>
			</list>
		</t>
	</section>
</middle>

<back>
    <references title="Normative References">
		<?rfc include="reference.RFC.2119"?>
		<?rfc include="reference.RFC.3261"?>
		<?rfc include="reference.RFC.3969"?>
		<?rfc include="reference.RFC.5234"?>
		<?rfc include="reference.RFC.6749"?>
		<reference anchor="I-D.yusef-sipcore-sip-oauth">
            <front>
                <title abbrev="SIP OAuth">
					The Session Initiation Protocol (SIP) OAuth
				</title>
                <author fullname="Rifaat Shekh-Yusef" initials="R.S" surname="Shekh-Yusef">
                    <organization>Avaya</organization>
                    <address>
                    </address>
                </author>
				<author fullname="Victor Pascual" initials="V.P" surname="Pascual">
                    <organization>Quobis</organization>
                    <address>
                    </address>
                </author>
                <date day="14" month="October" year="2014" />
            </front>
            <seriesInfo name="Internet-Draft" value="draft-yusef-sipcore-sip-oauth-01" />
        </reference>
    </references>
	
	<section anchor="section.example" title="3GPP Examples">
        <section title="General">
          <t>
				This section contains example call flows based on 3GPP usage of the
				authorization-entity header field parameter.
          </t>
        </section>
		
		<section title="WIC registration using web credentials">
			<t>
				The WWSF/WAF authenticates, obtains and provides an access token to, the WIC.
				The WIC includes the access token in the REGISTER request sent to the eP-CSCF.
				The eP-CSCF validates the access token with the WAF, and retrieves IMS 
				credentials associated with the token. The eP-CSCF includes the IMS 
				credentials, and a string value representing the identity of the WAF,
				in the REGISTER request before forwarding it towards the S-CSCF.
			</t>
			<t>
            <figure anchor="example_1_figure" title="The UE registers via P-CSCF">
              <artwork><![CDATA[

 Alice/WIC        WWSF/WAF       eP-CSCF           S-CSCF
  |                |                |                |
  |   F1           |                |                |
  |<-------------->|                |                |
  |                |                |                |
  |   REGISTER F2                   |                |
  |-------------------------------->|                |
  |                |                |                |
  |                |   F3           |                |
  |                |<-------------->|                |
  |                |                |  REGISTER F4   |
  |                |                |--------------->|
  |                |                |                |
  |                |                |  200 (OK) F5   |
  |                |                |<---------------|
  |   200 (OK) F6                   |                |
  |<--------------------------------|                |
  |                |                |                |
   
   
   F1 WIC <-> WWSF/WAF
   The WWSF/WAF authenticates Alice, using "web credentials"
   (e.g. username and password), and obtains an access
   token. The access token and the WIC (typically a JavaScript
   application) is provided to Alice.
   
   F2 REGISTER WIC -> eP-CSCF
   REGISTER sip:registrar.home1.net SIP/2.0
   Authorization: Bearer access_token="O91G451HZ0V......"

   F3 eP-CSCF <-> WWSF/WAF
   The eP-CSCF validates the access token with the WAF, 
   and retrieves IMS credentials associated with the user, 
   and a string value representing the identity of the WAF.
   
   F4 REGISTER eP-CSCF -> S-CSCF
   REGISTER sip:registrar.home1.net SIP/2.0
   Authorization: Digest username="user1_private@home1.net",
    realm="registrar.home1.net",
	nonce="",
	uri="sip:registrar.home1.net",
	response="",
	authorization-entity="webrtc_authserver1@thirdparty.net"

   F5 200 OK S-CSCF -> eP-CSCF
   200 OK 

   F6 200 OK eP-CSCF -> WIC
   200 OK 

           ]]></artwork>
            </figure>
			</t>
        </section>		
	</section>
</back>
</rfc>
