DTV-IdP-Authentication ExternalIntegration

Confidential – Partner
July 17, 2009
DTV-IdP Authorization
Authentication Specification
Published by
Sep 15, 2009
Version 0.1
Document Identifier:
DTV-IdP-Authentication-ExternalIntegration-0.1
DIRECTV Confidential
This document contains proprietary information and
except with written permission of DIRECTV such
information shall not be published and this document
shall not be duplicated or distributed in whole or part.
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Confidential – Partner
July 17, 2009
REVISION HISTORY
Date
Author
Kapil Chaudry, Jin
Chung, Uday Ravuri
Deena Gurajala
Description of Change
Initial release
Added support for HTTP Redirect/HTTP POST Binding as per
SAML 2.0 Specification
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Confidential – Partner
July 17, 2009
Table of contents
1 Introduction ...................................................................................................................... 1
Disclaimer ....................................................................................................................... 1
2 Overview .......................................................................................................................... 1
2.1 Authentication/Authorization for Service Providers ............................................ 1
3 Authentication .................................................................................................................. 2
3.1 The Authentication Process ...................................................................................... 2
3.2 SAML based Authentication..................................................................................... 5
3.3 Authentication Request ............................................................................................. 6
3.3.1 Sample Request Details ..................................................................................... 6
3.3.2 Authentication Response ................................................................................... 8
4 SP features required for Authentication ......................................................................... 16
5 Common Domain Cookie Support................................................................................. 16
7 Error Codes .................................................................................................................... 17
8 References ...................................................................................................................... 17
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Confidential – Partner
July 17, 2009
1 Introduction
This document describes the process to interface with DTV-IdP to access Directv’s
services. It is intended for Partners (Service Providers) who want their web-based
applications to access Directv’s services on behalf of users, using DTV-IdP’s
Authentication and Authorization services.
Disclaimer
DIRECTV makes no representations, express or implied, that use of the technologies
described in this specification will not infringe patents, copyrights, or other intellectual
property rights of third parties. Nothing in this specification should be construed as
granting permission to use any of the technologies described. Anyone planning to make
use of technology covered by the intellectual property rights of others should first obtain
permission from the holder(s) of the rights.
This specification is subject to change without notice. DIRECTV does not accept any
responsibility whatsoever for damages or liability, direct or consequential, which may
result from use of this specification or any related discussions.
2 Overview
DTV-IdP is a standalone SAML 2.0 compliant Identity Provider solution which
bundles all the security and identity related components necessary to enable partners to
communicate with service providers native to Directv security domain. We use an eventbased model to receive process and respond to HTTP and SOAP-based messages and
manage connections in Single Sign On fashion (SSO).
2.1 Authentication/Authorization for Service Providers
Every time a consumer tries to access web content through a service providers
that requires the user to have a Directv account , it has to first authenticate the user
against the DTV-IdP’s Authentication service. Upon successful authentication, the web
application receives a SAML assertion from the DTV-IDP Authentication service. If the
Service Provider (SP) needs explicit authorization for the user requested resource, then an
authorization request containing a SAML Authorization Decision Query is sent via
SOAP over HTTPS to the DTV-IdP Authorization service.
The following diagram illustrates this process.
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 1
Confidential – Partner
July 17, 2009
Authentication
1. Authentication
HTTP Request
4. Redirect with
eToken
2. login page
USER
DTV-IdP
Authentication
3. login and
Approve/Deny access
Service Provider’s
Web Application
Token Validation
SAML Soap request
with Token
DTV-IdP
Authorization
SAML Assertion
based on ACL
Access
Conrol
Logic
(ACL)
Authorization
Figure 1.1 Authn/Authz for SPs
3 Authentication
Web applications that need to access services hosted by Directv or protected by the user’s
Directv account can do so using DTV-IdP’s Authentication service. Before using, verify
that the Directv’s service to be accessed supports the DTV-IdP’s Authentication service.
3.1 The Authentication Process
There are three entities involved in a typical Authentication Service Providers, DTV- IdP,
and the user. The following diagram illustrates the sequence:
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 2
Confidential – Partner
July 17, 2009
3
Request CDC
info
web browser
user
http://service.provider.com/videos
1
User attempts to access
URL on page hosted by
Service Provider
content protected
by directv account
2
Request
goes to
SP
4
Respond
with
DTV-IdP info
SP
(back end
application)
10
Grant Access to
content based
on Assertion
Assertion
Consumer
Service
5
SP sends a
SAML <AuthnRequest>
to DTV-IdP
(HTTP POST/HTTP Redirect)
9
Resolve
Authorization for
content:
SAMLAuthzDecnQuery/
SAMLAuthzAssertion
(SOAP over HTTP)
6
Resolve any CDC
info
https://directv.idp.net/login
DTV-IdP
Common Domain
Reading/Writing
Service
Not successful
8
<Response>
containing SAML
Assertion
with Token Set/Update
cookie
(HTTP POST/
HTTP Redirect)
successful
DTV-IdP
Enter directv
login credentials
username
7
Authenticate user
password
Fig 1.0 DTV-IdP Authentication Flow
The flow starts when the user attempts to access a resource on Service provider’s site that
is protected by Directv specific login credentials.
1. The Service Provider does not have a valid Directv Token for the user in the
corresponding security context.
2. Service provider identifies the ID provider for user Authentication (SP can use
DirecTV IDP Discovery service).
3. The SP sends a SAML <AuthnRequest> using HTTP POST or HTTP Redirect
binding to DTV-IdP’s Authentication server via HTTPS. Within the request is the
information from Step 3 referenced as additional attributes.
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 3
Confidential – Partner
July 17, 2009
4. The DIRECTV IDP will validate the message format for required data and digital
signature. It also validate the age of the request. If it is older than 5 seconds (it is
configurable), we will reject the message. The age of the message is determined
from the value of attribute IssueInstant of the AuthnnRequest Element.
5. The DIRECTV IDP Authentication service tries to resolve any Common Domain
Cookie specific info from Request.
6. If the Common Domain Cookie information is resolved within the security
context of DTV-IdP, then a corresponding SAML Assertion with a SPID, Token
(Site Specific) and UUID is sent to the Service Provider. DTV-IDP
Authentication Service also calls Cookie Writer Service to set/update the common
domain cookie.
7. If the Common Domain Cookie information can not be resolved within the
security context of DTV-IDP or if it is invalid, then the user is redirected to the
login page.
8. This login page prompts the user to enter their Directv specific login credentials.
If the user enters valid login credentials and signs in, the user is granted access.
9. If the user is denied access, they are directed to a Directv login page rather than
back to the Service Provider (TBD).
10. When the user is granted access (i.e. successful login), the Authentication service
will call Common Domain Writing Service to create/update the Common Domain
Cookie (CDC) in the user’s browser and then redirects the user back to the SP’s
web site. Note: CDC support is explained in Section 4.
11. The authorization flow starts after this if the SP’s web application needs explicit
authorization for the user requested resource.
12. For the detailed flow please refer to the diagram below.
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 4
Confidential – Partner
July 17, 2009
10 Initiate
Authorization Flow
(This can be initiated
If user already has
Authentication Context)
Service provider page
1 User Accessing
Restricted Content
on Service Provider domain
http://
content.protectd.idpacct.com
3 return IDP URL
or Default IDP URL
Common Domain Reader/
Writer Services Hosted On
DirecTV (Portable to ANY one
interested in Hosting)
Uses
Browser
9 Send SAML
Assertion Back
with site specific
token with
HTTP POST/
HTTP Redirect Binding
(After Successful
Authentication)
4 Send SAML
AuthenticationRequest
(HTTP Post/
HTTP Redirect Binding)
2 Identify ID Provider
(User Do not have any
Authentication Context)
IDP Discovery Service
8 return
Common Domain Writer
Service
DTV-IDP Authentication Service
6 Authenticate User
7 Set/Update
Common Domain Cookie
(After Successful
Authentication)
User Enters
Credentials
https://directv.idp.net/login
NO
username
5 Does Request
has Common Domain
Token
Attribute?
password
YES
YES
NO
5.1 Is Common
Domain
Token Valid?
3.2 SAML based Authentication
The Authentication API exposed by the DTV-IdP’s Authentication service is based on
the SAML 2.0 standard; specifically, on the "Web Browser SSO Profile."
The SAML profiles and bindings described below are derived from the SAML
specifications detailed in the following open standard documentations:
http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.pdf
DTV-IdP uses the following SAML profile for its Authentication mechanism:

