3.1.4.3 GetCookie

A DSS calls the GetCookie method to obtain a cookie containing an opaque sequence of bytes that encode implementation-specific authorization, authentication, and runtime information for use by the USS.

 <wsdl:operation name="GetCookie">
   <wsdl:input message="tns: GetCookieSoapIn" />
   <wsdl:output message=" tns:GetCookieSoapOut" />
 </wsdl:operation>

The SOAP operation is defined as follows.

 <soap:operation soapAction="http://www.microsoft.com/SoftwareDistribut
 ion/GetCookie" style="document" />

Request validation:

The USS validates inputs, as specified in the following table. If any of the inputs are not valid, the USS MUST return a SOAP fault message to the DSS with the <ErrorCode> set, as shown in the table.

Input

Validation conditions

ErrorCode

authCookies

MUST contain exactly one AuthorizationCookie element.

InvalidParameters

authCookies

The CookieData field MUST be of the correct format such that the USS can read values out of it, as specified in section 2.2.4.7.

InvalidAuthorizationCookie

protocolVersion

MUST be of the format "x.y", where x is the Major Version and y is the Minor Version number.

InvalidParameters

protocolVersion

Major Version MUST be "1".

IncompatibleProtocolVersion

Data processing:

The USS MUST process this message as follows:

  1. Parse the CookieData in the AuthorizationCookie and extract the ExpirationTime, target groups list, and DSS account GUID.

  2. If the cookie has a syntax, formatting, or other error preventing the necessary information from being read out of the EncryptedData field, return SOAP fault with <ErrorCode> set to InvalidAuthorizationCookie.

  3. Create a Cookie with the Expiration set to an implementation-specific cookie expiration interval sometime in the future.<29>

  4. Initialize the EncryptedData field of the Cookie to a sequence of bytes, as defined in section 2.2.4.8.

Response:

If no errors occur during processing, the USS MUST return the response to the DSS.

If an error occurs during processing, the USS MUST return a SOAP fault. The SOAP fault SHOULD contain an <ErrorCode> element, as defined in section 2.2.9. If the SOAP fault contains an <ErrorCode> element, its value MUST be one of the following.

If the DSS receives a SOAP fault containing an <ErrorCode> element, it MUST react to the fault, as described in the following table. If the DSS receives a fault that does not contain an <ErrorCode> element, it MUST stop the protocol.

 ErrorCode

 Description

InvalidParameters

Parameters passed to a web method are not valid. The message part of the exception will contain the parameter name. The DSS MUST stop the protocol.

InternalServerError

An internal error occurred on the server. The DSS MUST stop the protocol.

IncompatibleProtocolVersion

The version of the protocol used by DSS is incompatible with the version used by USS. The DSS MUST abort the protocol.

InvalidAuthorizationCookie

The authorization cookie submitted by the DSS is not valid. The DSS MUST restart the protocol from the beginning.