Specification: WS-Security Profile for XML-based Tokens28 August 2002
Copyright© 2001-2002 International Business Machines Corporation, Microsoft Corporation, VeriSign, Inc. All rights reserved. Copyright© The presentation, distribution or other dissemination of the information contained in this specification is not a license, either expressly or implied, to any intellectual property owned or controlled by IBM or Microsoft or VeriSign and/or any other third party. IBM, Microsoft, VeriSign and\or any other third party may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. The furnishing of this document does not give you any license to IBM's or Microsoft's or VeriSign's or any other third party's patents, trademarks, copyrights, or other intellectual property. The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, email address, logo, person, places, or events is intended or should be inferred. Copyright© This specification and the information contained herein is provided on an "AS IS" basis and to the maximum extent permitted by applicable law, IBM and Microsoft and VeriSign provides the document AS IS AND WITH ALL FAULTS, and hereby disclaims all other warranties and conditions, either express, implied or statutory, including, but not limited to, any (if any) implied warranties, duties or conditions of merchantability, of fitness for a particular purpose, of accuracy or completeness of responses, of results, of workmanlike effort, of lack of viruses, and of lack of negligence, all with regard to the document. ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS WITH REGARD TO THE DOCUMENT. Copyright© IN NO EVENT WILL IBM OR MICROSOFT OR VERISIGN BE LIABLE TO ANY OTHER PARTY FOR THE COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT RELATING TO THIS DOCUMENT, WHETHER OR NOT SUCH PARTY HAD ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. AbstractThis document describes a general framework to enable XML-based security tokens to be used with [WS-Security]. Two profiles that use this general framework are provided: one for the Security Assertion Markup Language (SAML) and another for the eXtensible rights Markup Language (XrML). Status of this DocumentThis document is provided as-is and for review and evaluation only. IBM and Microsoft and VeriSign hope to solicit your contributions and suggestions in the near future. IBM and Microsoft and VeriSign make no warrantees or representations regarding the specifications in any manner whatsoever. Table of Contents1. Introduction 1. IntroductionThere is a growing popularity in XML-based security tokens. Two well-known formats are the Security Assertion Markup Language [SAML] and the eXtensible rights Markup Language [XrML]. Since these formats are described in standalone specifications, not unlike X.509 and Kerberos, this document describes their usage with respect to the WS-Security specification. This document describes a general framework to enable XML-based security tokens to be used with WS-Security. Two profiles that use this general framework are provided: one for the Security Assertion Markup Language (SAML) and another for the eXtensible rights Markup Language (XrML). Note that this specification does not endorse any particular XML security token standard - the description of SAML and XrML are provided to show the mechanisms by which the bindings should be performed. Additional XML token formats may be added to this specification in future revisions as needed. 1.1. Notational ConventionsThe keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC2119 [KEYWORDS]. Namespace URIs (of the general form "some-URI") represent some application-dependent or context-dependent URI as defined in RFC2396 [URI]. [WS-Security] is designed to work with the general [SOAP] message structure and message processing model, and WS-Security should be applicable to any version of [SOAP]. The current SOAP 1.2 namespace URI is used herein to provide detailed examples, but there is no intention to limit the applicability of this specification to a single version of [SOAP]. 1.2. NamespacesThe following namespaces are used in this document:
2. General PrinciplesThis section presents the basic principals around using [WS-Security] with security tokens. Later sections describe rules and processes specific to certain XML-based security token formats. 2.1. Attaching Security TokensThe [WS-Security] specification defines the The specification defines the For security tokens based on XML, the extensibility of the 2.2. Identifying and Referencing Security TokensThe [WS-Security] specification defines multiple mechanisms for identifying
and referencing security tokens using the wsu:Id attribute and the
2.3. Subject ConfirmationThe [WS-Security] specification does not dictate how proof-of-possession (aka subject confirmation) must be done, however, it does define how signatures can be used and associated with security tokens (by referencing them in the signature) towards this end. 2.4. Processing RulesThe [WS-Security] specification describes the processing rules for using and processing [XML Signature] and [XML-Encrypt]. These rules MUST be followed when using any type of security token including XML-based tokens. Note that this does NOT mean that XML-based tokens MUST be signed or encrypted - only that if signature or encryption is used in conjunction with XML-based tokens, they MUST be used in a way that conforms to the processing rules defined by the [WS-Security] specification. 3. Security Assertion Markup Language (SAML) UsageThis section describes the profile (specific mechanisms and procedures) for the [WS-Security] profile of SAML. Identification: urn:oasis:names:tc:WSS:1.0:bindings:WSS-SAML-binding Contact information: TBD Description: Given below. Updates: None. 3.1. Processing ModelThe processing model for [WS-Security] with SAML assertion tokens is no different from that of [WS-Security] with other token formats as described in [WS-Security]. 3.2. Attaching Security TokensSAML assertions are attached to SOAP messages using [WS-Security] by placing
assertion elements inside the <S:Envelope xmlns:S="...">
<S:Header>
<wsse:Security xmlns:wsse="...">
<saml:Assertion
MajorVersion="1"
MinorVersion="0"
AssertionID="SecurityToken-ef375268"
Issuer="elliotw1"
IssueInstant="2002-07-23T11:32:05.6228146-07:00"
xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">
...
</saml:Assertion>
...
</wsse:Security>
</S:Header>
<S:Body>
...
</S:Body>
</S:Envelope>
3.3. Identifying and Referencing Security TokensThe [WS-Security] specification defines the wsu:Id attribute as the
common mechanism for referencing security tokens by "Id" (the specification describes the reasons
for this). Since the SAML specification does not allow attribute extensibility on the
The following example illustrates a message with an [XML Signature] that references a SAML assertion token. <S:Envelope xmlns:S="...">
<S:Header>
<wsse:Security xmlns:wsse="...">
<saml:Assertion
MajorVersion="1"
MinorVersion="0"
AssertionID="SecurityToken-ef375268"
Issuer="elliotw1"
IssueInstant="2002-07-23T11:32:05.6228146-07:00"
xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">
...
</saml:Assertion>
<ds:Signature xmlns:ds="...">
...
<ds:KeyInfo>
<wsse:SecurityTokenReference>
<saml:AssertionIDReference>
SecurityToken-ef375268
</saml:AssertionIDReference>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
...
</wsse:Security>
</S:Header>
<S:Body>
...
</S:Body>
</S:Envelope>
3.4. Subject ConfirmationAs previously stated, the [WS-Security] specification does not dictate how subject confirmation must be performed. As well, the SAML specification allows for multiple types of confirmation. If a secure transport is not used, it is strongly RECOMMENDED that a key-based confirmation mechanism be used. Any processor of SAML assertion tokens MUST conform to the required validation and processing rules defined in the SAML specification. The following table illustrates how several different confirmation mechanisms are processed:
3.5. Error CodesWhen using SAML assertion tokens, it is RECOMMENDED to use the error codes defined in the [WS-Security] specification. However, implementations MAY use custom errors, defined in private namespaces if they desire. Care should be taken not to introduce security vulnerabilities in the errors returned. 3.6. Threat Model and CountermeasuresThe use of SAML assertion tokens with [WS-Security] introduces no new threats beyond those identified for SAML or WS-Security with other types of security tokens. Message alteration and eavesdropping can be addressed by using the integrity and confidentiality mechanisms described in WS-Security. Replay attacks can be addressed by using message timestamps and caching, as well as other application-specific tracking mechanisms. For SAML assertion tokens whose ownership is verified by use of keys, man-in-the-middle attacks are generally mitigated by the use of subject confirmation. It is strongly RECOMMENDED that all relevant and immutable message data be signed. It should be noted that transport-level security MAY be used to protect the message and the security token. 4. eXtensible rights Markup Language (XrML) UsageThis section describes the profile (specific mechanisms and procedures) for the WS-Security profile of XrML. Identification: urn:oasis:names:tc:WSS:1.0:bindings:WSS-XrML-binding Contact information: TBD Description: Given below. Updates: None. 4.1. Processing ModelThe processing model for [WS-Security] with XrML tokens is no different from that of [WS-Security] with other token formats as described in WS-Security. 4.2. Attaching Security TokensXrML licenses are attached to SOAP messages using [WS-Security] by placing the
license element inside the <S:Envelope xmlns:S="...">
<S:Header>
<wsse:Security xmlns:wsse="...">
<xrml:license xmlns:xrml="...">
...
</xrml:license>
...
</wsse:Security>
</S:Header>
<S:Body>
...
</S:Body>
</S:Envelope>
4.3. Identifying and Referencing Security TokensThe [WS-Security] specification defines the wsu:Id attribute as the
common mechanism for referencing security tokens by "Id" (the specification describes the reasons
for this). Since the XrML specification does not allow attribute extensibility of the
The following example illustrates a message with an [XML Signature] that references an XrML token. <S:Envelope xmlns:S="...">
<S:Header>
<wsse:Security xmlns:wsse="...">
<xrml:license xmlns:xrml="..."
licenseId="urn:SecurityToken-ef375268"/>
...
</xrml:license>
<ds:Signature xmlns:ds="...">
...
<ds:KeyInfo>
<wsse:SecurityTokenReference>
<wsse:Reference URI="urn:SecurityToken-ef375268"
xmltok:RefType="xrml:license"
xmlns:xmltok="..."/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
...
</wsse:Security>
</S:Header>
<S:Body>
...
</S:Body>
</S:Envelope>
4.4. Subject ConfirmationAs previously stated, the [WS-Security] specification does not dictate how subject confirmation must be performed. As well, the XrML specification allows for multiple types of confirmation. If a secure transport is not used, it is strongly RECOMMENDED that a key-based confirmation mechanism be used. Any processor of XrML security tokens MUST conform to the required validation and processing rules defined in the XrML specification. The following table illustrates how several different confirmation mechanisms are processed:
4.5. Error CodesWhen using XrML tokens, it is RECOMMENDED to use the error codes defined in the [WS-Security] specification. However, implementations MAY use custom errors, defined in private namespaces if they desire. Care should be taken not to introduce security vulnerabilities in the errors returned. 4.6. Threat Model and CountermeasuresThe use of XrML security tokens with [WS-Security] introduces no new threats beyond those identified for XrML or WS-Security with other types of security tokens. Message alteration and eavesdropping can be addressed by using the integrity and confidentiality mechanisms described in WS-Security. Replay attacks can be addressed by using of message timestamps and caching, as well as other application-specific tracking mechanisms. For XrML tokens whose ownership is verified by use of keys, man-in-the-middle attacks are generally mitigated. It is strongly RECOMMENDED that all relevant and immutable message data be signed. It should be noted that transport-level security MAY be used to protect the message and the security token. 5. Security ConsiderationsIn order to provide relying parties with the confidence that they can trust XML-based
tokens, the issuers of those tokens SHOULD sign those tokens using the mechanisms outlined in
this document [WS-Security]. Signing XML tokens allows parties relying on them to be confident
that the tokens haven't been forged or altered. It is strongly RECOMMENDED that
It should be noted that references to unsigned or unsecured tokens represent potential security holes and make increase attack opportunities. 6. References
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| About IBM | Privacy | Terms of use | Contact |