SP-initiated Single Sign On (SSO) using a POST/Redirect binding for the SP-toIdP <AuthnRequest> message and POST/Redirect binding for the IdP-toSP <Response> message.
Note:
 All Requests to DTV-IdP must be signed using certificates that are pre-registered
between DTV-IdP and the Service Provider.
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 5
Confidential – Partner

July 17, 2009
All Responses originating from DTV-IdP to the Service Provider are also signed
in a similar fashion.
3.3 Authentication Request
The format of the <AuthnRequest> is part of the SAML protocol schema defined in samlschema-protocol-2.0.xsd. The Service Provider’s web application makes a request to
DTV-IdP’s Authentication service using HTTP POST or HTTP Redirect Binding as
defined in Step 1 of Authentication process above. The end-point (URL) is defined
below:
https://idp-sandbox-directv.com/authenticate/SAMLAuthRequest
(This URL is just an example)
Note:
1. The <AuthnRequest> MUST be signed by the Service Provider.
2. All communication with DTV-IdP takes place over SSL 3.0/TLS1.0
compatible Https.
The expected parameters are:
Parameter
Description
(required)(case sensitive)(value is base64encoded)Corresponds to SAML
SAMLRequest <AuthnRequest> message of Web Browser SSO profile which makes use
of the "Authentication Request Protocol".
The XSD is based on saml-schema-protocol-2.0.xsd
RelayState
token
(optional) URL containing current state information if any.
(Optional) Used by DTV to verify whether user has already authenticated
with other SP.
3.3.1 Sample Request Details
The URL for the service has not yet been deployed but will follow this convention:
HTTP Redirect Binding:
https://idp-sandboxdirectv.com/authenticate?token=JBGJg12IBn&SAMLAuthRequest?S
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 6
Confidential – Partner
July 17, 2009
AMLRequest=BASE64URLENCODEDELEMENT&RelayState=https://third
party.corp.company.com/viewcontent?video=URL&SigAlg=rsasha1&Signature=JLHW2929HNKw+njllswnjjSHK232+3939HHki=
The request parameter ‘token’ is common domain cookie token. It is part of IDP
Authentication Service URL. This URL set by common domain cookie writer. Token
attribute is an optional parameter. If it is present Authentication Service will validate the
token and issue an assertion containing site specific token. If token attribute is not present
or not valid, we redirect the user to log in page and ask them to provide credentials. After
successful authentication, Authentication Service will issue an assertion containing site
specific token.
Format of BASE64URLENCODEDELEMENT (source: saml-schema-protocol2.0.xsd):
<element name="AuthnRequest" type="samlp:AuthnRequestType"/>
<complexType name="AuthnRequestType">
<complexContent>
<extension base="samlp:RequestAbstractType">
<sequence>
<element ref="saml:Subject" minOccurs="0"/>
<element ref="samlp:NameIDPolicy" minOccurs="0"/>
<element ref="saml:Conditions" minOccurs="0"/>
<element ref="samlp:RequestedAuthnContext" minOccurs="0"/>
<element ref="samlp:Scoping" minOccurs="0"/>
</sequence>
<attribute name="ForceAuthn" type="boolean" use="optional"/>
<attribute name="IsPassive" type="boolean" use="optional"/>
<attribute name="ProtocolBinding" type="anyURI" use="optional"/>
<attribute name="AssertionConsumerServiceIndex" type="unsignedShort" use="optional"/>
<attribute name="AssertionConsumerServiceURL" type="anyURI" use="optional"/>
<attribute name="AttributeConsumingServiceIndex" type="unsignedShort" use="optional"/>
<attribute name="ProviderName" type="string" use="optional"/>
</extension>
</complexContent>
</complexType>
Example:
https://<ipaddress>:8080/authenticate/SAMLAuthRequest?SAMLRequest=nVNta
9swEP4rQv1sS3ZamojYJawMwpJS6nSMfgmudInVWZInyUnz7ycnTknLGsqMwBx397zcSeOb
%0AV1WjDVgnjc5wElOMQHMjpF5n%2BHHxPRrim3zsSlU3bNL6Sj%2FAnxacR6FPO7ZPZLi1
mpnSScd0qcAx%0Az1kxmc9YGlPWWOMNNzVGE%2BfA%2BkD0zWjXKrAF2I3k8Pgwy3DlfcMI
SWicDuJkmIYfG9IhJcJvIima%0AiNcStCf80Dtx1muMprcZXiol0jQNgXMtTLXzpfYZTikd
Rd25XCTXbDBiyVV8Ta%2BeMPp5tBvk4YM5%0Atu%2B1J67OmyqPVjAq7u%2Bt2UgBohNDD1
%2BK868aGpMTAb2aon1%2BAe7%2FQ857gDDolbSq7FJoDr4y4p9A%0AHQZXrDK1ABuZVfQb
dmegbktf9tpenXzb3Xa7jbeD2Ng1CcNPyK%2F5rOAVqDKS%2B6VwwCjUM79rIMN7%0A8B%2
Bwm%2BqV%2BQi%2BCBWBX7hjQc8m3CdklNARCTXCyfXFW%2Bdd8Jf7cFuXh1kvm%2Fa5ljy
YG5OTimPQEeX9%0AOj5xfSb9IdWH719N%2Fhc%3D&RelayState=http%3A%2F%2Ftest.c
om%2Fvideo&SigAlg=rsasha1&Signature=NJsrNfkWl3JehGy6avRVfPul3ItU8Kt1uEyEBOjqjiyQ94gHaahFzald
A3S%2B1CqsypToPG7QqA0p%0AQKcgt5Uc2YaY8BiKyCLhQm8qAHbsDOqc074qDnZFAc2sEZ
SSyy3j34eUsBYEqBz7Rqz22GH9dAH7%0Ap4XanaPP1SjtP0au610%3D
Sample SAMLRequest element prior to base64 encoding:
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 7
Confidential – Partner
July 17, 2009
<?xml version="1.0" encoding="UTF-8"?><samlp:AuthnRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
AssertionConsumerServiceURL="http://10.23.182.23:8080/dtv-idpclient/consumeAsrtn" ID="_mmd222" IssueInstant="2009-0904T17:39:15.705Z" Version="2.0">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
SPProvidedID="00000002">http://10.23.182.23:8080/dtv-idpclient/</saml:Issuer>
<saml:Subject xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
<saml:SubjectConfirmation Method="urn:oasis:names:tc:2.0:cm:holderof-key">
<saml:SubjectConfirmationData
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="saml:KeyInfoConfirmationDataType">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:KeyName>test_server_publickey</ds:KeyName>
</ds:KeyInfo>
</saml:SubjectConfirmationData>
</saml:SubjectConfirmation>
</saml:Subject>
</samlp:AuthnRequest>
The service provider has to send site id as value of SPProviderId attribute of <SAML
Issuer> Element. If Service provider does not have site ID yet, Service provider has to
register with DirecTV and receive a site ID. It is a mandatory attribute for us.
3.3.2 Authentication Response
The response from DTV-IdP is a Signed SAML Assertion contains two (2) attributes.
The SAML assertion attributes:
1. Token the DTV-IdP specific unique key for the user as an attribute with
name as eToken
2. SP-ID the Site Id (DTV-IdP’s internal representation of the Service
Provider) as an attribute with name the as SPID
3. UUID the Directv Account Id (DTV-IdP’s internal representation of the
User). It will be sent as the nameId element under Subject.
The validity of the Token and its features are mentioned in the Token Validity Section
below.
Sample Response URL
https://<ACS_URL>/SamlArtifactConsumer?SAMResponse=<RESPONSE>&RelayState=h
ttp%3A%2F%2Fpgws.directv.com%2Fa%2Fgetlistings&SigAlg=rsasha1&Signature=22bkwjdhsbw1278t2wbbgwqdg138e63bvdq+27621qwjg==
Sample <RESPONSE>
SAMLResponse=zVXbcqJAEP0Va%2FbRUm5qhBJSKjFLDMYL3vKS4jIoK8wgM4jm63dQScUk
ZvO4FC893af7nEPX0Lrd%0AR2FpBxMSYKQCocqDEkQu9gK0UsHU6lWa4FZrETsKY2UMSYwR
gSWGQUQ5HqogTZCCbRIQBdkRJAp1%0AlUnbfFTEKq%2FECabYxSEoGboKDHs7SsjirnPPYk
JSaCBCbURVIPK8XMnfmiXcKHVeEfiqxNeeQWlW%0AUGPtQEFkQm2aksuoiz1YmtlhCr%2Bn
RI7VyiR1XUgI4LQW97mp0iYEJpQNfqf1%2B752gThpXb1a8W%2BP%0APmDrZ1qbX2tVjthE
W1MaE4XjPLirBF5c9ejOhVUXRyf2RdkJM0mdP9Cl52jAqBp6qYeTyGbj9amh%0AA820lpI5
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 8
Confidential – Partner
July 17, 2009
UtUz%2FFRzCe9i5Ac5JnfBhHSNvS8dyMW7kbLGoQeTCvYrG3go2PfhwUA%2Bft9Kt6ltHWK
o%0AtTxS5M8me0QFuVCmM8uyaiZVcbLimF88x8scq%2FFIsPoFCmROWqOQ0BfmPFvhlzh1w
sB9YfNb3LuS%0AIsgnnb%2F298S4azZ8SBW7QmkSOCmF%2BQbBCKJPiVLOQwWTYW79h9xxZ
c8G7K8ZIHAL83HirmFkg7fa%0A4N%2FFleC4dS5kKBIolMlTwZ6tMxuOVkDjT4941nVJSvt
4ekUWtPAGov9LmHM%2FqolPB2TIgekGZkeQ%0At97I2jq4E9bd%2B0waiw%2BovLEltNbXg
6y96nI934mhN27Om4IvTf3O8s4ncGGabZmYtdRZreRd%2FalT%0AFn2jLzReF7Uk260Ffrx
syNmj1BnupUUXh3oZybpvGv25bxidmVmz%2BoP5dDYW8U1tWnaWwSJa9J7R%0AqLNmlw%2B
cmuFgwyfCovFg4cPW8WqiLByWwkbmys%2FO8tC1rVkzHCZ7PR0LyR8kJCPnpgGDSXIYzafW
%0AOHoViWc%2BNeqyG2F3uBwZdsAtpZss3fz0g3JXN5i7vAffrsniJ6D9BQ%3D%3D&Relay
State=http%3A%2F%2Ftest.com%2Fvideo&SigAlg=rsasha1&Signature=Y1H5Hzy23ImzN59xvfm2K%2BoQ%2Bj76dVfqlm0qsj1DIxuVB3irxGnd
nYsr4jSBwlbmQum%2FHCH8Kre0%0AiCwfvEa0XzoV%2BJcjA%2BK1FuUxFQXXVkGCTfC%2F
F4g6ZU9qnKsMo%2BRE19T1OSno%2BdOF%2B5oiI7F50mIu%0Ax2J6c1gNGXTcnLP8DuA%3D
Sample <RESPONSE> element NOT BASE64ENCODED:
<?xml version="1.0" encoding="UTF-8"?>
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
ID="IaqQrsXEBG" IssueInstant="2009-09-04T17:50:10.304Z" Version="2.0">
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
</samlp:Status>
<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="gzTpHdtJoT" IssueInstant="2009-09-04T17:50:10.308Z" Version="2.0">
<saml:Issuer>https://dev-idp.dtvce.com
</saml:Issuer>
<saml:Subject>
<saml:NameID Format="DUID">MTY3MQ==</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:2.0:cm:holder-ofkey">
<saml:SubjectConfirmationData
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="saml:KeyInfoConfirmationDataType">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:KeyName>test_server_publickey</ds:KeyName>
</ds:KeyInfo>
</saml:SubjectConfirmationData>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:AttributeStatement>
<saml:Attribute Name="SPID">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:string">
00000002
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="eToken">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:string">
bGQ42OynI9iMciMB19qdQTqboBl5cGw3R2Jn+ka3nhDhNwAgC/FfbpedR8W81f3UfBYEfse
XMMA9sM4ubg9v5OB+2fIK16zX4rwvh10RY69wL3BPx3XColD+n9DfMIKWfIIBVM4TKNWUVR
2o74U+bYiXmXFZnQBhceseUMlNk0r1X6JToyqbd4291yY1k9/+ZbYyCaTV8lPrxDuR1rjn1
rQb76eiSryQWUTRmz2sdMO659cmocPYQIai/Y37wuk
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 9
Confidential – Partner
July 17, 2009
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
</samlp:Response>
At this point the Service Provider (SP) gets the Token from the Assertion’s eToken
attribute parameter's value, and sends it to the Identity Provider using SOAP over a
mutually authenticated HTTPS connection, the details of which are described in the
DTV-IdP’s Authorization document: DTV-IdP-Authorization-ExternalIntegration-x.x.doc
HTTP POST Binding: The Assertion element of the SAML Response for HTTP Post binding is
XML Encrypted. The encryption is done using symmetric key encryption. The key used for the
encryption is RSA encrypted using client public certificate. Once the client receives the response,
client can use their private key to decrypt the encrypted symmetric key. After this use the
decrypted symmetric key to decipher the assertion element.
Sample Request POST Data
<input type="hidden" name="SAMLRequest"
value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c2FtbHA6QXV0
aG5SZXF1ZXN0IHhtbG5zOnNhbWxwPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6cHJ
vdG9jb2wiIEFzc2VydGlvbkNvbnN1bWVyU2VydmljZVVSTD0iaHR0cDovLzEwLjIzLjE4Mi
4yMzo4MDgwL2R0di1pZHAtY2xpZW50L2NvbnN1bWVBc3J0biIgSUQ9Il9tbWQyMjIiIElzc
3VlSW5zdGFudD0iMjAwOS0wOS0wNFQxNzo1Mzo1OC4xNDVaIiBWZXJzaW9uPSIyLjAiPjxz
YW1sOklzc3VlciB4bWxuczpzYW1sPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YXN
zZXJ0aW9uIiBTUFByb3ZpZGVkSUQ9IjAwMDAwMDAyIj5odHRwOi8vMTAuMjMuMTgyLjIzOj
gwODAvZHR2LWlkcC1jbGllbnQvPC9zYW1sOklzc3Vlcj48ZHM6U2lnbmF0dXJlIHhtbG5zO
mRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4KPGRzOlNpZ25lZElu
Zm8+CjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaWcjIj4KPGRzOlNpZ25lZEl
uZm8+aXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+Cj
xkczpTaWdubT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+Y
XR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRz
aWcjcnNhLXNoYTEiLz4KPGRzOlJlZmVyZW5jZSBVUkk9IiNfbW1kMjIyIj4KPGRzOlRyYW5
zZm9ybXM+CjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMD
AwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPgo8ZHM6VHJhbnNmb3JtIEFsZ
29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIj48ZWM6
SW5jbHVzaXZlTmFtZXNwYWNlcyB4bWxuczplYz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8
xMC94bWwtZXhjLWMxNG4jIiBQcmVmaXhMaXN0PSJkcyBzYW1sIHNhbWxwIi8+PC9kczpUcm
Fuc2Zvcm0+CjwvZHM6VHJhbnNmb3Jtcz4KaXN0PSJkcyBzYW1sIHNhbWxwIi8+PC9kczpUc
mFuc2Zvcm0+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvMDkveG1sZHNpZyNzaGExIi8+CjxkczpEaWdlc3RWYWx1ZT5WNzR5OHpQMGJaczE
4djFRc2pDcExxRUlEMjA9ZyNzaGExIi8+PC9kczpEaWdlc3RWYWx1ZT4KPC9kczpSZWZlcm
VuY2U+CjwvZHM6U2lnbmVkSW5mbz4KPGRzOlNpczpEaWdlc3RWYWx1ZT4KPC9kczpSZWZlc
mVuY2U+Z25hdHVyZVZhbHVlPgpTS2dDekd1N3F0TzN2aVhJQmN4RVlGV3hsWmNodEc4bXJy
TStBTkFYUHhRTDlWSFhlNkNaTERiNWJCcExSekZwU3A3Tyt4UGwzc3IwCmFQVVpaWFIzdGF
0SnNiV1hhOXd3aU9Cc1Q3d3BYMThRMlBUbXJMcFFuTU4wYWhKUEh4WUpVZU9MTlRHWithQl
NvL2hMT3VNSm8rN1oKb0JZa0lBVDJocFZ4dzBzUURlQT0KPC9kczpTaWduYXR1cmVWYWx1Z
T4KPC9kczpTaWduYXR1cmU+PHNhVDJocFZ4dzBzUURlQT0KPC9kczpTaWduYXR1cmVWYWx1
ZT4KPC9kczpTaWduYXR1cmU+bWw6U3ViamVjdCB4bWxuczpzYW1sPSJ1cm46b2FzaXM6bmF
tZXM6dGM6U0FNTDoyLjA6YXNzZXJ0aW9uIj48c2FtbDpTdWJqZWN0Q29uZmlybWF0aW9uIE
1ldGhvZD0idXJuOm9hc2lzOm5hbWVzOnRjOjIuMDpjbTpob2xkZXItb2Yta2V5Ij48c2Ftb
DpTdWJqZWN0Q29uZmlybWF0aW9uRGF0YSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3Jn
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 10
Confidential – Partner
July 17, 2009
LzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6dHlwZT0ic2FtbDpLZXlJbmZvQ29uZml
ybWF0aW9uRGF0YVR5cGUiPjxkczpLZXlJbmZvIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm
9yZy8yMDAwLzA5L3htbGRzaWcjIj48ZHM6S2V5TmFtZT50ZXN0X2NsaWVudF9wdWJsaWNrZ
Xk8L2RzOktleU5hbWU+PC9kczpLZXlJbmZvPjwvc2FtbDpTdWJqZWN0Q29udF9wdWJsaWNr
ZXk8L2RzOktleU5hbWU+ZmlybWF0aW9uRGF0YT48L3NhbWw6U3ViamVjdENvbmZpcm1hdGl
vbj48L3NhbWw6U3ViamVjdD48L3NhbWxwOkF1dGhuUmVxdWVzdD4=">
<input type="hidden" name="RelayState" value="http://test.com/video">
Before Base64 Encoding the SAML Request
<?xml version="1.0" encoding="UTF-8"?>
<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
AssertionConsumerServiceURL=http://test/dtv-idp-client/consumeAsrtn”
ID="_mmd222" IssueInstant="2009-09-04T17:52:11.530Z" Version="2.0">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
SPProvidedID="00000002">http://test/dtv-idp-client/
</saml:Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#" />
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsasha1" />
<ds:Reference URI="#_mmd222">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#envelopedsignature" />
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-excc14n#"
PrefixList="ds saml samlp" />
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<ds:DigestValue>dRj9WltSsAgONHNsZ52osLzKYnQ=
</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
U22Mo9SDC/PEgCHLGLul/jnED9MhSnJhfL8ue1M6WswTdbfiMAmaWAGKnc8LpsuZJ
+LZ0O8yaJB8Ht48+TLzNSeibDwy03e22ymjqvcJRtYR3dAO//BBKWgv/Wiu/koOBWmP9Le/
XQ4FeiAqFe2XZotLaBDvIcqH0GbclBypkjY=
</ds:SignatureValue>
</ds:Signature>
<saml:Subject xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
<saml:SubjectConfirmation Method="urn:oasis:names:tc:2.0:cm:holder-ofkey">
<saml:SubjectConfirmationData
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="saml:KeyInfoConfirmationDataType">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:KeyName>test_client_publickey</ds:KeyName>
</ds:KeyInfo>
</saml:SubjectConfirmationData>
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 11
Confidential – Partner
July 17, 2009
</saml:SubjectConfirmation>
</saml:Subject>
</samlp:AuthnRequest>
Sample Response POST Data
<input type="hidden" name="SAMLResponse"
value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c2FtbH
A6UmVzcG9uc2UgeG1sbnM6c2FtbHA9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpwc
m90b2NvbCIgSUQ9Im5DeEJtZ3lJelMiIElzc3VlSW5zdGFudD0iMjAwOS0wOS0wNFQxNzo1
NTo0Ny44NTVaIiBWZXJzaW9uPSIyLjAiPjxzYW1scDpTdGF0dXM+PHNhbWxwOlN0YXR1c0N
vZGUgVmFsdWU9InVybjpvYXNpczpuLjAiPjxzYW1scDpTdGF0dXM+YW1lczp0YzpTQU1MOj
IuMDpzdGF0dXM6U3VjY2VzcyIvPjwvc2FtbHA6U3RhdHVzPjxzYW1sOkFzc2VydGlvbiB4b
WxuczpzYW1sPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YXNzZXJ0aW9uIiBJRD0i
YmtCaWFwQ21TQSIgSXNzdWVJbnN0YW50PSIyMDA5LTA5LTA0VDE3OjU1OjQ3Ljg1NVoiIFZ
lcnNpb249IjIuMCI+PHNhbWw6SXNzdWVyPmh0dHBzOi8vZGV2LWlkcC5kdHZjZS5jb208L3
NhcnNpb249IjIuMCI+bWw6SXNzdWVyPjxkczpTaWduYXR1cmUgeG1sbnM6ZHM9Imh0dHA6L
y93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPgo8ZHM6U2lnbmVkSW5mbyB4bWxuczpk
cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+CjxkczpDYW5vbmljYWx
pemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iMC8wOS94bWxkc2lnIyI+aHR0cDovL3d3dy53My
5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIiB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vc
mcvMjAwMC8wOS94bWxkc2lnIyIvPgo8ZHM6U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3JzYS1zaGExIiB4bWxuczpkcz0
iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIvPgo8ZHM6UmVmZXJlbmNlIF
VSST0iI2JrQmlhcENtU0EiIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L
3htbGRzaWcjIj4KPGRzOlRyYW5zZm9ybXMgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvMDkveG1sZHNpZyMiPgo8ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d
3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiIHhtbG5zOm
RzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIi8+CjxkczpUcmFuc2Zvc
m0gQWxnb3JpdGhtPSJodHRwOi8vZy8yMDAwLzA5L3htbGRzaWcjIi8+d3d3LnczLm9yZy8y
MDAxLzEwL3htbC1leGMtYzE0biMiIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDA
wLzA5L3htbGRzaWcjIj48ZWM6SW5jbHVzaXZlTmFtZXNwYWNlcyB4bWxuczplYz0iaHR0cD
ovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIiBQcmVmaXhMaXN0PSJkcyBzY
W1sIHhzIi8+PC9kczpUcmFuc2Zvcm0+CjwvZHM6VHJhbnNmb3Jtcz4KPGRzOkRpZ2VzdE1l
dGhvIHhzIi8+PC9kczpUcmFuc2Zvcm0+ZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3J
nLzIwMDAvMDkveG1sZHNpZyNzaGExIiB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMj
AwMC8wOS94bWxkc2lnIyIvPgo8ZHM6RGlnZXN0VmFsdWUgeG1sbnM6ZHM9Imh0dHA6Ly93d
3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPlUzTWtrelhlODNtT2JUVzgzRi9CdkxvL3kv
ST08L2RzOkRpZ2VzdFZhbHVlPgo8L2RzOlJlZmVyZW5jZT4KPC9kczpTaWduZWRJbmZvPgo
8ZHM6U2lnbmF0dXJlVmFsdWUgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMD
kveG1sZHNpZyMiPgpMMitXVUkvVnJvdW1NZ05uSFRJZFlCTUp6QlJIUEdIOGNOd0ZpZ3V6c
jFEclZSUFoyUDFybU5MM2p5S0wxbC9XdktoMkRpNEU5T2FXCllBNGxDZVJPVUk5YnEwclIx
dTMxVURuZGMyQndXeEtGdWUvdkx3WkQwTTl5Yzk5azZJa05GbWY0eTMrcTZjekZzVk5GdFB
yUDZENkIKb2JEVTAyZmRnUWcrOXZ3eGYzRT0KPC9kczpTaWduYXR1cmVWYWx1ZT4KPC9kcz
pTaWduYXR1cmU+PHNhbWw6U3ViamVjdD48c2FtbDpOYW1lSUQgRm9ybWF0PSJEVUlEIj5NV
FkzTVE9PTwvcmU+c2FtbDpOYW1lSUQ+PHNhbWw6U3ViamVjdENvbmZpcm1hdGlvbiBNZXRo
b2Q9InVybjpvYXNpczpubDpOYW1lSUQ+YW1lczp0YzoyLjA6Y206aG9sZGVyLW9mLWtleSI
+PHNhbWw6S2V5SW5mb0NvbmZpcm1hdGlvbkRhczp0YzoyLjA6Y206aG9sZGVyLW9mLWtleS
I+dGFUeXBlPjxkczpLZXlJbmZvIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL
zA5L3htbGRzaWcjIj48ZHM6S2V5TmFtZT50ZXN0X3NlcnZlcl9wdWJsaWNfa2V5PC9kczpL
ZXlOYW1lPjwvZHM6S2V5SW5mbz48L3NhbWw6S2V5SW5mb0NvbmZpcm1hdGlvbkRhdGFUeXB
lPjwvc2FtbDpTdWJqZWN0Q29uZmlybWF0aW9uPjwvc2FtbDpTdWJqZWN0PjxzYW1sOkF0dH
JpYnV0ZVN0YXRlbWVudD48c2FtbDpBdHRyaWJ1dGUgTmFtZT0iU1BJRCI+PHNhbWw6QXR0c
mlidXRlVmFsdWUgeG1sbnM6eHM9bDpBdHRyaWJ1dGUgTmFtZT0iU1BJRCI+Imh0dHA6Ly93
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 12
Confidential – Partner
July 17, 2009
d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3J
nLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6dHlwZT0ieHM6c3RyaW5nIj4wMDAwMD
AwMjwvc2FtbDpBdHRyaWJ1dGVWYWx1ZT48L3NhbWw6QXR0cmlidXRlPjxzYW1sOkF0dHJpY
nV0ZSBOYW1lPSJlVG9rZW4iPjxzYW1sOkF0dHJpYnV0ZVZhbHVlIHhtbG5zOnhzPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3Lnc
zLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnR5cGU9InhzOnN0cmluZyI+Yk
dRNDJPeW5JOWlNY2lNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnR5cGU9InhzOnN0cmluZyI+Q
jE5cWRRVHFib0JsNWNHdzNSMkpuK2thM25oRGhOd0FnQy9GZmJwZWRSOFc4MWYzVWZCWUVm
c2VYTU1BOXNNNHViZ2c5djVPQisyZklLMTZ6WDRyd3ZoMTBSWTY5d0wzQlB4M1hDb2xEK24
5RGZNSUtXZklJQlZNNFRLTldVVlIybzc0VStiWWlYbVhGWm5RQmhjZXNlVU1sTmswcjFYNk
pUb3lxYmQ0MjkxeVkxazkvK1piWXlDYVRWOGxQcnhEdVIxcmpuMXJRYjc2ZWlTcnlRV1VUU
m16MnNkTU82NTljbW9jUFlRSWFpL1kzN3d1azwvc2FtbDpBdHRyaWJ1dGVWYWx1ZT48L3Nh
bWw6QXR0cmlidXRlPjwvc2FtbDpBdHRyaWJ1dGVTdGF0ZW1lbnQ+PC9zYW1sOkFzc2VydGl
vbj48L3NhbWxwOlJlc3BvbnNlPg==dHRyaWJ1dGVTdGF0ZW1lbnQ+">
<input type="hidden" name="RelayState"
value="http://test.com/video">
Before Base 64 Encoding:
<?xml version="1.0" encoding="UTF-8"?>
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
ID="nCxBmgyIzS" IssueInstant="2009-09-04T17:55:47.855Z" Version="2.0">
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
</samlp:Status>
<saml:EncryptedAssertion
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
<xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
Id="_732385b2df8c5246e3487b4e15d25239"
Type="http://www.w3.org/2001/04/xmlenc#Element">
<xenc:EncryptionMethod
Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"/>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:RetrievalMethod
Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey"
URI="#_5a75f4ac2a0684834e1af83afb788504"/>
</ds:KeyInfo>
<xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<xenc:CipherValue
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">YVh8NKUiVERxc+gxToqbFdSV
QEDBUNTbywIzZCpZFl+5c7bwLnCYJxEniv9H6R3QBjse+7iz5HXWd6HPRt8+aN2pwByJBOu
W0yNjngDk+kyxEKde4Ak/iWFdzw+27WOkccf+0N8JOjYMZt/KpCJAd6HPRt8+aN2pwByJBO
uW0yNjngDk+AZJe1/i1tw58nYTT1PwD6EB1X5aesSSCsUFos8rOoxoFNMBUfFqJgXPVGtc4
8jnhvVOH0U452iquXkNGDnOGbjP5Oa3caiJWUufRfSfxYQsr4MV4kvcN9mdD0wn1TcL330z
nAc2ROskJKx+F+hKym1eYDnOGbjP5Oa3caiJWUufRfSfxYQsr4MV4kvcN9mdD0wn1TcL330
znAc2ROskJKx+F+2V//2ozlU6+a7GK46SG4/MmKiyMZrFvvSr2IrE+IiVSFWgcN53KvGWtw
Jsol81nl5gRUFd+dnK322ozlU6+EgwG+m1STMwrbuDrypmlnWfIU/WP10a1KrWl1XlU4afM
WmmwCFLkkTIwPhJzZqRS+BIzR8TVdURU+1E6PAYFp7qXnST+LRz9ZWwHNOfuvDEodci3ddm
NKTMXtx6c/srZWQul4mNgvLjN+VXkK0QuuORMoAYFp7qXnST+4gR91uixGHzS/+JXimQfIC
jHK1nbqgI8MnhjR49UIRsK5lHZwTGRu0dtgWVsHGZ0BJvx3VS2AAjS7jrC8C5zd6+NI7vdQ
PtRKZ2IVJPUw+l0SobNr4251J+kbVid0ZiMrQ+jVtOPh8eQr5SQgot78Pwj8C5zd6+NI7vd
QPtRKZ2IVJPUw+l0SobNr4251J+kbVid0ZiMrQ+E6Fb/NCupp2go0bN/dTbjgkc/ZML1Yif
JXYzrnSWETjxPpGrsxjISQnohoHN+blRki1QMpA6Lf6u1o8SrbcsO1eXlgSfbb6MFCZHdcg
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 13
Confidential – Partner
July 17, 2009
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
fTcbWwg88FK+S4hrGn/U2IogkNtgfA==
</xenc:CipherValue>
</xenc:CipherData>
</xenc:EncryptedData>
<xenc:EncryptedKey xmlns:xenc=http://www.w3.org/2001/04/xmlenc#
Id="_5a75f4ac2a0684834e1af83afb788504">
<xenc:EncryptionMethod
Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"/>
<xenc:CipherData
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<xenc:CipherValue
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">ZDkqq44Z64ag5uC25WsaBTe7
ThwOkgwYF7qOPe21OzQQQlvTi9n1hENbrHmDKPqTQr7uc4w/gsW8
ZJzo7w1BOnQ5cTYTLUwfZcKrv/fQyeaoEyRYB8UhfvskiuttZ9qMJPggpB6lTwh5QHeUrtL
PBhlWoMjwvzqJ0zOmO3rH7V4=
</xenc:CipherValue>
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 14
Confidential – Partner
July 17, 2009
</xenc:CipherData>
<xenc:ReferenceList>
<xenc:DataReference
URI="#_732385b2df8c5246e3487b4e15d25239"/>
</xenc:ReferenceList>
</xenc:EncryptedKey>
</saml:EncryptedAssertion>
</samlp:Response>
Unencrypted Assertion:
<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="bkBiapCmSA" IssueInstant="2009-09-04T17:55:47.855Z"
Version="2.0">
<saml:Issuer>https://dev-idp.dtvce.com
</saml:Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" />
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsasha1"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" />
<ds:Reference URI="#bkBiapCmSA"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:Transforms xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#envelopedsignature"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" />
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xmlexc-c14n#"
PrefixList="ds saml xs" />
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" />
<ds:DigestValue xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
U3MkkzXe83mObTW83F/BvLo/y/I=
</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
L2+WUI/VroumMgNnHTIdYBMJzBRHPGH8cNwFiguzr1DrVRPZ2P1rmNL3jyKL1l/WvKh2Di4
E9OaWYA4lCeROUI9bq0rR1u31UDndc2BwWxKFue/vLwZD0M9yc99k6IkNFmf4y3+q6czFsV
NFtPrP6D6BobDU02fdgQg+9vwxf3E=
</ds:SignatureValue>
</ds:Signature>
<saml:Subject>
<saml:NameID Format="DUID">MTY3MQ==</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:2.0:cm:holder-ofkey">
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 15
Confidential – Partner
July 17, 2009
<saml:SubjectConfirmationData
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="saml:KeyInfoConfirmationDataType">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:KeyName>test_server_publickey</ds:KeyName>
</ds:KeyInfo>
</saml:SubjectConfirmationData>
</saml:SubjectConfirmation
</saml:Subject>
<saml:AttributeStatement>
<saml:Attribute Name="SPID">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:string">
00000002
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="eToken">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:string">
bGQ42OynI9iMciMB19qdQTqboBl5cGw3R2Jn+ka3nhDhNwAgC/FfbpedR8W81f3Uf
BYEfseXMMA9sM4ubgg9v5OB+2fIK16zX4rwvh10RY69wL3BPx3XColD+n9DfMIKWfIIBVM4
TKNWUVR2o74U+bYiXmXFZnQBhceseUMlNk0r1X6JToyqbd4291yY1k9/+ZbYyCaTV8lPrxD
uR1rjn1rQb76eiSryQWUTRmz2sdMO659cmocPYQIai/Y37wuk
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
4 SP features required for Authentication
This document does not address the following features they need to be addressed by the
SP:
 Session management for the user in context of the Web Application (Service
Provider).
 The details of maintaining the cookies and their expiration times.
