NZ SAMS Constraints on the OASIS SAML v2.0 Core (Assertions and Protocols)
[ Table of Contents ]
Specification Name: Assertions and Protocols for OASIS SAML v2.0
SAML Specification Reference: Saml-core-2.0-os
This html page contains lines 816-878 from Part 2 of the PDF version of NZ SAMS v1.0
Assertions and Protocols support the Web SSO Bindings (section 11 of NZ SAMS). A complete prescription is not provided here. [SAMLCore] (Assertions and Protocols) Specification is largely prescriptive in any case. Particular attention is drawn to the following areas for NZ SAMS compliance:
- Name Identifier Management protocol (section 3.6) is NOT REQUIRED.
- Attribute Name Format Identifiers (section 8.2):
urn:oasis:names:tc:SAML:2.0:attrname-format:basiconly is REQUIRED. Remaining Attribute Name Format Identifiers (i.e.urn:oasis:names:tc:SAML:2.0:attrname-format:uri) are NOT REQUIRED. - Name Identifier Format Identifiers (section 8.3):
urn:oasis:names:tc:SAML:2.0:nameid-format:persistentis REQUIRED. Remaining Name Identifier Format Identifiers (urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress, urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName, urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName and urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos) are NOT REQUIRED. - The Status element in the response MUST be utilised to convey the status (i.e. success, error conditions) of the corresponding request.
The following table, Table 10 describes the selected requirements from OASIS v2.0 core (Assertions and Protocols).
Table 10 – NZ SAMS constraints on the OASIS SAML v2.0 core (Assertions and Protocols)
Section 2: SAML Assertions
What is excluded or altered from the SAML v2.0 Bindings Specification:
Subsection 2.5.1.5: Element <OneTimeUse>
Line: 940-971
If the POST profile is used to return a signed SAML assertion then <OneTimeUse> MUST be specified. This attribute prevents the possibility of replay attacks. This MUST be tested for NZ SAMS compliance.
Section 3: SAML Protocols
What is excluded or altered from the SAML v2.0 Binding Specification:
Subsection 3.2.2: Complex Type StatusResponseType
Line: 1536-1723
The <Status> element in the response SHOULD be utilised to convey status of the corresponding request. Custom second-level <StatusCode> elements MAY be used. Third level <StatusCode> elements MUST NOT be used.
<AuthnRequest> was successful then a first-level <StatusCode> of 'uri...Success' MUST be used. When a 'business rule' error has occurred (application specific exception handling i.e. 'The user has cancelled their logon') then a first-level status code of 'Requester' MUST be used in conjunction with a custom agreed second-level status code. All other pre-defined status codes are for SAML system behaviour, i.e. invalid SAML message.
It is RECOMMENDED that the <Status> element be used to communicate the status of the SAML message, but limited support for application control of 'Status' is offered by existing SAML v2.0 vendor products. Some SAML IdP products do not allow application control of the <Status> element, as it is only used to convey SAML parsing or validation errors. A similar problem occurs for SPs, where a client application cannot access the returned <StatusCode> to determine why the SAML exchange has failed. A potential solution (until support for <StatusCode> becomes more available), but NOT RECOMMENDED, is to use the <Status>. See page 63 for information on <errorURL>.
Subsection 3.4.1 Element AuthnRequest
Line: 2001-2323
If a <RequestedAuthnContext> element is included in the <AuthnRequest> then the Comparison attribute MAY be specified.
<AuthnContextClassDecl> MUST NOT be used.
<AuthnContextClassRef> MAY be utilised. Where custom <AuthnContextClassRef> elements are used, they MUST be communicated out of band by the IdP.
An out of band agreement MUST be established between the SP and IdP for which an SSO Binding Set is to be used, i.e. POST or Artifact. If relative authentication strengths need to be communicated then these need to be framed around the ‘NIST-800-63’ levels.
Subsection 3.6: Name Identifier Management Protocol
Line: 2411-2506
Reference to Name Identifier Management protocol is NOT REQUIRED.
Section 8: SAML defined identifiers
What is excluded or altered from the SAML v2.0 Binding Specification:
Subsection 8.2: Attribute Name Format Identifiers:
Line: 3259-3274
Basic only is REQUIRED. Remaining Attribute Name Format Identifiers (URI Reference) are NOT REQUIRED.
Subsection 8.3: Name Identifier Format Identifiers:
Line: 3275-3365
Persistent is REQUIRED. Remaining Name Identifier Format Identifiers (EmailAddress, X509SubjectName, WindowsDomainQualifiedName and Kerberos) are NOT REQUIRED.
Unspecified MAY be used, it is at the IdP's discretion what 'name-id-format' is returned. The Name Identifier Format Identifier returned is dependent on use case requirements.
This html page contains lines 816-878 from Part 2 of the PDF version of NZ SAMS v1.0
