Saml Profiles 2.0 Os
Saml Profiles 2.0 Os
Profiles for the OASIS Security Assertion Markup Language (SAML) V2.0
OASIS Standard, 15 March 2005
Document identifier: saml-profiles-2.0-os Location: http://docs.oasis-open.org/security/saml/v2.0/ Editors: John Hughes, Atos Origin Scott Cantor, Internet2 Jeff Hodges, Neustar Frederick Hirsch, Nokia Prateek Mishra, Principal Identity Rob Philpott, RSA Security Eve Maler, Sun Microsystems SAML V2.0 Contributors: Conor P. Cahill, AOL John Hughes, Atos Origin Hal Lockhart, BEA Systems Michael Beach, Boeing Rebekah Metz, Booz Allen Hamilton Rick Randall, Booz Allen Hamilton Thomas Wisniewski, Entrust Irving Reid, Hewlett-Packard Paula Austel, IBM Maryann Hondo, IBM Michael McIntosh, IBM Tony Nadalin, IBM Nick Ragouzis, Individual Scott Cantor, Internet2 RL 'Bob' Morgan, Internet2 Peter C Davis, Neustar Jeff Hodges, Neustar Frederick Hirsch, Nokia John Kemp, Nokia Paul Madsen, NTT Steve Anderson, OpenNetwork Prateek Mishra, Principal Identity John Linn, RSA Security Rob Philpott, RSA Security Jahan Moreh, Sigaba Anne Anderson, Sun Microsystems
saml-profiles-2.0-os Copyright OASIS Open 2005. All Rights Reserved. 15 March 2005 Page 1 of 66
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
Eve Maler, Sun Microsystems Ron Monzillo, Sun Microsystems Greg Whitehead, Trustgenix Abstract: This specification defines profiles for the use of SAML assertions and request-response messages in communications protocols and frameworks, as well as profiles for SAML attribute value syntax and naming conventions. Status: This is an OASIS Standard document produced by the Security Services Technical Committee. It was approved by the OASIS membership on 1 March 2005. Committee members should submit comments and potential errata to the [email protected] list. Others should submit them by filling out the web form located at http://www.oasis-open.org/committees/comments/form.php?wg_abbrev=security. The committee will publish on its web page (http://www.oasis-open.org/committees/security) a catalog of any changes made to this document. For information on whether any patents have been disclosed that may be essential to implementing this specification, and any offers of patent licensing terms, please refer to the Intellectual Property Rights web page for the Security Services TC (http://www.oasisopen.org/committees/security/ipr.php).
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
Table of Contents
1 Introduction.................................................................................................................................................. 7 1.1 Profile Concepts..................................................................................................................................7 1.2 Notation................................................................................................................................................7 2 Specification of Additional Profiles............................................................................................................10 2.1 Guidelines for Specifying Profiles......................................................................................................10 2.2 Guidelines for Specifying Attribute Profiles........................................................................................10 3 Confirmation Method Identifiers................................................................................................................12 3.1 Holder of Key.....................................................................................................................................12 3.2 Sender Vouches................................................................................................................................. 2 1 3.3 Bearer................................................................................................................................................13 4 SSO Profiles of SAML...............................................................................................................................14 4.1 Web Browser SSO Profile.................................................................................................................14 4.1.1 Required Information..................................................................................................................14 4.1.2 Profile Overview.......................................................................................................................... 4 1 4.1.3 Profile Description....................................................................................................................... 6 1 4.1.3.1 HTTP Request to Service Provider.....................................................................................16 4.1.3.2 Service Provider Determines Identity Provider................................................................... 16 4.1.3.3 <AuthnRequest> Is Issued by Service Provider to Identity Provider...................................16 4.1.3.4 Identity Provider Identifies Principal....................................................................................17 4.1.3.5 Identity Provider Issues <Response> to Service Provider..................................................17 4.1.3.6 Service Provider Grants or Denies Access to User Agent..................................................17 4.1.4 Use of Authentication Request Protocol.....................................................................................18 4.1.4.1 <AuthnRequest> Usage......................................................................................................18 4.1.4.2 <Response> Usage............................................................................................................. 8 1 4.1.4.3 <Response> Message Processing Rules...........................................................................19 4.1.4.4 Artifact-Specific <Response> Message Processing Rules.................................................20 4.1.4.5 POST-Specific Processing Rules........................................................................................20 4.1.5 Unsolicited Responses...............................................................................................................20 4.1.6 Use of Metadata.........................................................................................................................20 4.2 Enhanced Client or Proxy (ECP) Profile............................................................................................21 4.2.1 Required Information..................................................................................................................21 4.2.2 Profile Overview.......................................................................................................................... 1 2 4.2.3 Profile Description....................................................................................................................... 4 2 4.2.3.1 ECP issues HTTP Request to Service Provider.................................................................24 4.2.3.2 Service Provider Issues <AuthnRequest> to ECP..............................................................25 4.2.3.3 ECP Determines Identity Provider.......................................................................................25 4.2.3.4 ECP issues <AuthnRequest> to Identity Provider...............................................................25 4.2.3.5 Identity Provider Identifies Principal....................................................................................25 4.2.3.6 Identity Provider issues <Response> to ECP, targeted at service provider....................... 26 4.2.3.7 ECP Conveys <Response> Message to Service Provider................................................. 26 4.2.3.8 Service Provider Grants or Denies Access to Principal......................................................26 4.2.4 ECP Profile Schema Usage.......................................................................................................26 4.2.4.1 PAOS Request Header Block: SP to ECP..........................................................................27 4.2.4.2 ECP Request Header Block: SP to ECP.............................................................................28 4.2.4.3 ECP RelayState Header Block: SP to ECP.........................................................................28
saml-profiles-2.0-os Copyright OASIS Open 2005. All Rights Reserved. 15 March 2005 Page 3 of 66
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
4.2.4.4 ECP Response Header Block: IdP to ECP.........................................................................29 4.2.4.5 PAOS Response Header Block: ECP to SP.......................................................................30 4.2.5 Security Considerations..............................................................................................................31 4.3 Identity Provider Discovery Profile.....................................................................................................31 4.3.1 Common Domain Cookie...........................................................................................................31 4.3.2 Setting the Common Domain Cookie.........................................................................................32 4.3.3 Obtaining the Common Domain Cookie.....................................................................................32 4.4 Single Logout Profile..........................................................................................................................32 4.4.1 Required Information..................................................................................................................33 4.4.2 Profile Overview.......................................................................................................................... 3 3 4.4.3 Profile Description....................................................................................................................... 4 3 4.4.3.1 <LogoutRequest> Issued by Session Participant to Identity Provider................................ 34 4.4.3.2 Identity Provider Determines Session Participants.............................................................35 4.4.3.3 <LogoutRequest> Issued by Identity Provider to Session Participant/Authority................. 35 4.4.3.4 Session Participant/Authority Issues <LogoutResponse> to Identity Provider................... 36 4.4.3.5 Identity Provider Issues <LogoutResponse> to Session Participant...................................36 4.4.4 Use of Single Logout Protocol....................................................................................................37 4.4.4.1 <LogoutRequest> Usage....................................................................................................37 4.4.4.2 <LogoutResponse> Usage.................................................................................................37 4.4.5 Use of Metadata.........................................................................................................................37 4.5 Name Identifier Management Profile.................................................................................................37 4.5.1 Required Information..................................................................................................................38 4.5.2 Profile Overview.......................................................................................................................... 8 3 4.5.3 Profile Description....................................................................................................................... 8 3 4.5.3.1 <ManageNameIDRequest> Issued by Requesting Identity/Service Provider.....................39 4.5.3.2 <ManageNameIDResponse> issued by Responding Identity/Service Provider................. 39 4.5.4 Use of Name Identifier Management Protocol...........................................................................40 4.5.4.1 <ManageNameIDRequest> Usage.....................................................................................40 4.5.4.2 <ManageNameIDResponse> Usage..................................................................................40 4.5.5 Use of Metadata.........................................................................................................................40 5 Artifact Resolution Profile..........................................................................................................................41 5.1 Required Information.........................................................................................................................41 5.2 Profile Overview.................................................................................................................................41 5.3 Profile Description..............................................................................................................................42 5.3.1 <ArtifactResolve> issued by Requesting Entity..........................................................................42 5.3.2 <ArtifactResponse> issued by Responding Entity......................................................................42 5.4 Use of Artifact Resolution Protocol....................................................................................................42 5.4.1 <ArtifactResolve> Usage............................................................................................................42 5.4.2 <ArtifactResponse> Usage.........................................................................................................43 5.5 Use of Metadata................................................................................................................................. 3 4 6 Assertion Query/Request Profile...............................................................................................................44 6.1 Required Information.........................................................................................................................44 6.2 Profile Overview.................................................................................................................................44 6.3 Profile Description..............................................................................................................................45 6.3.1 Query/Request issued by SAML Requester...............................................................................45 6.3.2 <Response> issued by SAML Authority.....................................................................................45
saml-profiles-2.0-os Copyright OASIS Open 2005. All Rights Reserved. 15 March 2005 Page 4 of 66
156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
6.4 Use of Query/Request Protocol.........................................................................................................45 6.4.1 Query/Request Usage................................................................................................................45 6.4.2 <Response> Usage....................................................................................................................45 6.5 Use of Metadata................................................................................................................................. 6 4 7 Name Identifier Mapping Profile................................................................................................................47 7.1 Required Information.........................................................................................................................47 7.2 Profile Overview.................................................................................................................................47 7.3 Profile Description..............................................................................................................................48 7.3.1 <NameIDMappingRequest> issued by Requesting Entity..........................................................48 7.3.2 <NameIDMappingResponse> issued by Identity Provider.........................................................48 7.4 Use of Name Identifier Mapping Protocol..........................................................................................48 7.4.1 <NameIDMappingRequest> Usage............................................................................................48 7.4.2 <NameIDMappingResponse> Usage.........................................................................................48 7.4.2.1 Limiting Use of Mapped Identifier........................................................................................49 7.5 Use of Metadata................................................................................................................................. 9 4 8 SAML Attribute Profiles.............................................................................................................................50 8.1 Basic Attribute Profile.........................................................................................................................50 8.1.1 Required Information..................................................................................................................50 8.1.2 SAML Attribute Naming..............................................................................................................50 8.1.2.1 Attribute Name Comparison................................................................................................50 8.1.3 Profile-Specific XML Attributes...................................................................................................50 8.1.4 SAML Attribute Values................................................................................................................ 0 5 8.1.5 Example......................................................................................................................................50 8.2 X.500/LDAP Attribute Profile..............................................................................................................50 8.2.1 Required Information..................................................................................................................51 8.2.2 SAML Attribute Naming..............................................................................................................51 8.2.2.1 Attribute Name Comparison................................................................................................51 8.2.3 Profile-Specific XML Attributes...................................................................................................51 8.2.4 SAML Attribute Values................................................................................................................ 1 5 8.2.5 Profile-Specific Schema.............................................................................................................52 8.2.6 Example......................................................................................................................................53 8.3 UUID Attribute Profile.........................................................................................................................53 8.3.1 Required Information..................................................................................................................53 8.3.2 UUID and GUID Background......................................................................................................53 8.3.3 SAML Attribute Naming..............................................................................................................54 8.3.3.1 Attribute Name Comparison................................................................................................54 8.3.4 Profile-Specific XML Attributes...................................................................................................54 8.3.5 SAML Attribute Values................................................................................................................ 4 5 8.3.6 Example......................................................................................................................................54 8.4 DCE PAC Attribute Profile.................................................................................................................. 5 5 8.4.1 Required Information..................................................................................................................55 8.4.2 PAC Description.........................................................................................................................55 8.4.3 SAML Attribute Naming..............................................................................................................55 8.4.3.1 Attribute Name Comparison................................................................................................55
saml-profiles-2.0-os Copyright OASIS Open 2005. All Rights Reserved. 15 March 2005 Page 5 of 66
200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219
8.4.4 Profile-Specific XML Attributes...................................................................................................55 8.4.5 SAML Attribute Values................................................................................................................ 6 5 8.4.6 Attribute Definitions..................................................................................................................... 6 5 8.4.6.1 Realm..................................................................................................................................56 8.4.6.2 Principal...............................................................................................................................57 8.4.6.3 Primary Group.....................................................................................................................57 8.4.6.4 Groups................................................................................................................................. 7 5 8.4.6.5 Foreign Groups...................................................................................................................57 8.4.7 Example......................................................................................................................................58 8.5 XACML Attribute Profile.....................................................................................................................58 8.5.1 Required Information..................................................................................................................59 8.5.2 SAML Attribute Naming..............................................................................................................59 8.5.2.1 Attribute Name Comparison................................................................................................59 8.5.3 Profile-Specific XML Attributes...................................................................................................59 8.5.4 SAML Attribute Values................................................................................................................ 9 5 8.5.5 Profile-Specific Schema.............................................................................................................59 8.5.6 Example......................................................................................................................................60 9 References................................................................................................................................................61 Appendix A. Acknowledgments....................................................................................................................64 Appendix B. Notices.....................................................................................................................................66
1 Introduction
This document specifies profiles that define the use of SAML assertions and request-response messages in communications protocols and frameworks, as well as profiles that define SAML attribute value syntax and naming conventions. The SAML assertions and protocols specification [SAMLCore] defines the SAML assertions and requestresponse protocol messages themselves, and the SAML bindings specification [SAMLBind] defines bindings of SAML protocol messages to underlying communications and messaging protocols. The SAML conformance document [SAMLConform] lists all of the specifications that comprise SAML V2.0.
228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253
1.2 Notation
This specification uses schema documents conforming to W3C XML Schema [Schema1] and normative text to describe the syntax and semantics of XML-encoded SAML assertions and protocol messages. In cases of disagreement between the SAML profile schema documents and schema listings in this specification, the schema documents take precedence. Note that in some cases the normative text of this specification imposes constraints beyond those indicated by the schema documents. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this specification are to be interpreted as
saml-profiles-2.0-os Copyright OASIS Open 2005. All Rights Reserved. 15 March 2005 Page 7 of 66
262
Listings of productions or other normative code appear like this. Example code listings appear like this.
Note: Notes like this are sometimes used to highlight non-normative commentary. Conventional XML namespace prefixes are used throughout this specification to stand for their respective namespaces as follows, whether or not a namespace declaration is present in the example:
Prefix
Comments This is the SAML V2.0 assertion namespace [SAMLCore]. The prefix is generally elided in mentions of SAML assertion-related elements in text. This is the SAML V2.0 protocol namespace [SAMLCore]. The prefix is generally elided in mentions of XML protocol-related elements in text. This is the SAML V2.0 metadata namespace [SAMLMeta]. This is the SAML V2.0 ECP profile namespace, specified in this document and in a schema [SAMLECP-xsd]. This is the XML Signature namespace [XMLSig]. This is the XML Encryption namespace [XMLEnc]. This is the SOAP V1.1 namespace [SOAP1.1]. This is the Liberty Alliance PAOS namespace.
saml:
samlp:
urn:oasis:names:tc:SAML:2.0:protocol
md:
ecp:
urn:oasis:names:tc:SAML:2.0:metadata urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp
urn:oasis:names:tc:SAML:2.0:profiles:attribute: This is the SAML V2.0 DCE PAC attribute profile namespace, specified in this DCE
x500:
urn:oasis:names:tc:SAML:2.0:profiles:attribute: This is the SAML V2.0 X.500/LDAP attribute profile namespace, specified in this X500
document and in a schema [SAMLX500xsd].
xacmlprof: urn:oasis:names:tc:SAML:2.0:profiles:attribute: This is the SAML V2.0 XACML attribute profile namespace, specified in this XACML
xsi: http://www.w3.org/2001/XMLSchema-instance
document and in a schema [SAMLXAC-xsd]. This namespace is defined in the W3C XML Schema specification [Schema1] for schema-related markup that appears in XML instances.
This specification uses the following typographical conventions in text: <SAMLElement>, <ns:ForeignElement>, XMLAttribute, Datatype, OtherKeyword. In some cases, angle brackets are used to indicate non-terminals, rather than XML elements; the intent will be clear from the context.
280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301
4. Rules for determining the equality of SAML <Attribute> elements as defined by the profile, for use when processing attributes, queries, etc. 5. Syntax and restrictions on values acceptable in the SAML <AttributeValue> element, including whether the xsi:type XML attribute can or should be used.
315 316 317 318 319 320 321 322 323 324 325 326 327 328
329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358
359 360 361 362 363 364 365 366 367 368 369 370 371 372
3.3 Bearer
URI: urn:oasis:names:tc:SAML:2.0:cm:bearer The subject of the assertion is the bearer of the assertion, subject to optional constraints on confirmation using the attributes that MAY be present in the <SubjectConfirmationData> element, as defined by [SAMLCore]. Example: The bearer of the assertion can confirm itself as the subject, provided the assertion is delivered in a message sent to "https://www.serviceprovider.com/saml/consumer" before 1:37 PM GMT on March 19th, 2004, in response to a request with ID "_1234567890".
<SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <SubjectConfirmationData InResponseTo="_1234567890" Recipient="https://www.serviceprovider.com/saml/consumer" NotOnOrAfter="2004-03-19T13:27:00Z" </SubjectConfirmationData> </SubjectConfirmation>
A web browser-based profile of the Authentication Request protocol in [SAMLCore] is defined to support web single sign-on, supporting Scenario 1-1 of the original SAML requirements document . An additional web SSO profile is defined to support enhanced clients. A profile of the Single Logout and Name Identifier Management protocols in [SAMLCore] is defined over both front-channel (browser) and back-channel bindings. An additional profile is defined for identity provider discovery using cookies.
381 382 383 384 385 386 387 388 389 390 391 392
User Agent
Service Provider
Identity Provider
Do I have a security context for this UA? Hm, no, so I'm going to establish one...
2. Service Provider determines Identity Provider to use (methods vary, details not shown)
6. Based on the Identity Provider's response identifying (or not) the Principal, the Service Provider either returns the resource or an (HTTP) error
Figure 1
404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419
1. HTTP Request to Service Provider In step 1, the principal, via an HTTP User Agent, makes an HTTP request for a secured resource at the service provider without a security context. 2. Service Provider Determines Identity Provider In step 2, the service provider obtains the location of an endpoint at an identity provider for the authentication request protocol that supports its preferred binding. The means by which this is accomplished is implementation-dependent. The service provider MAY use the SAML identity provider discovery profile described in Section 4.3. 3. <AuthnRequest> issued by Service Provider to Identity Provider In step 3, the service provider issues an <AuthnRequest> message to be delivered by the user agent to the identity provider. Either the HTTP Redirect, HTTP POST, or HTTP Artifact binding can be used to transfer the message to the identity provider through the user agent. 4. Identity Provider identifies Principal In step 4, the principal is identified by the identity provider by some means outside the scope of this profile. This may require a new act of authentication, or it may reuse an existing authenticated session.
420 421 422 423 424 425 426 427 428 429 430 431
5. Identity Provider issues <Response> to Service Provider In step 5, the identity provider issues a <Response> message to be delivered by the user agent to the service provider. Either the HTTP POST, or HTTP Artifact binding can be used to transfer the message to the service provider through the user agent. The message may indicate an error, or will include (at least) an authentication assertion. The HTTP Redirect binding MUST NOT be used, as the response will typically exceed the URL length permitted by most user agents. 6. Service Provider grants or denies access to Principal In step 6, having received the response from the identity provider, the service provider can respond to the principal's user agent with its own error, or can establish its own security context for the principal and return the requested resource. Note that an identity provider can initiate this profile at step 5 and issue a <Response> message to a service provider without the preceding steps.
461 462 463 464 465 466 467 468 469 470 471 472 473 474
The exact format of this HTTP response and the subsequent HTTP request to the single sign-on service is defined by the SAML binding used. Profile-specific rules for the contents of the <AuthnRequest> message are included in Section 4.1.4.1. If the HTTP Redirect or POST binding is used, the <AuthnRequest> message is delivered directly to the identity provider in this step. If the HTTP Artifact binding is used, the Artifact Resolution profile defined in Section 5 is used by the identity provider, which makes a callback to the service provider to retrieve the <AuthnRequest> message, using, for example, the SOAP binding. It is RECOMMENDED that the HTTP exchanges in this step be made over either SSL 3.0 [SSL3] or TLS 1.0 [RFC2246] to maintain confidentiality and message integrity. The <AuthnRequest> message MAY be signed, if authentication of the request issuer is required. The HTTP Artifact binding, if used, also provides for an alternate means of authenticating the request issuer when the artifact is dereferenced. The identity provider MUST process the <AuthnRequest> message as described in [SAMLCore]. This may constrain the subsequent interactions with the user agent, for example if the IsPassive attribute is included.
483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502
user agent using any session mechanism it chooses. Any subsequent use of the <Assertion>(s) provided are at the discretion of the service provider and other relying parties, subject to any restrictions on use contained within them.
514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536
537 538 539 540 541 542 543 544 545 546 547 548
The <Issuer> element MAY be omitted, but if present it MUST contain the unique identifier of the issuing identity provider; the Format attribute MUST be omitted or have a value of urn:oasis:names:tc:SAML:2.0:nameid-format:entity. It MUST contain at least one <Assertion>. Each assertion's <Issuer> element MUST contain the unique identifier of the issuing identity provider; the Format attribute MUST be omitted or have a value of urn:oasis:names:tc:SAML:2.0:nameid-format:entity. The set of one or more assertions MUST contain at least one <AuthnStatement> that reflects the authentication of the principal to the identity provider.
549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572
At least one assertion containing an <AuthnStatement> MUST contain a <Subject> element with at least one <SubjectConfirmation> element containing a Method of urn:oasis:names:tc:SAML:2.0:cm:bearer. If the identity provider supports the Single Logout profile, defined in Section 4.4, any such authentication statements MUST include a SessionIndex attribute to enable per-session logout requests by the service provider. The bearer <SubjectConfirmation> element described above MUST contain a <SubjectConfirmationData> element that contains a Recipient attribute containing the service provider's assertion consumer service URL and a NotOnOrAfter attribute that limits the window during which the assertion can be delivered. It MAY contain an Address attribute limiting the client address from which the assertion can be delivered. It MUST NOT contain a NotBefore attribute. If the containing message is in response to an <AuthnRequest>, then the InResponseTo attribute MUST match the request's ID. Other statements and confirmation methods MAY be included in the assertion(s) at the discretion of the identity provider. In particular, <AttributeStatement> elements MAY be included. The <AuthnRequest> MAY contain an AttributeConsumingServiceIndex XML attribute referencing information about desired or required attributes in [SAMLMeta]. The identity provider MAY ignore this, or send other attributes at its discretion. The assertion(s) containing a bearer subject confirmation MUST contain an <AudienceRestriction> including the service provider's unique identifier as an <Audience>. Other conditions (and other <Audience> elements) MAY be included as requested by the service provider or at the discretion of the identity provider. (Of course, all such conditions MUST be understood by and accepted by the service provider in order for the assertion to be considered valid.) The identity provider is NOT obligated to honor the requested set of <Conditions> in the <AuthnRequest>, if any.
573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591
Verify any signatures present on the assertion(s) or the response Verify that the Recipient attribute in any bearer <SubjectConfirmationData> matches the assertion consumer service URL to which the <Response> or artifact was delivered Verify that the NotOnOrAfter attribute in any bearer <SubjectConfirmationData> has not passed, subject to allowable clock skew between the providers Verify that the InResponseTo attribute in the bearer <SubjectConfirmationData> equals the ID of its original <AuthnRequest> message, unless the response is unsolicited (see Section 4.1.5 ), in which case the attribute MUST NOT be present Verify that any assertions relied upon are valid in other respects
If any bearer <SubjectConfirmationData> includes an Address attribute, the service provider MAY check the user agent's client address against it. Any assertion which is not valid, or whose subject confirmation requirements cannot be met SHOULD be discarded and SHOULD NOT be used to establish a security context for the principal. If an <AuthnStatement> used to establish a security context for the principal contains a SessionNotOnOrAfter attribute, the security context SHOULD be discarded once this time is reached, unless the service provider reestablishes the principal's identity by repeating the use of this profile.
605 606 607 608 609 610 611 612 613 614 615 616
617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633
634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650
The <md:SPSSODescriptor> element's WantAssertionsSigned attribute MAY be used by a service provider to document a requirement that assertions delivered with this profile be signed. This is in addition to any requirements for signing imposed by the use of a particular binding. Note that the identity provider is not obligated by this, but is being made aware of the likelihood that an unsigned assertion will be insufficient. If the request or response message is delivered using the HTTP Artifact binding, the artifact issuer MUST provide at least one <md:ArtifactResolutionService> endpoint element in its metadata. The <md:IDPSSODescriptor> MAY contain <md:NameIDFormat>, <md:AttributeProfile>, and <saml:Attribute> elements to indicate the general ability to support particular name identifier formats, attribute profiles, or specific attributes and values. The ability to support any such features during a given authentication exchange is dependent on policy and the discretion of the identity provider. The <md:SPSSODescriptor> element MAY also be used to document the service provider's need or desire for SAML attributes to be delivered along with authentication information. The actual inclusion of attributes is always at the discretion of the identity provider. One or more <md:AttributeConsumingService> elements MAY be included in its metadata, each with an index attribute to distinguish different services that MAY be specified by reference in the <AuthnRequest> message. The isDefault attribute is used to specify a default set of attribute requirements.
651 652 653 654 655 656 657 658 659 660 661 662 663 664 665
674 675
676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710
service providers and identity providers. It is a specific application of the SSO profile described in Section 4.1. If not otherwise specified by this profile, and if not specific to the use of browser-based bindings, the rules specified in Section 4.1 MUST be observed. An ECP is a client or proxy that satisfies the following two conditions: It has, or knows how to obtain, information about the identity provider that the principal associated with the ECP wishes to use, in the context of an interaction with a service provider. This allows a service provider to make an authentication request to the ECP without the need to know or discover the appropriate identity provider (effectively bypassing step 2 of the SSO profile in Section 4.1). It is able to use a reverse SOAP (PAOS) binding as profiled here for an authentication request and response. This enables a service provider to obtain an authentication assertion via an ECP that is not otherwise (i.e. outside of the context of the immediate interaction) necessarily directly addressable nor continuously available. It also leverages the benefits of SOAP while using a well-defined exchange pattern and profile to enable interoperability. The ECP may be viewed as a SOAP intermediary between the service provider and the identity provider. An enhanced client may be a browser or some other user agent that supports the functionality described in this profile. An enhanced proxy is an HTTP proxy (for example a WAP gateway) that emulates an enhanced client. Unless stated otherwise, all statements referring to enhanced clients are to be understood as statements about both enhanced clients as well as enhanced client proxies. Since the enhanced client sends and receives messages in the body of HTTP requests and responses, it has no arbitrary restrictions on the size of the protocol messages. This profile leverages the Reverse SOAP (PAOS) binding [SAMLBind]. Implementers of this profile MUST follow the rules for HTTP indications of PAOS support specified in that binding, in addition to those specified in this profile. This profile utilizes a PAOS SOAP header block conveyed between the HTTP responder and the ECP but does not define PAOS itself. The SAML PAOS binding specification [SAMLBind] is normative in the event of questions regarding PAOS. This profile defines SOAP header blocks that accompany the SAML requests and responses. These header blocks may be composed with other SOAP header blocks as necessary, for example with the SOAP Message Security header block to add security features if needed, for example a digital signature applied to the authentication request. Two sets of request/response SOAP header blocks are used: PAOS header blocks for generic PAOS information and ECP profile-specific header blocks to convey information specific to ECP profile functionality. Figure 2 shows the processing flow in the ECP profile.
Service Provider
Identity Provider
1. ECP attempts access of some resource at the Serv ice Prov ider v ia an HTTP request w ith HTTP headers denoting the request as being from an ECP
Do I have a security context for this ECP and Principal? Hm, no, so I'm going to establish one...
2. <AuthnRequest> message issued by Serv ice Prov ider using PAOS binding (i.e. HTTP 200 OK response)
3. ECP determines Identity Prov ider to use (methods v ary , details not show n)
4. ECP issues <AuthnRequest> to the identity prov ider using SAML SOAP binding
5. Identity Prov ider identifies Principal (methods v ary , details not show n)
6. Identity Prov ider issues <Response> message to ECP using SAML SOAP binding, targeted at serv ice prov ider 7. ECP conv ey s <Response> message to serv ice prov ider using PAOS binding (i.e.. HTTP POST) 8. Based on the Identity Prov ider's response identify ing (or not) the Principal, the Serv ice Prov ider either returns the resource, or an (HTTP) error, in an HTTP response (e.g. HTTP 200 OK)
Figure 2
711 712 713 714 715 716 717 718 719 720 721 722
Figure 2 illustrates the basic template for SSO using an ECP. The following steps are described by the profile. Within an individual step, there may be one or more actual message exchanges depending on the binding used for that step and other implementation-dependent behavior. 1. ECP issues HTTP Request to Service Provider In step 1, the Principal, via an ECP, makes an HTTP request for a secured resource at a service provider, where the service provider does not have an established security context for the ECP and Principal. 2. Service Provider issues <AuthnRequest> to ECP In step 2, the service provider issues an <AuthnRequest> message to the ECP, which is to be delivered by the ECP to the appropriate identity provider. The Reverse SOAP (PAOS) binding [SAMLBind] is used here. 3. ECP Determines Identity Provider
saml-profiles-2.0-os Copyright OASIS Open 2005. All Rights Reserved. 15 March 2005 Page 23 of 66
723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746
In step 3, the ECP obtains the location of an endpoint at an identity provider for the authentication request protocol that supports its preferred binding. The means by which this is accomplished is implementation-dependent. The ECP MAY use the SAML identity provider discovery profile described in Section 4.3. 4. ECP conveys <AuthnRequest> to Identity Provider In step 4, the ECP conveys the <AuthnRequest> to the identity provider identified in step 3 using a modified form of the SAML SOAP binding [SAMLBind] with the additional allowance that the identity provider may exchange arbitrary HTTP messages with the ECP before responding to the SAML request. 5. Identity Provider identifies Principal In step 5, the Principal is identified by the identity provider by some means outside the scope of this profile. This may require a new act of authentication, or it may reuse an existing authenticated session. 6. Identity Provider issues <Response> to ECP, targeted at Service Provider In step 6, the identity provider issues a <Response> message, using the SAML SOAP binding, to be delivered by the ECP to the service provider. The message may indicate an error, or will include (at least) an authentication assertion. 7. ECP conveys <Response> message to Service Provider In step 7, the ECP conveys the <Response> message to the service provider using the PAOS binding. 8. Service Provider grants or denies access to Principal In step 8, having received the <Response> message from the identity provider, the service provider either establishes its own security context for the principal and return the requested resource, or responds to the principal's ECP with an error.
747 748
749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764
765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785
786 787
788 789 790 791 792 793 794 795 796 797 798 799
816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833
840 841 842 843 844 845 846 847 848 849 850 851 852 853
854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899
<import namespace="urn:oasis:names:tc:SAML:2.0:protocol" schemaLocation="saml-schema-protocol-2.0.xsd"/> <import namespace="urn:oasis:names:tc:SAML:2.0:assertion" schemaLocation="saml-schema-assertion-2.0.xsd"/> <import namespace="http://schemas.xmlsoap.org/soap/envelope/" schemaLocation="http://schemas.xmlsoap.org/soap/envelope/"/> <annotation> <documentation> Document identifier: saml-schema-ecp-2.0 Location: http://docs.oasis-open.org/security/saml/v2.0/ Revision history: V2.0 (March, 2005): Custom schema for ECP profile, first published in SAML 2.0. </documentation> </annotation> <element name="Request" type="ecp:RequestType"/> <complexType name="RequestType"> <sequence> <element ref="saml:Issuer"/> <element ref="samlp:IDPList" minOccurs="0"/> </sequence> <attribute ref="S:mustUnderstand" use="required"/> <attribute ref="S:actor" use="required"/> <attribute name="ProviderName" type="string" use="optional"/> <attribute name="IsPassive" type="boolean" use="optional"/> </complexType> <element name="Response" type="ecp:ResponseType"/> <complexType name="ResponseType"> <attribute ref="S:mustUnderstand" use="required"/> <attribute ref="S:actor" use="required"/> <attribute name="AssertionConsumerServiceURL" type="anyURI" use="required"/> </complexType> <element name="RelayState" type="ecp:RelayStateType"/> <complexType name="RelayStateType"> <simpleContent> <extension base="string"> <attribute ref="S:mustUnderstand" use="required"/> <attribute ref="S:actor" use="required"/> </extension> </simpleContent> </complexType> </schema>
The following sections describe how these XML constructs are to be used.
900 901 902 903 904 905 906 907 908 909 910 911
912 913 914 915 916 917 918 919 920 921
SOAP-ENV:mustUnderstand [Required] The value MUST be 1 (true). A SOAP fault MUST be generated if the PAOS header block is not understood. SOAP-ENV:actor [Required] The value MUST be http://schemas.xmlsoap.org/soap/actor/next. messageID [Optional] Allows optional response correlation. It MAY be used in this profile, but is NOT required, since this functionality is provided by the SAML protocol layer, via the ID attribute in the <AuthnRequest> and the InResponseTo attribute in the <Response>. The PAOS Request SOAP header block has no element content.
922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943
The value MUST be http://schemas.xmlsoap.org/soap/actor/next. The content of the header block element is a string containing state information created by the requester. If provided, the ECP MUST include the same value in a RelayState header block when responding to the service provider in step 5. The string value MUST NOT exceed 80 bytes in length and SHOULD be integrity protected by the requester independent of any other protections that may or may not exist during message transmission. The following is an example of the SOAP authentication request from the service provider to the ECP:
<SOAP-ENV:Envelope xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header> <paos:Request xmlns:paos="urn:liberty:paos:2003-08" responseConsumerURL="http://identity-service.example.com/abc" messageID="6c3a4f8b9c2d" SOAPENV:actor="http://schemas.xmlsoap.org/soap/actor/next" SOAPENV:mustUnderstand="1" service="urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp"> </paos:Request> <ecp:Request xmlns:ecp="urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp" SOAP-ENV:mustUnderstand="1" SOAPENV:actor="http://schemas.xmlsoap.org/soap/actor/next" ProviderName="Service Provider X" IsPassive="0"> <saml:Issuer>https://ServiceProvider.example.com</saml:Issuer> <samlp:IDPList> <samlp:IDPEntry ProviderID="https://IdentityProvider.example.com" Name="Identity Provider X" Loc="https://IdentityProvider.example.com/saml2/sso" </samlp:IDPEntry> <samlp:GetComplete> https://ServiceProvider.example.com/idplist?id=604be136-fe91-441e-afb8 </samlp:GetComplete> </samlp:IDPList> </ecp:Request> <ecp:RelayState xmlns:ecp="urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp" SOAP-ENV:mustUnderstand="1" SOAPENV:actor="http://schemas.xmlsoap.org/soap/actor/next"> ... </ecp:RelayState> </SOAP-ENV:Header> <SOAP-ENV:Body> <samlp:AuthnRequest> ... </samlp:AuthnRequest> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007
As noted above, the PAOS and ECP header blocks are removed from the SOAP message by the ECP before the authentication request is forwarded to the identity provider. An example authentication request from the ECP to the identity provider is as follows:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" <SOAP-ENV:Body> <samlp:AuthnRequest> ... </samlp:AuthnRequest> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053
The value MUST be 1 (true). A SOAP fault MUST be generated if the ECP header block is not understood. SOAP-ENV:actor [Required] The value MUST be http://schemas.xmlsoap.org/soap/actor/next. AssertionConsumerServiceURL [Required] Set by the identity provider based on the <AuthnRequest> message or the service provider's metadata obtained by the identity provider. The ECP MUST confirm that this value corresponds to the value the ECP obtained in the responseConsumerURL in the PAOS Request SOAP header block it received from the service provider. Since the responseConsumerURL MAY be relative and the AssertionConsumerServiceURL is absolute, some processing/normalization may be required. This mechanism is used for security purposes to confirm the correct response destination. If the values do not match, then the ECP MUST generate a SOAP fault response to the service provider and MUST NOT return the SAML response. The ECP Response SOAP header has no element content. Following is an example of an IdP-to-ECP response.
<SOAP-ENV:Envelope xmlns:ecp="urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header> <ecp:Response SOAP-ENV:mustUnderstand="1" SOAPENV:actor="http://schemas.xmlsoap.org/soap/actor/next" AssertionConsumerServiceURL="https://ServiceProvider.example.com/ecp_assertion _consumer"/> </SOAP-ENV:Header> <SOAP-ENV:Body> <samlp:Response> ... </samlp:Response> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header> <paos:Response refToMessageID="6c3a4f8b9c2d" SOAPENV:actor="http://schemas.xmlsoap.org/soap/actor/next/" SOAPENV:mustUnderstand="1"/> <ecp:RelayState xmlns:ecp="urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp" SOAP-ENV:mustUnderstand="1" SOAPENV:actor="http://schemas.xmlsoap.org/soap/actor/next"> ... </ecp:RelayState> </SOAP-ENV:Header> <SOAP-ENV:Body> <samlp:Response> ... </samlp:Response> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
1082 1083 1084 1085 1086 1087 1088 1089 1090 1091
1092 1093 1094 1095 1096 1097 1098 1099 1100 1101
There MUST be a leading period. The cookie MUST be marked as secure. Cookie syntax should be in accordance with IETF RFC 2965 [RFC2965] or [NSCookie]. The cookie MAY be either session-only or persistent. This choice may be made within a deployment, but should apply uniformly to all identity providers in the deployment.
1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116
Have previously established a DNS and IP alias for itself in the common domain. Redirect the user agent to itself using the DNS alias using a URL specifying "https" as the URL scheme. The structure of the URL is private to the implementation and may include session information needed to identify the user agent. Set the cookie on the redirected user agent using the parameters specified above. Redirect the user agent back to itself, or, if appropriate, to the service provider.
1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132
Have previously established a DNS and IP alias for itself in the common domain. Redirect the user agent to itself using the DNS alias using a URL specifying "https" as the URL scheme. The structure of the URL is private to the implementation and may include session information needed to identify the user agent. Redirect the user agent back to itself, or, if appropriate, to the identity provider.
1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143
1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154
Note that a principal (or an administrator terminating a principal's session) may choose to terminate this "global" session either by contacting the session authority, or an individual session participant. Also note that an identity provider acting as a session authority may itself act as a session participant in situations in which it is the relying party for another identity provider's assertions regarding that principal. The profile allows the protocol to be combined with a synchronous binding, such as the SOAP binding, or with asynchronous "front-channel" bindings, such as the HTTP Redirect, POST, or Artifact bindings. A front-channel binding may be required, for example, in cases in which a principal's session state exists solely in a user agent in the form of a cookie and a direct interaction between the user agent and the session participant or session authority is required. As will be discussed below, session participants should if possible use a "front-channel" binding when initiating this profile to maximize the likelihood that the session authority can propagate the logout successfully to all participants.
1160 1161
Session Participant
User Agent
Identity Provider
1. <LogoutRequest> issued by Session Participant 2. Identity Provider determines session participants: Are any other
system entities participating in this session?
Steps 3 and 4 are repeated for each other session participant discovered in Step 2.
Figure 3
1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193
The grayed-out user agent illustrates that the message exchange may pass through the user agent or may be a direct exchange between system entities, depending on the SAML binding used to implement the profile. The following steps are described by the profile. Within an individual step, there may be one or more actual message exchanges depending on the binding used for that step and other implementationdependent behavior. 1. <LogoutRequest> issued by Session Participant to Identity Provider In step 1, the session participant initiates single logout and terminates a principal's session(s) by sending a <LogoutRequest> message to the identity provider from whom it received the corresponding authentication assertion. The request may be sent directly to the identity provider or sent indirectly through the user agent. 2. Identity Provider determines Session Participants In step 2, the identity provider uses the contents of the <LogoutRequest> message (or if initiating logout itself, some other mechanism) to determine the session(s) being terminated. If there are no other session participants, the profile proceeds with step 5. Otherwise, steps 3 and 4 are repeated for each session participant identified. 3. <LogoutRequest> issued by Identity Provider to Session Participant/Authority In step 3, the identity provider issues a <LogoutRequest> message to a session participant or session authority related to one or more of the session(s) being terminated. The request may be sent directly to the entity or sent indirectly through the user agent (if consistent with the form of the request in step 1). 4. Session Participant/Authority issues <LogoutResponse> to Identity Provider In step 4, a session participant or session authority terminates the principal's session(s) as directed by the request (if possible) and returns a <LogoutResponse> to the identity provider. The response may be returned directly to the identity provider or indirectly through the user agent (if consistent with the form of the request in step 3). 5. Identity Provider issues <LogoutResponse> to Session Participant In step 5, the identity provider issues a <LogoutResponse> message to the original requesting session participant. The response may be returned directly to the session participant or indirectly through the user agent (if consistent with the form of the request in step 1). Note that an identity provider (acting as session authority) can initiate this profile at step 2 and issue a <LogoutRequest> to all session participants, also skipping step 5.
1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237
received from the identity provider. If multiple identity providers are involved, then the profile MUST be repeated independently for each one. To initiate the profile, the session participant issues a <LogoutRequest> message to the identity provider's single logout service request endpoint containing one or more applicable <SessionIndex> elements. At least one element MUST be included. Metadata (as in [SAMLMeta]) MAY be used to determine the location of this endpoint and the bindings supported by the identity provider. Asynchronous Bindings (Front-Channel) The session participant SHOULD (if the principal's user agent is present) use an asynchronous binding, such as the HTTP Redirect, POST, or Artifact bindings [SAMLBind], to send the request to the identity provider through the user agent. The identity provider SHOULD then propagate any required logout messages to additional session participants as required using either a synchronous or asynchronous binding. The use of an asynchronous binding for the original request is preferred because it gives the identity provider the best chance of successfully propagating the logout to the other session participants during step 3. If the HTTP Redirect or POST binding is used, then the <LogoutRequest> message is delivered to the identity provider in this step. If the HTTP Artifact binding is used, the Artifact Resolution profile defined in Section 5 is used by the identity provider, which makes a callback to the session participant to retrieve the <LogoutRequest> message, using for example the SOAP binding. It is RECOMMENDED that the HTTP exchanges in this step be made over either SSL 3.0 [SSL3] or TLS 1.0 [RFC2246] to maintain confidentiality and message integrity. The <LogoutRequest> message MUST be signed if the HTTP POST or Redirect binding is used. The HTTP Artifact binding, if used, also provides for an alternate means of authenticating the request issuer when the artifact is dereferenced. Each of these bindings provide a RelayState mechanism that the session participant MAY use to associate the profile exchange with the original request. The session participant SHOULD reveal as little information as possible in the RelayState value unless the use of the profile does not require such privacy measures. Synchronous Bindings (Back-Channel) Alternatively, the session participant MAY use a synchronous binding, such as the SOAP binding [SAMLBind], to send the request directly to the identity provider. The identity provider SHOULD then propagate any required logout messages to additional session participants as required using a synchronous binding. The requester MUST authenticate itself to the identity provider, either by signing the <LogoutRequest> or using any other binding-supported mechanism. Profile-specific rules for the contents of the <LogoutRequest> message are included in Section 4.4.4.1.
In general, the binding with which the original request was received in step 1 does not dictate the binding that may be used in this step except that as noted in step 1, using a synchronous binding that bypasses the user agent constrains the identity provider to use a similar binding to propagate additional requests. Profile-specific rules for the contents of the <LogoutRequest> message are included in Section 4.4.4.1.
1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281
1282 1283 1284 1285 1286 1287 1288 1289 1290 1291
1292
1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304
1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330
1336 1337
Requesting Provider
User Agent
Responding Provider
Figure 4
1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353
The grayed-out user agent illustrates that the message exchange may pass through the user agent or may be a direct exchange between system entities, depending on the SAML binding used to implement the profile. The following steps are described by the profile. Within an individual step, there may be one or more actual message exchanges depending on the binding used for that step and other implementationdependent behavior. 1. <ManageNameIDRequest> issued by Requesting Identity/Service Provider In step 1, an identity or service provider initiates the profile by sending a <ManageNameIDRequest> message to another provider that it wishes to inform of a change. The request may be sent directly to the responding provider or sent indirectly through the user agent. 2. <ManageNameIDResponse> issued by Responding Identity/Service Provider In step 2, the responding provider (after processing the request) issues a <ManageNameIDResponse> message to the original requesting provider. The response may be returned directly to the requesting provider or indirectly through the user agent (if consistent with the form of the request in step 1).
1354 1355
Name Identifier Management Service This is the name identifier management protocol endpoint at an identity or service provider to which the <ManageNameIDRequest> or <ManageNameIDResponse> messages (or an artifact representing them) are delivered. The same or different endpoints MAY be used for requests and responses.
1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388
1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400
1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417
If the requesting provider used an asynchronous binding, such as the HTTP Redirect, POST, or Artifact bindings [SAMLBind], then the <ManageNameIDResponse> (or artifact) is returned through the user agent to the requesting provider's name identifier management service response endpoint. Metadata (as in [SAMLMeta]) MAY be used to determine the location of this endpoint and the bindings supported by the requesting provider. Any binding supported by both entities MAY be used. If the HTTP Redirect or POST binding is used, then the <ManageNameIDResponse> message is delivered to the requesting provider in this step. If the HTTP Artifact binding is used, the Artifact Resolution profile defined in Section 5 is used by the requesting provider, which makes a callback to the responding provider to retrieve the <ManageNameIDResponse> message, using for example the SOAP binding. It is RECOMMENDED that the HTTP exchanges in this step be made over either SSL 3.0 [SSL3] or TLS 1.0 [RFC2246] to maintain confidentiality and message integrity. The <ManageNameIDResponse> message MUST be signed if the HTTP POST or Redirect binding is used. The HTTP Artifact binding, if used, also provides for an alternate means of authenticating the response issuer when the artifact is dereferenced. Profile-specific rules for the contents of the <ManageNameIDResponse> message are included in Section 4.5.4.2.
1418
Figure 5
The following steps are described by the profile. 1. <ArtifactResolve> issued by Requesting Entity In step 1, a requester initiates the profile by sending an <ArtifactResolve> message to an artifact issuer.
2. <ArtifactResponse> issued by Responding Entity In step 2, the responder (after processing the request) issues an <ArtifactResponse> message to the requester.
1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475
1476 1477 1478 1479 1480 1481 1482 1483 1484 1485
1486
SAML Requester
SAML Authority
Figure 6 The following steps are described by the profile. 1. Query/Request issued by SAML Requester In step 1, a SAML requester initiates the profile by sending an <AssertionIDRequest>, <SubjectQuery>, <AuthnQuery>, <AttributeQuery>, or <AuthzDecisionQuery> message to a SAML authority. 2. <Response> issued by SAML Authority In step 2, the responding SAML authority (after processing the query or request) issues a <Response> message to the SAML requester.
1551
1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574
Identity Provider
Figure 7
The following steps are described by the profile. 1. <NameIDMappingRequest> issued by Requesting Entity In step 1, a requester initiates the profile by sending a <NameIDMappingRequest> message to an identity provider. 2. <NameIDMappingResponse> issued by Identity Provider
1596 1597
In step 2, the responding identity provider (after processing the request) issues a <NameIDMappingResponse> message to the requester.
1621
Section 2.2.3 of [SAMLCore] defines the use of encryption to apply confidentiality to a name identifier. In most cases, the identity provider SHOULD encrypt the mapped name identifier it returns to the requester to protect the privacy of the principal. The requester can extract the <EncryptedID> element and place it in subsequent protocol messages or assertions.
1649
1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681
8.1.5 Example
<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" Name="FirstName"> <saml:AttributeValue xsi:type="xs:string">By-Tor</saml:AttributeValue> </saml:Attribute>
document refers to these as directory attributes). Directory attribute types are defined in schema in the X.500 and LDAP specifications themselves, schema in other public documents (such as the Internet2/Educause EduPerson schema [eduPerson], or the inetOrgperson schema [RFC2798]), and schema defined for private purposes. In any of these cases, it is useful for deployers to take advantage of these directory attribute types in the context of SAML attribute statements, without having to manually create SAML-specific attribute definitions for them, and to do this in an interoperable fashion. The X.500/LDAP attribute profile defines a common convention for the naming and representation of such attributes when expressed as SAML attributes.
1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710
Since X.500 procedures require that every attribute type be identified with a unique OBJECT IDENTIFIER, this naming scheme ensures that the derived SAML attribute names are unambiguous. For purposes of human readability, there may also be a requirement for some applications to carry an optional string name together with the OID URN. The optional XML attribute FriendlyName (defined in [SAMLCore]) MAY be used for this purpose. If the definition of the directory attribute type includes one or more descriptors (short names) for the attribute type, the FriendlyName value, if present, SHOULD be one of the defined descriptors.
1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766
commonly produces Unicode characters in UTF-8 form. This SAML attribute profile specifies the form of SAML attribute values only for those directory attributes which have LDAP syntaxes. Future extensions to this profile may define attribute value formats for directory attributes whose syntaxes specify other encodings. To represent the encoding rules in use for a particular attribute value, the <AttributeValue> element MUST contain an XML attribute named Encoding defined in the XML namespace urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500. For any directory attribute with a syntax whose LDAP-specific encoding exclusively produces UTF-8 character strings as values, the SAML attribute value is encoded as simply the UTF-8 string itself, as the content of the <AttributeValue> element, with no additional whitespace. In such cases, the xsi:type XML attribute MUST be set to xs:string. The profile-specific Encoding XML attribute is provided, with a value of LDAP. A list of some LDAP attribute syntaxes to which this applies is: Attribute Type Description Bit String Boolean Country String DN Directory String Facsimile Telephone Number Generalized Time IA5 String INTEGER LDAP Syntax Description Matching Rule Description Matching Rule Use Description Name And Optional UID Name Form Description Numeric String Object Class Description Octet String OID Other Mailbox Postal Address Presentation Address Printable String Substring Assertion Telephone Number UTC Time 1.3.6.1.4.1.1466.115.121.1.3 1.3.6.1.4.1.1466.115.121.1.6 1.3.6.1.4.1.1466.115.121.1.7 1.3.6.1.4.1.1466.115.121.1.11 1.3.6.1.4.1.1466.115.121.1.12 1.3.6.1.4.1.1466.115.121.1.15 1.3.6.1.4.1.1466.115.121.1.22 1.3.6.1.4.1.1466.115.121.1.24 1.3.6.1.4.1.1466.115.121.1.26 1.3.6.1.4.1.1466.115.121.1.27 1.3.6.1.4.1.1466.115.121.1.54 1.3.6.1.4.1.1466.115.121.1.30 1.3.6.1.4.1.1466.115.121.1.31 1.3.6.1.4.1.1466.115.121.1.34 1.3.6.1.4.1.1466.115.121.1.35 1.3.6.1.4.1.1466.115.121.1.36 1.3.6.1.4.1.1466.115.121.1.37 1.3.6.1.4.1.1466.115.121.1.40 1.3.6.1.4.1.1466.115.121.1.38 1.3.6.1.4.1.1466.115.121.1.39 1.3.6.1.4.1.1466.115.121.1.41 1.3.6.1.4.1.1466.115.121.1.43 1.3.6.1.4.1.1466.115.121.1.44 1.3.6.1.4.1.1466.115.121.1.58 1.3.6.1.4.1.1466.115.121.1.50 1.3.6.1.4.1.1466.115.121.1.53
For all other LDAP syntaxes, the attribute value is encoded, as the content of the <AttributeValue> element, by base64-encoding [RFC2045] the encompassing ASN.1 OCTET STRING-encoded LDAP attribute value. The xsi:type XML attribute MUST be set to xs:base64Binary. The profile-specific Encoding XML attribute is provided, with a value of LDAP. When comparing SAML attribute values for equality, the matching rules specified for the corresponding directory attribute type MUST be observed (case sensitivity, for example).
1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803
<schema targetNamespace="urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified" blockDefault="substitution" version="2.0"> <annotation> <documentation> Document identifier: saml-schema-x500-2.0 Location: http://docs.oasis-open.org/security/saml/v2.0/ Revision history: V2.0 (March, 2005): Custom schema for X.500 attribute profile, first published in SAML 2.0. </documentation> </annotation> <attribute name="Encoding" type="string"/> </schema>
8.2.6 Example
The following is an example of a mapping of the "givenName" directory attribute, representing the SAML assertion subject's first name. It's OBJECT IDENTIFIER is 2.5.4.42 and its LDAP syntax is Directory String.
<saml:Attribute xmlns:x500="urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" Name="urn:oid:2.5.4.42" FriendlyName="givenName"> <saml:AttributeValue xsi:type="xs:string" x500:Encoding="LDAP">Steven</saml:AttributeValue> </saml:Attribute>
f81d4fae-7dec-11d0-a765-00a0c91e6bf6
In DCE and Microsoft Windows, the UUID is usually presented to the administrator in the form of a friendly name. For instance the above UUID could represent the user [email protected].
1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833
If the underlying representation of the attribute's name is not a UUID, then any form of URI MAY be used in the Name XML attribute. For purposes of human readability, there may also be a requirement for some applications to carry an optional string name together with the URI. The optional XML attribute FriendlyName (defined in [SAMLCore]) MAY be used for this purpose.
1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845
8.3.6 Example
The following is an example of a DCE Extended Registry Attribute, the "pre_auth_req" setting, which has a well-known UUID of 6c9d0ec8-dd2d-11cc-abdd-080009353559 and is integer-valued.
<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" Name="urn:uuid:6c9d0ec8-dd2d-11cc-abdd-080009353559" FriendlyName="pre_auth_req"> <saml:AttributeValue xsi:type="xs:integer">1</saml:AttributeValue> </saml:Attribute>
The principal's DCE "realm" or "cell" The principal's unique identifier The principal's primary DCE local group membership The principal's set of DCE local group memberships (multi-valued) The principal's set of DCE foreign group memberships (multi-valued)
1887 1888
1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899
1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934
8.4.6.1 Realm
This single-valued attribute represents the SAML assertion subject's DCE realm or cell. Name: urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE:realm The single <AttributeValue> element contains a UUID in URN form identifying the SAML assertion
saml-profiles-2.0-os Copyright OASIS Open 2005. All Rights Reserved. 15 March 2005 Page 56 of 66
1939 1940
subject's DCE realm/cell, with an optional profile-specific FriendlyName XML attribute containing the realm's string name.
8.4.6.2 Principal
This single-valued attribute represents the SAML assertion subject's DCE principal identity. Name: urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE:principal The single <AttributeValue> element contains a UUID in URN form identifying the SAML assertion subject's DCE principal identity, with an optional profile-specific FriendlyName XML attribute containing the principal's string name. The profile-specific Realm XML attribute MAY be included and MUST contain a UUID in URN form identifying the SAML assertion subject's DCE realm/cell (the value of the attribute defined in Section 8.4.6.1).
8.4.6.4 Groups
This multi-valued attribute represents the SAML assertion subject's DCE local group memberships. Name: urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE:groups Each <AttributeValue> element contains a UUID in URN form identifying a DCE group membership of the SAML assertion subject, with an optional profile-specific FriendlyName XML attribute containing the group's string name. The profile-specific Realm XML attribute MAY be included and MUST contain a UUID in URN form identifying the SAML assertion subject's DCE realm/cell (the value of the attribute defined in Section 8.4.6.1).
8.4.7 Example
The following is an example of the transformation of PAC data into SAML attributes belonging to a DCE principal named "jdoe" in realm "example.com", a member of the "cubicle-dwellers" and "underpaid" local groups and an "engineers" foreign group.
<saml:Assertion xmlns:dce="urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE" ...> <saml:Issuer>...</saml:Issuer> <saml:Subject>...</saml:Subject> <saml:AttributeStatement> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" Name="urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE:realm"> <saml:AttributeValue xsi:type="dce:DCEValueType" dce:FriendlyName="example.com"> urn:uuid:003c6cc1-9ff8-10f9-990f-004005b13a2b </saml:AttributeValue> </saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" Name="urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE:principal"> <saml:AttributeValue xsi:type="dce:DCEValueType" dce:FriendlyName="jdoe"> urn:uuid:00305ed1-a1bd-10f9-a2d0-004005b13a2b </saml:AttributeValue> </saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" Name="urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE:primary-group"> <saml:AttributeValue xsi:type="dce:DCEValueType" dce:FriendlyName="cubicle-dwellers"> urn:uuid:008c6181-a288-10f9-b6d6-004005b13a2b </saml:AttributeValue> </saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" Name="urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE:groups"> <saml:AttributeValue xsi:type="dce:DCEValueType" dce:FriendlyName="cubicle-dwellers"> urn:uuid:008c6181-a288-10f9-b6d6-004005b13a2b </saml:AttributeValue> <saml:AttributeValue xsi:type="dce:DCEValueType" dce:FriendlyName="underpaid"> urn:uuid:006a5a91-a2b7-10f9-824d-004005b13a2b </saml:AttributeValue> </saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" Name="urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE:foreigngroups"> <saml:AttributeValue xsi:type="dce:DCEValueType" dce:FriendlyName="engineers" dce:Realm="urn:uuid:00583221-a35f-10f9-8b6e-004005b13a2b"> urn:uuid:00099cf1-a355-10f9-9e95-004005b13a2b </saml:AttributeValue> </saml:Attribute> </saml:AttributeStatement> </saml:Assertion>
1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033
2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059
2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090
attributeFormDefault="unqualified" blockDefault="substitution" version="2.0"> <annotation> <documentation> Document identifier: saml-schema-xacml-2.0 Location: http://docs.oasis-open.org/security/saml/v2.0/ Revision history: V2.0 (March, 2005): Custom schema for XACML attribute profile, first published in SAML 2.0. </documentation> </annotation> <attribute name="DataType" type="anyURI"/> </schema>
8.5.6 Example
The following is an example of a mapping of the "givenName" LDAP/X.500 attribute, representing the SAML assertion subject's first name. It also illustrates that a single SAML attribute can conform to multiple attribute profiles when they are compatible with each other.
<saml:Attribute xmlns:xacmlprof="urn:oasis:names:tc:SAML:2.0:profiles:attribute:XACML" xmlns:ldapprof="urn:oasis:names:tc:SAML:2.0:profiles:attribute:LDAP" xacmlprof:DataType="http://www.w3.org/2001/XMLSchema#string" ldapprof:Encoding="LDAP" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" Name="urn:oid:2.5.4.42" FriendlyName="givenName"> <saml:AttributeValue xsi:type="xs:string">By-Tor</saml:AttributeValue> </saml:Attribute>
2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145
9 References
[AES] [Anders] [ASN.1] FIPS-197, Advanced Encryption Standard (AES). See http://www.nist.gov/. A suggestion on how to implement SAML browser bindings without using Artifacts. See http://www.x-obi.com/OBI400/andersr-browser-artifact.ppt. Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation, ITU-T Recommendation X.680, July 2002. See http://www.itu.int/rec/recommendation.asp?type=folders&lang=e&parent=T-RECX.680. eduPerson.ldif. See http://www.educause.edu/eduperson. J. Hodges et al. Lightweight Directory Access Protocol (v3): Technical Specification. IETF RFC 3377, September 2002. See http://www.ietf.org/rfc/rfc3377.txt. P Leach et al. A UUID URN Namespace. IETF Internet-Draft, December 2004. See http://www.ietf.org/internet-drafts/draft-mealling-uuid-urn-05.txt. Microsoft technical support article. See http://support.microsoft.com/support/kb/articles/Q208/4/27.ASP. Persistent Client State HTTP Cookies, Netscape documentation. See http://wp.netscape.com/newsref/std/cookie_spec.html. R. Aarts. Liberty Reverse HTTP Binding for SOAP Specification Version 1.0. Liberty Alliance Project, 2003. See https://www.projectliberty.org/specs/liberty-paos-v1.0.pdf. E. Rescorla et al. Guidelines for Writing RFC Text on Security Considerations. IETF RFC 3552, July 2003. See http://www.ietf.org/internet-drafts/draft-iab-sec-cons-03.txt. T. Berners-Lee et al. Uniform Resource Locators (URL). IETF RFC 1738, December 1994. See http://www.ietf.org/rfc/rfc1738.txt. D. Eastlake et al. Randomness Recommendations for Security. IETF RFC 1750, December 1994. See http://www.ietf.org/rfc/rfc1750.txt. T. Berners-Lee et al. Hypertext Transfer Protocol HTTP/1.0. IETF RFC 1945, May 1996. See http://www.ietf.org/rfc/rfc1945.txt. N. Freed et al. Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies. IETF RFC 2045, November 1996. See http://www.ietf.org/rfc/rfc2045.txt. S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. IETF RFC 2119, March 1997. See http://www.ietf.org/rfc/rfc2119.txt. T. Dierks. The TLS Protocol Version 1.0. IETF RFC 2246, January 1999. See http://www.ietf.org/rfc/rfc2246.txt. M. Wahl. A Summary of the X.500(96) User Schema for use with LDAPv3. IETF RFC 2256, December 1997. See http://www.ietf.org/rfc/rfc2256.txt. F. Yergeau. UTF-8, a transformation format of ISO 10646. IETF RFC 2279, January 1998. See http://www.ietf.org/rfc/rfc2279.txt. R. Fielding et al. Hypertext Transfer Protocol HTTP/1.1. IETF RFC 2616, June 1999. See http://www.ietf.org/rfc/rfc2616.txt. J. Franks et al. HTTP Authentication: Basic and Digest Access Authentication. IETF RFC 2617, Jujne 1999. See http://www.ietf.org/rfc/rfc2617.txt. M. Smith. Definition of the inetOrgPerson LDAP Object Class. IETF RFC 2798, April 2000. See http://www.ietf.org/rfc/rfc2798.txt. D. Cristol et al. HTTP State Management Mechanism. IETF RFC 2965, October 2000. See http://www.ietf.org/rfc/rfc2965.txt.
15 March 2005 Page 61 of 66
[eduPerson] [LDAP] [Mealling] [MSURL] [NSCookie] [PAOS] [Rescorla-Sec] [RFC1738] [RFC1750] [RFC1945] [RFC2045]
2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196
[RFC3061] [SAMLBind]
M. Mealling. A URN Namespace of Object Identifiers. IETF RFC 3061, February 2001. See http://www.ietf.org/rfc/rfc3061.txt. S. Cantor et al. Bindings for the OASIS Security Assertion Markup Language (SAML) V2.0. OASIS SSTC, March 2005. Document ID saml-bindings-2.0-os. See http://www.oasis-open.org/committees/security/.
[SAMLConform] P. Mishra et al. Conformance Requirements for the OASIS Security Assertion Markup Language (SAML) V2.0. OASIS SSTC, March 2005. Document ID saml-conformance2.0-os. See http://www.oasis-open.org/committees/security/. [SAMLCore] S. Cantor et al. Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0. OASIS SSTC, March 2005. Document ID saml-core-2.0-os. See http://www.oasis-open.org/committees/security/.
[SAMLDCE-xsd] S. Cantor et al. SAML DCE PAC attribute profile schema. OASIS SSTC, March 2005. Document ID saml-schema-dce-2.0. See http://www.oasisopen.org/committees/security/. [SAMLECP-xsd] S. Cantor et al. SAML ECP profile schema. OASIS SSTC, March 2005. Document ID saml-schema-ecp-2.0. See http://www.oasis-open.org/committees/security/. [SAMLGloss] J. Hodges et al. Glossary for the OASIS Security Assertion Markup Language (SAML) V2.0. OASIS SSTC, March 2005. Document ID saml-glossary-2.0-os. See http://www.oasis-open.org/committees/security/.
[SAMLX500-xsd] S. Cantor et al. SAML X.500/LDAP attribute profile schema. OASIS SSTC, March 2005. Document ID saml-schema-x500-2.0. See http://www.oasisopen.org/committees/security/. [SAMLMeta] S. Cantor et al. Metadata for the OASIS Security Assertion Markup Language (SAML) V2.0. OASIS SSTC, March 2005. Document ID saml-metadata-2.0-os. See http://www.oasis-open.org/committees/security/. Darren Platt et al. OASIS Security Services Use Cases and Requirements. OASIS SSTC, May 2001. Document ID draft-sstc-saml-reqs-01. See http://www.oasisopen.org/committees/security/. F. Hirsch et al. Security and Privacy Considerations for the OASIS Security Assertion Markup Language (SAML) V2.0. OASIS SSTC, March 2005. Document ID saml-secconsider-2.0-os. See http://www.oasis-open.org/committees/security/. OASIS Security Services Technical Committee website, http://www.oasisopen.org/committees/security.
[SAMLReqs]
[SAMLSec]
[SAMLWeb]
[SAMLXAC-xsd] S. Cantor et al. SAML XACML attribute profile schema. OASIS SSTC, March 2005. Document ID saml-schema-xacml-2.0. See http://www.oasisopen.org/committees/security/. [Schema1] H. S. Thompson et al. XML Schema Part 1: Structures. World Wide Web Consortium Recommendation, May 2001. http://www.w3.org/TR/xmlschema-1/. Note that this specification normatively references [Schema2], listed below. Paul V. Biron, Ashok Malhotra. XML Schema Part 2: Datatypes. World Wide Web Consortium Recommendation, May 2001. See http://www.w3.org/TR/xmlschema-2/. RL 'Bob' Morgan. Support of target web server sessions in Shibboleth. Shibboleth, May 2001. See http://middleware.internet2.edu/shibboleth/docs/draft-morgan-shibbolethsession-00.txt. Marlena Erdos et al. Shibboleth Architecture DRAFT v05. Shibboleth, May 2002. See http://shibboleth.internet2.edu/draft-internet2-shibboleth-arch-v05.html. D. Box et al. Simple Object Access Protocol (SOAP) 1.1. World Wide Web Consortium Note, May 2000. See http://www.w3.org/TR/SOAP. A. Frier et al. The SSL 3.0 Protocol. Netscape Communications Corp, November 1996. RL 'Bob' Morgan. Interactions between Shibboleth and local-site web sign-on services. Shibboleth, April 2001. See http://middleware.internet2.edu/shibboleth/docs/draft15 March 2005 Page 62 of 66
[Schema2] [SESSION]
2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210
morgan-shibboleth-websso-00.txt. [X.500] Information technology - Open Systems Interconnection - The Directory: Overview of concepts, models and services. ITU-T Recommendation X.500, February 2001. See http://www.itu.int/rec/recommendation.asp?type=folders&lang=e&parent=T-RECX.500. D. Eastlake et al. XML Encryption Syntax and Processing. World Wide Web Consortium Recommendation, December 2002. See http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/. D. Eastlake et al. XML-Signature Syntax and Processing. World Wide Web Consortium Recommendation, February 2002. See http://www.w3.org/TR/xmldsigcore/. T. Moses, ed., OASIS eXtensible Access Control Markup Language (XACML) Versions 1.0, 1.1, and 2.0. Available on the OASIS XACML TC web page at http://www.oasisopen.org/committees/tc_home.php?wg_abbrev=xacml.
[XMLEnc]
[XMLSig]
[XACML]
2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253
Appendix A. Acknowledgments
The editors would like to acknowledge the contributions of the OASIS Security Services Technical Committee, whose voting members at the time of publication were: Conor Cahill, AOL John Hughes, Atos Origin Hal Lockhart, BEA Systems Mike Beach, Boeing Rebekah Metz, Booz Allen Hamilton Rick Randall, Booz Allen Hamilton Ronald Jacobson, Computer Associates Gavenraj Sodhi, Computer Associates Thomas Wisniewski, Entrust Carolina Canales-Valenzuela, Ericsson Dana Kaufman, Forum Systems Irving Reid, Hewlett-Packard Guy Denton, IBM Heather Hinton, IBM Maryann Hondo, IBM Michael McIntosh, IBM Anthony Nadalin, IBM Nick Ragouzis, Individual Scott Cantor, Internet2 Bob Morgan, Internet2 Peter Davis, Neustar Jeff Hodges, Neustar Frederick Hirsch, Nokia Senthil Sengodan, Nokia Abbie Barbir, Nortel Networks Scott Kiester, Novell Cameron Morris, Novell Paul Madsen, NTT Steve Anderson, OpenNetwork Ari Kermaier, Oracle Vamsi Motukuru, Oracle Darren Platt, Ping Identity Prateek Mishra, Principal Identity Jim Lien, RSA Security John Linn, RSA Security Rob Philpott, RSA Security Dipak Chopra, SAP Jahan Moreh, Sigaba Bhavna Bhatnagar, Sun Microsystems Eve Maler, Sun Microsystems
saml-profiles-2.0-os Copyright OASIS Open 2005. All Rights Reserved. 15 March 2005 Page 64 of 66
2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290
Ronald Monzillo, Sun Microsystems Emily Xu, Sun Microsystems Greg Whitehead, Trustgenix The editors also would like to acknowledge the following former SSTC members for their contributions to this or previous versions of the OASIS Security Assertions Markup Language Standard: Stephen Farrell, Baltimore Technologies David Orchard, BEA Systems Krishna Sankar, Cisco Systems Zahid Ahmed, CommerceOne Tim Alsop, CyberSafe Limited Carlisle Adams, Entrust Tim Moses, Entrust Nigel Edwards, Hewlett-Packard Joe Pato, Hewlett-Packard Bob Blakley, IBM Marlena Erdos, IBM Marc Chanliau, Netegrity Chris McLaren, Netegrity Lynne Rosenthal, NIST Mark Skall, NIST Charles Knouse, Oblix Simon Godik, Overxeer Charles Norwood, SAIC Evan Prodromou, Securant Robert Griffin, RSA Security (former editor) Sai Allarvarpu, Sun Microsystems Gary Ellison, Sun Microsystems Chris Ferris, Sun Microsystems Mike Myers, Traceroute Security Phillip Hallam-Baker, VeriSign (former editor) James Vanderbeek, Vodafone Mark ONeill, Vordel Tony Palmer, Vordel Finally, the editors wish to acknowledge the following people for their contributions of material used as input to the OASIS Security Assertions Markup Language specifications: Thomas Gross, IBM Birgit Pfitzmann, IBM
2291
Appendix B. Notices
OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS's procedures with respect to rights in OASIS specifications can be found at the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification, can be obtained from the OASIS Executive Director. OASIS invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to implement this specification. Please address the information to the OASIS Executive Director. Copyright OASIS Open 2005. All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns. This document and the information contained herein is provided on an AS IS basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317