5 Common Domain Cookie Support
DTV-IdP will include support for writing to Common Domain Cookie as specified in
Section 4.3 of “saml-profiles-2.0-os.pdf”. Service Providers would need to read the
common domain cookie to determine if the browser is already has a profile with DTVIdP. The naming convention and the contents within a Common Domain Cookie strictly
adhere to Sections 4.3.1, 4.3.2 and 4.3.3 of “saml-profiles-2.0-os.pdf”. The detailed
specification/documentation about DTV_IDP Discovery Service and Writer Service will
be released later.
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 16
Confidential – Partner
July 17, 2009
DTVIdPRevokeToken: A call to this method revokes the Token. Once a Token is
revoked it is no longer valid. (TBD)
DTVIdPTokenInfo: A call to this method verifies whether a specified Token is valid
and returns data associated with the Token. (TBD)
7 Error Codes
If DTV-IdP’s request fails, you may receive any of a variety of HTTP error status codes
in response. In particular, if the problem is with the account itself (rather than the
authentication token as such), you'll receive one of the following 403 errors:


403 Account disabled
403 Account deleted
If the problem is with the authentication Assertion, following errors will be in response:






401
401
401
401
401
401
Assertion invalid
Signature Verification Failed
Authentication Request does not confirm to the schema.
Assertion disabled
Assertion expired
Assertion revoked
Error responses may also include a DTVIdP-Authentication header, such as the
following:
DTVIdP-Authentication: DTVAuthn realm="https://idp-sandboxdirectv.com/authenticate/SAMLAuthRequest"
That header provides information about how and where to authenticate correctly.
8 References
1. Security Assertion Markup Language (SAML) V2.0 Overview:
http://docs.oasis-open.org/security/saml/v2.0/saml-2.0-os.zip
2. Schemas for SAML queries and responses: saml-schema-protocol-2.0.xsd
DirecTV IdP Authentication Specification
DIRECTV Confidential
Do not copy without prior DIRECTV authorization
Page 17