Remote Experience Advertisement Protocol

Total Page:16

File Type:pdf, Size:1020Kb

Remote Experience Advertisement Protocol

[MS-RXAD]: Remote Experience Advertisement Protocol

Intellectual Property Rights Notice for Open Specifications Documentation § Technical Documentation. Microsoft publishes Open Specifications documentation (“this documentation”) for protocols, file formats, data portability, computer languages, and standards support. Additionally, overview documents cover inter-protocol relationships and interactions. § Copyrights. This documentation is covered by Microsoft copyrights. Regardless of any other terms that are contained in the terms of use for the Microsoft website that hosts this documentation, you can make copies of it in order to develop implementations of the technologies that are described in this documentation and can distribute portions of it in your implementations that use these technologies or in your documentation as necessary to properly document the implementation. You can also distribute in your implementation, with or without modification, any schemas, IDLs, or code samples that are included in the documentation. This permission also applies to any documents that are referenced in the Open Specifications documentation. § No Trade Secrets. Microsoft does not claim any trade secret rights in this documentation. § Patents. Microsoft has patents that might cover your implementations of the technologies described in the Open Specifications documentation. Neither this notice nor Microsoft's delivery of this documentation grants any licenses under those patents or any other Microsoft patents. However, a given Open Specifications document might be covered by the Microsoft Open Specifications Promise or the Microsoft Community Promise. If you would prefer a written license, or if the technologies described in this documentation are not covered by the Open Specifications Promise or Community Promise, as applicable, patent licenses are available by contacting [email protected]. § License Programs. To see all of the protocols in scope under a specific license program and the associated patents, visit the Patent Map. § Trademarks. The names of companies and products contained in this documentation might be covered by trademarks or similar intellectual property rights. This notice does not grant any licenses under those rights. For a list of Microsoft trademarks, visit www.microsoft.com/trademarks. § Fictitious Names. The example companies, organizations, products, domain names, email addresses, logos, people, places, and events that are depicted in this documentation are fictitious. No association with any real company, organization, product, domain name, email address, logo, person, place, or event is intended or should be inferred.

1 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 Reservation of Rights. All other rights are reserved, and this notice does not grant any rights other than as specifically described above, whether by implication, estoppel, or otherwise. Tools. The Open Specifications documentation does not require the use of Microsoft programming tools or programming environments in order for you to develop an implementation. If you have access to Microsoft programming tools and environments, you are free to take advantage of them. Certain Open Specifications documents are intended for use in conjunction with publicly available standards specifications and network programming art and, as such, assume that the reader either is familiar with the aforementioned material or has immediate access to it. Support. For questions and support, please contact [email protected].

2 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 Revision Summary Revision Revision Date History Class Comments

11/6/2009 0.1 Major First Release.

12/18/2009 0.1.1 Editorial Changed language and formatting in the technical content.

1/29/2010 0.2 Minor Clarified the meaning of the technical content.

3/12/2010 0.2.1 Editorial Changed language and formatting in the technical content.

4/23/2010 0.2.2 Editorial Changed language and formatting in the technical content.

6/4/2010 0.2.3 Editorial Changed language and formatting in the technical content.

No changes to the meaning, language, or formatting of the 7/16/2010 0.2.3 None technical content.

No changes to the meaning, language, or formatting of the 8/27/2010 0.2.3 None technical content.

No changes to the meaning, language, or formatting of the 10/8/2010 0.2.3 None technical content.

No changes to the meaning, language, or formatting of the 11/19/2010 0.2.3 None technical content.

No changes to the meaning, language, or formatting of the 1/7/2011 0.2.3 None technical content.

No changes to the meaning, language, or formatting of the 2/11/2011 0.2.3 None technical content.

No changes to the meaning, language, or formatting of the 3/25/2011 0.2.3 None technical content.

No changes to the meaning, language, or formatting of the 5/6/2011 0.2.3 None technical content.

6/17/2011 0.3 Minor Clarified the meaning of the technical content.

No changes to the meaning, language, or formatting of the 9/23/2011 0.3 None technical content.

12/16/2011 1.0 Major Updated and revised the technical content.

No changes to the meaning, language, or formatting of the 3/30/2012 1.0 None technical content.

No changes to the meaning, language, or formatting of the 7/12/2012 1.0 None technical content.

No changes to the meaning, language, or formatting of the 10/25/2012 1.0 None technical content.

No changes to the meaning, language, or formatting of the 1/31/2013 1.0 None technical content.

8/8/2013 2.0 Major Updated and revised the technical content.

11/14/2013 3.0 Major Updated and revised the technical content.

No changes to the meaning, language, or formatting of the 2/13/2014 3.0 None technical content.

No changes to the meaning, language, or formatting of the 5/15/2014 3.0 None technical content.

No changes to the meaning, language, or formatting of the 6/30/2015 3.0 None technical content.

No changes to the meaning, language, or formatting of the 10/16/2015 3.0 None technical content.

7/14/2016 3.0 None No changes to the meaning, language, or formatting of the

3 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 Revision Revision Date History Class Comments

technical content.

No changes to the meaning, language, or formatting of the 6/1/2017 3.0 None technical content.

4 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 Table of Contents

5 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 1 Introduction This document specifies the Remote Experience Advertisement Protocol. The Remote Experience Advertisement Protocol enables a Universal Plug and Play (UPnP) service implemented by a device to be used by the client to advertise available remote experience information to that device. This information specifies the type of experience, how to initiate the connection, and provides a host ID and host certificate along with other information. This protocol is compliant with UPnP architecture and is implemented as an UPnP service [UPNPARCH1]. Sections 1.5, 1.8, 1.9, 2, and 3 of this specification are normative. All other sections and examples in this specification are informative.

1.1 Glossary This document uses the following terms: certificate: A certificate is a collection of attributes and extensions that can be stored persistently. The set of attributes in a certificate can vary depending on the intended usage of the certificate. A certificate securely binds a public key to the entity that holds the corresponding private key. A certificate is commonly used for authentication and secure exchange of information on open networks, such as the Internet, extranets, and intranets. Certificates are digitally signed by the issuing certification authority (CA) and can be issued for a user, a computer, or a service. The most widely accepted format for certificates is defined by the ITU-T X.509 version 3 international standards. For more information about attributes and extensions, see [RFC3280] and [X509] sections 7 and 8. control point: A control point retrieves device and service descriptions, sends actions to services, polls for service state variables, and receives events from services. service description: The UPnP description for a service defines actions and their arguments, and state variables and their data type, range, and event characteristics. service ID: The service ID suffix defined by an UPnP Forum working committee or specified by an UPnP vendor must be less than 64 characters. This should be a Single URI. service or UPnP service: A set of rules that is required to be published by the device and advertised when the device is turned on all the available control points. service type: Service type refers to the name of a particular service that is implemented on the device. SOAP action: The HTTP request header field used to indicate the intent of the SOAP request, using a URI value. See [SOAP1.1] section 6.1.1 for more information.

6 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 SOAP body: A container for the payload data being delivered by a SOAP message to its recipient. See [SOAP1.2-1/2007] section 5.3 for more information. SOAP message: An XML document consisting of a mandatory SOAP envelope, an optional SOAP header, and a mandatory SOAP body. See [SOAP1.2-1/2007] section 5 for more information. XML: The Extensible Markup Language, as described in [XML1.0]. XML namespace: A collection of names that is used to identify elements, types, and attributes in XML documents identified in a URI reference [RFC3986]. A combination of XML namespace and local name allows XML documents to use elements, types, and attributes that have the same names but come from different sources. For more information, see [XMLNS-2ED]. XML schema: A description of a type of XML document that is typically expressed in terms of constraints on the structure and content of documents of that type, in addition to the basic syntax constraints that are imposed by XML itself. An XML schema provides a view of a document type at a relatively high level of abstraction. MAY, SHOULD, MUST, SHOULD NOT, MUST NOT: These terms (in all caps) are used as defined in [RFC2119]. All statements of optional behavior use either MAY, SHOULD, or SHOULD NOT.

1.2 References Links to a document in the Microsoft Open Specifications library point to the correct section in the most recently published version of the referenced document. However, because individual documents in the library are not updated at the same time, the section numbers in the documents may not match. You can confirm the correct section numbering by checking the Errata.

1.2.1 Normative References We conduct frequent surveys of the normative references to assure their continued availability. If you have any issue with finding a normative reference, please contact [email protected]. We will assist you in finding the relevant information. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997, http://www.rfc- editor.org/rfc/rfc2119.txt

[SOAP1.1] Box, D., Ehnebuske, D., Kakivaya, G., et al., "Simple Object Access Protocol (SOAP) 1.1", W3C Note, May 2000, http://www.w3.org/TR/2000/NOTE-SOAP-20000508/

[UPNPARCH1] UPnP Forum, "UPnP Device Architecture 1.0", October 2008, http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.0.pdf

7 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 [XMLNS] Bray, T., Hollander, D., Layman, A., et al., Eds., "Namespaces in XML 1.0 (Third Edition)", W3C Recommendation, December 2009, http://www.w3.org/TR/2009/REC-xml-names-20091208/

[XMLSCHEMA1] Thompson, H., Beech, D., Maloney, M., and Mendelsohn, N., Eds., "XML Schema Part 1: Structures", W3C Recommendation, May 2001, http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/

[XMLSCHEMA2] Biron, P.V., Ed. and Malhotra, A., Ed., "XML Schema Part 2: Datatypes", W3C Recommendation, May 2001, http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/

1.2.2 Informative References None.

1.3 Overview The Remote Experience Advertisement Protocol is used for advertising experiences available at a host PC to a specific UPnP device. It is used for providing data required by the UPnP device to connect to the advertised experience. In addition to advertising, it can also revoke a previously advertised experience by announcing that an experience is currently unavailable. This protocol is a SOAP-based protocol that uses HTTP 1.1 as its transport. The Remote Experience Advertisement Protocol provides for three actions: AcquireNonce, Advertise, and Inhibit. The AcquireNonce action provides the Nonce and signing information; this information is later used by the Advertise and Inhibit actions. As specified in [UPNPARCH1] section 3.1.1, each action of the protocol results in a pair of SOAP request and response messages in the network. The following diagram illustrates a flow of Remote Experience Advertisement Protocol messages exchanged between the device and the control point, when the Advertise action is achieved successfully.

8 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 Figure 1: Protocol message sequence diagram (Advertise action)

The following diagram illustrates a flow of Remote Experience Advertisement Protocol messages exchanged between the device and the control point, when the previously advertised action is canceled successfully.

9 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 Figure 2: Protocol message sequence diagram (Inhibit action)

1.4 Relationship to Other Protocols The Remote Experience Advertisement Protocol uses SOAP over HTTP as shown in the following layering diagram:

10 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 Figure 3: Protocol layering diagram

1.5 Prerequisites/Preconditions The Remote Experience Advertisement Protocol requires the support of an UPnP stack [UPNPARCH1] on the device and the control point. Therefore, before the protocol is put into action, the device performs all of the prior UPnP steps, including the discovery of the device, device description, and the publication of the service description as specified in [UPNPARCH1]. Appendix B shows the UPnP service information of the protocol to be included in the device description. The service type of the protocol is "msremotedexperience", the version number is as specified in section 1.7 of this document, and the service ID is "MSRX". Appendix C shows the full UPnP service description of this protocol. The protocol server endpoint is formed by appending "/_vti_bin/pptws.asmx".

1.6 Applicability Statement The Remote Experience Advertisement Protocol is used to describe the available experience to the device from the PC which can also include information such as how to initiate a connection and provide a host ID and host certificate along with other useful information.

1.7 Versioning and Capability Negotiation This document specifies Remote Experience Advertisement Protocol version 1. The version number is included where Remote Experience Advertisement Protocol service information is presented in the device description as specified in [UPNPARCH1] section 2.3. See section 1.5 for more details.

1.8 Vendor-Extensible Fields There are no vendor-extensible fields other than what is specified in [UPNPARCH1].

11 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 1.9 Standards Assignments There are no standards assignments other than what is specified in [UPNPARCH1].

12 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 2 Messages

2.1 Transport The Remote Experience Advertisement Protocol does not specify a transport protocol beyond what is specified by [UPNPARCH1].

2.2 Common Message Syntax This section contains common definitions used by this protocol. The syntax of the definitions uses XML schema as defined in [XMLSCHEMA1] and [XMLSCHEMA2].

2.2.1 Namespaces This specification defines and references various XML namespaces using the mechanisms specified in [XMLNS]. Although this specification associates a specific XML namespace prefix for each XML namespace that is used, the choice of any particular XML namespace prefix is implementation-specific and not significant for interoperability. Prefix Namespace URI Reference msrx urn:schemas-microsoft-com:service:msremotedexperience:1 [MS-RXAD] dt urn:schemas-microsoft-com:datatypes [MS-RXAD] soapenv http://schemas.xmlsoap.org/soap/envelope/ [SOAP1.1] encodingStyle http://schemas.xmlsoap.org/soap/encoding/ [SOAP1.1] xsd http://www.w3.org/2001/XMLSchema [XMLSCHEMA1]

2.2.2 Messages The Remote Experience Advertisement Protocol provides three actions: the AcquireNonce, Advertise, and Inhibit actions. The request and response messages for each Remote Experience Advertisement Protocol action MUST be expressed in XML using the SOAP 1.1 UPnP profile as specified in [UPNPARCH1] section 3.1.1. The details of each action can be found in section 3.1.4 of this document.

2.2.3 Elements

Element Description

HostID A GUID used to identify a control point that provides remote experiences on the network.

Nonce A Nonce is generated by the UPnP device, and returned to the control point.

2.2.4 Complex Types None.

2.2.5 Simple Types None.

13 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 2.2.6 Attributes None.

2.2.7 Groups None.

2.2.8 Attribute Groups None.

14 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 3 Protocol Details

3.1 Server Details

3.1.1 Abstract Data Model Upon each action, the control point sends the request message to the device, and the device returns a response or error message to the control point [UPNPARCH1]. There are five states in the Remote Experience Advertisement Protocol: 1. Initial state 2. Host Nonce not set and Host not Advertised 3. Host Nonce set and Host not Advertised 4. Host Nonce not set and Host Advertised 5. Final state In its Initial state, the control point is in the Host Nonce not set and Host not Advertised state. The AcquireNonce action transitions the control point into the Host Nonce set and Host not Advertised state. At this point the host PC is ready to send an Advertise action if the remoted experience is available. In case the remote experience is not available, the host PC can send an Inhibit action, by informing the device when such an experience will be available. Upon an Advertise action, the device enters the Host Nonce not set and Host Advertised state. If the control point is required to cancel the advertisement, then it can send an Inhibit action changing the state to Host Nonce set and Host not Advertised. The same Inhibit action can change the state to the Final state. The following diagram provides an overview of the state machine.

Figure 4: Host State Machine

15 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 3.1.2 Timers The Remote Experience Advertisement Protocol does not specify anything beyond what is specified by [UPNPARCH1].

3.1.3 Initialization The Remote Experience Advertisement Protocol does not specify anything beyond what is specified by [UPNPARCH1].

3.1.4 Message Processing Events and Sequencing Rules

3.1.4.1 AcquireNonce Action A control point MUST attach an body to a Remote Experience Advertisement Protocol SOAP message that contains element in order to instruct the device to send the Nonce and signing information in response.

3.1.4.1.1 Messages

3.1.4.1.1.1 AcquireNonce Message The HTTP header MUST specify SOAPACTION as follows for an AcquireNonce message: SOAPACTION: "urn:schemas-microsoft- com:service:msremotedexperience:1#AcquireNonce" "urn:schemas-microsoft-com:service:msremotedexperience:1" is the service type as specified in device description in Appendix B. "AcquireNonce" is the SOAP action. The following XML session shows an and in a SOAP message.

4

5 xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

6 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

7

8

9

10

11 A GUID used to identify a control point that provides remote experiences on the network

12

13

14

16 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 15

16

17

17.1.1.1.1.1 AcquireNonce Response Message The server MUST reply with a SOAP response message named that contains , and . The following XML session shows a , , and in a SOAP message. [SOAP]

18

19 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

20 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

21

22

23 Nonce payload

24 SignatureAlgorithms payload

25 Boolean value indicating if certificate is attached in Advertised/Inhibit action

26

27

28

28.1.1.1.1 Elements

28.1.1.1.1.1 AttachCertificate The is the element of type Boolean under an SOAP body that is used to determine if the control point MUST send its full certificate in and SOAP body. If the UPnP device cannot store the control point's certificate, it can instead store a hash of the certificate and request that the control point send the full certificate with each and SOAP body by setting this value to TRUE. If the certificate is not required in those actions, then this value is set to FALSE.

29

17 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 30

30.1.1.1.1.1 HostID The is an element of type string under an , , and SOAP body. It is a GUID used to identify a control point that provides remote experiences on the network. The can be used by the UPnP device to group element in local user interface.

31

32

32.1.1.1.1.1 Nonce The is an element that contains a 4-byte unsigned integer under , , and messages generated by the UPnP Device. The MUST be called prior to invoking an and action.

33

34

34.1.1.1.1.1 SupportedSignatureAlgorithms The is a string element under messages generated by the UPnP Device. The element contains a list of algorithm descriptors that the control point can use to create a element in Advertise and Inhibit messages. Individual algorithm descriptors in the list are separated by space characters.

35

36

36.1.1.1.1 Complex Types None.

36.1.1.1.2 Simple Types None.

36.1.1.1.3 Attributes None.

36.1.1.1.4 Groups None.

36.1.1.1.5 Attribute Groups None.

18 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 36.1.1.1.6 Timer Events The Remote Experience Advertisement Protocol does not specify anything beyond what is specified by [UPNPARCH1].

36.1.1.1.7 Other Local Events The Remote Experience Advertisement Protocol does not specify anything beyond what is specified by [UPNPARCH1].

36.1.1.2 Advertise Action A client MUST attach an body to the Remote Experience Advertisement Protocol SOAP message that contains , , , , , , , , < ExperienceEndpointData>, , and in order to advertise an available remote experience to a UPnP device.

36.1.1.2.1 Messages

36.1.1.2.1.1 Advertise Message The HTTP header MUST specify the SOAPACTION header, as specified in [UPNPARCH1], as follows for the Advertise message: SOAPACTION: "urn:schemas-microsoft- com:service:msremotedexperience:1#Advertise" "urn:schemas-microsoft-com:service:msremotedexperience:1" is service type which comes from the device description as specified in Appendix B. "Advertise" is the soap action. The following XML shows an action sent by the client in a SOAP message. [SOAP]

37

38 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

39 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

40

41

42

43

44

45 Nonce ID

46

19 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 47

48 HostId

49

50

51 ApplicationId

52

53

54 ApplicationVersion number

55

56

57 ApplicationData payload

58

59

60 HostFriendlyName payload

61

62

63 ExperienceFriendlyName payload

64

65

66 ExperienceIconUri payload

67

68

69 ExperienceEndpointUri

70

71

72 ExperienceEndPointData payload

73

20 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 74

75 SignatureAlgorithm payload

76

77

78 Signature payload

79

80

81 HostCertificate payload

82

83

84

85

86

86.1.1.1.1.1 Advertise Response Message The server MUST reply with a SOAP response message named . The "urn:schemas-microsoft-com:service:msremotedexperience:1" XML namespace SHOULD be specified in the message. The following XML session shows an in a SOAP message. [SOAP]

87

88 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

89 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

90

91

92

93

94

94.1.1.1.1 Elements

94.1.1.1.1.1 ApplicationData

21 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 ApplicationData is the element of type string under an and SOAP body that contains additional data specific to a remote application. This data SHOULD contain further information about why the application is offline as well when it is expected to be online again.

95

96

96.1.1.1.1.1 ApplicationID ApplicationID is a GUID element of type string under an and SOAP body that is used to identify an application that will present remote experience endpoints. This ApplicationID can be used to group element in the local user interface.

97

98

98.1.1.1.1.1 ApplicationVersion ApplicationVersion is an element of type string under an and SOAP body that contains version information specific to a remote application.

99

100

100.1.1.1.1.1ExperienceEndpointData ExperienceEndpointData is an element of type string under an SOAP body that contains any information specific to connecting to the remote experience. For example, this MAY contain credentials used by the UPnP device when connecting to the remote experience.

101

102

102.1.1.1.1.1ExperienceEndpointUri ExperienceEndpointUri is an element of type string under an SOAP body that contains a given path to where the UPnP device SHOULD connect to the remote experience.

103

104

104.1.1.1.1.1ExperienceFriendlyName

22 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 ExperienceFriendlyName is an element of type string under an SOAP body that represents a specific remote experience inside of the application.

105

106

106.1.1.1.1.1ExperienceIconUri ExperienceIconUri is an element of type string under an SOAP body that gives a path to an image to be used in local user interface to represent the remote experience available on the control point.

107

108

108.1.1.1.1.1HostCertificate HostCertificate is an element of type string under an and SOAP body. It is provided by the control point when the UPnP device returns TRUE for the parameter in .

109

110

110.1.1.1.1.1HostID HostID is an element of type string under an , and SOAP body. It is a GUID used to identify a control point that provides remote experiences on the network. The HostID can be used by the UPnP device to group the element in the local user interface.

111

112

112.1.1.1.1.1Nonce Nonce is an element that contains a 4-byte unsigned integer under an , and messages generated by the UPnP Device. The Nonce is single use, therefore MUST be called prior to invoking an and action.

113

114

114.1.1.1.1.1Signature Signature allows the UPnP device to authenticate an action. To create the signature, the control point concatenates the action with all parameters in a UTF-8 encoded string, with the exception of the Signature and

23 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 the HostCertificate parameters. The algorithm used MUST be the same algorithm supplied in the SignatureAlgorithm parameter.

115

116

116.1.1.1.1.1SignatureAlgorithm SignatureAlgorithm is an element of type string under an and SOAP body that contains the algorithm descriptor that the control point used to create a selected from the list of SupportedSignatureAlgorithms retrieved in .

117

118

118.1.1.1.1 Complex Types None.

118.1.1.1.2 Simple Types None.

118.1.1.1.3 Attributes None.

118.1.1.1.4 Groups None.

118.1.1.1.5 Attribute Groups None.

118.1.1.1.6 Timer Events The Remote Experience Advertisement Protocol does not specify anything beyond what is specified by [UPNPARCH1].

118.1.1.1.7 Other Local Events The Remote Experience Advertisement Protocol does not specify anything beyond what is specified by [UPNPARCH1].

118.1.1.2 Inhibit Action A control point attaches an body to the Remote Experience Advertisement Protocol SOAP message that contains , , , , , , , , and in order to inform a UPnP device that a remote experience is unavailable.

24 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 118.1.1.2.1 Messages

118.1.1.2.1.1Inhibit Message The HTTP header MUST specify SOAPACTION as follows for an Inhibit message: SOAPACTION: "urn:schemas-microsoft- com:service:msremotedexperience:1#Inhibit" "urn:schemas-microsoft-com:service:msremotedexperience:1" is the service type as specified in device description in . "Inhibit" is the SOAP action. The following XML shows the action sent by the client in a SOAP message.

119

120 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

121 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

122

123

124

125

126

127 Nonce ID

128

129 HostId payload

130

131

132 ApplicationId payload

133

134 ApplicationVersion number

135

136

137 ApplicationData payload

138

139

25 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 140 ReasonCode for Inhibit

141

142

143 ReasonMessage for Inhibit

144

145

146 SignatureAlgorithm payload

147

148

149 Signature payload

150

151

152 HostCertificate payload

153

154

155

156

157

157.1.1.1.1.1Inhibit Response Message The server MUST reply with a SOAP response message named . The "urn:schemas-microsoft-com:service:msremotedexperience:1" XML namespace SHOULD be specified in the . The following XML session shows an in a SOAP message. [SOAP]

158

159 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

160 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

161

162

163

26 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 164

165

165.1.1.1.1 Elements

165.1.1.1.1.1ApplicationData ApplicationData is the element of type string under an and SOAP body that contains any additional data specific to a remote application. This data could contain further information about why the application is offline as well when it is expected to be online again.

166

167

167.1.1.1.1.1ApplicationID ApplicationID is a GUID element of type string under an and SOAP body that is used to identify an application that will present remoted experience endpoints. This ApplicationID can be used to group element in the local UI.

168

169

169.1.1.1.1.1ApplicationVersion ApplicationVersion is an element of type string under an and SOAP body that contains version information specific to a remote application.

170

171

171.1.1.1.1.1HostCertificate HostCertificate is an element of type string under an and SOAP body. It is provided by the control point when the UPnP device returns TRUE for the parameter in .

172

173

173.1.1.1.1.1HostID HostID is an element of type string under an , and SOAP body. It is a GUID used to identify a control point that provides remoted experiences on the network. The HostID can be used by the UPnP device to group element in the local UI.

27 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 174

175

175.1.1.1.1.1Nonce The Nonce element contains a 4-byte unsigned integer under , and messages generated by the UPnP device. Nonce is single use, and therefore MUST be called prior to invoking an and action.

176

177

177.1.1.1.1.1ReasonCode ReasonCode is an element of type 4-byte unsigned integer under an SOAP body. This code can be used by the UPnP device to take a resultant action, (for example, reconnect or show an error screen). ReasonCode is element specific.

178

179

179.1.1.1.1.1ReasonMessage ReasonMessage is an element of type string under an SOAP body that contains human readable data as to why the Inhibit action was called. ReasonMessage is specific.

180

181

181.1.1.1.1.1Signature The Signature element allows the UPnP device to authenticate an action. To create the signature, the control point concatenates the action with all parameters in a UTF-8 encoded string, with the exception of the Signature and the HostCertificate. The algorithm used is the same algorithm supplied in the SignatureAlgorithm parameter.

182

183

183.1.1.1.1.1SignatureAlgorithm SignatureAlgorithm is an element of type string under an and SOAP body that contains the algorithm descriptor that the control point used to create a selected from the list of SupportedSignatureAlgorithms retrieved in .

28 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 184

185

185.1.1.1.1 Complex Types None.

185.1.1.1.2 Simple Types None.

185.1.1.1.3 Attributes None.

185.1.1.1.4 Groups None.

185.1.1.1.5 Attribute Groups

185.1.1.1.6 Timer Events The Remote Experience Advertisement Protocol does not specify anything beyond what is specified by [UPNPARCH1].

185.1.1.1.7 Other Local Events The Remote Experience Advertisement Protocol does not specify anything beyond what is specified by [UPNPARCH1].

185.2 Client Details The device returns a response or error message to the control point. The Remote Experience Advertisement Protocol does not specify anything beyond what is specified by [UPNPARCH1].

29 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 186 Protocol Examples In this section a complete message exchange is shown between the server and client consisting of following messages.

186.1 AcquireNonce Message The control point sends a POST method in the following format to the device to invoke action on control point service.

187

188 xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

189 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

190 < soapenv:Body>

191

192

193 uuid:0b8f6d8f-a1a0-4be2-b5b0-d7b49de0cf6c

194

195

196

197

197.1 AcquireNonce Response Message The service invokes the action and responds within 30 seconds in the form of a .

198

199 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

200 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

201

202

203

204 1288959994

205 rSASSA-PSS-Default- Identifier

206 0

30 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 207

208

209

209.1 Advertise Message The control point gets information from the SOAP envelope and invokes the action informing the UPnP device that a remote experience is available for use along with all the necessary information required for connecting to a remote experience.

210

211 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

212 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

213

214

215

216 1391218849

217

218

219 uuid:0b8f6d8f-a1a0-4be2-b5b0-d7b49de0cf6c

220

221

222 uuid:f1c65f7a-c321-413d-9801-4194ebf29308

223

224

225 pc3.0.0

226

227

228 version=dv1.5.0,dv2.0.0;wolmac=001FC65F88DD;

229

31 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 230

231

232

233 Windows® 7

234

235

236

237

238 xsp://192.168.0.140:3390/

239

240

241 user=Mcx2-PPATHAN-TEST;passwordlength=20;encryptedpassword=Y0F7Mczi…

242

243

244 rSASSA-PSS-Default-Identifier

245

246

247 KegL+aHl+SyVUZgCrTPJZ28FfhB/iS8XVi6ji2rVkr6WGv2U5hyxgmkB+rdVLEe1pNWD…

248

249

250 AAABAANiMIIDXjCCAkagAwIBAgIQE5KP0u8h/J9KFqxEKBZLNjANBgkqhkiG9w0BAQU…

251

252

253

254

254.1 Advertise Response Message The device returns an HTTP:response for the action in the form of an .

32 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 255

256 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

257 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

258

259

260

261

262

262.1 Inhibit Message The following Inhibit message informs the UPnP device that a remote experience is unavailable.

263

264 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

265 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

266

267

268

269 1391218849

270

271

272 uuid:0b8f6d8f-a1a0-4be2-b5b0-d7b49de0cf6c

273

274

275 uuid:f1c65f7a-c321-413d-9801-4194ebf29308

276

277

278 pc3.0.0

279

33 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 280

281 version=dv1.5.0,dv2.0.0;wolmac=001FC65F88DD;

282

283

284

285

286

287

288 rSASSA-PSS-Default-Identifier

289

290

291 KegL+aHl+SyVUZgCrTPJZ28FfhB/iS8XVi6ji2rVkr6WGv2U5hyxgmkB+rdVLEe1pNWD…

292

293

294 AAABAANiMIIDXjCCAkagAwIBAgIQE5KP0u8h/J9KFqxEKBZLNjANBgkqhkiG9w0BAQU…

295

296

297

298

298.1 Inhibit Response Message The response to inhibit message is as follows.

299

300 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

301 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

302

303

304

305

34 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 306

35 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 307 Security

307.1 Security Considerations for Implementers The Remote Experience Advertisement Protocol does not specify anything beyond what is specified by [UPNPARCH1].

307.2 Index of Security Parameters None.

36 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 308 Appendix A: Full WSDL There is no WSDL for this protocol. For UPnP the equivalent to WSDL is the UPnP device and service descriptions as detailed in Appendix B and C respectively.

37 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 309 Appendix B: UPnP Device Description The following is a sample service information of the Remote Experience Advertisement Protocol that a device description should include as a part of the device's service list. The default namespace "urn:schemas-upnp-org:device-1-0" is as specified in [UPNPARCH1] sections 2.1 and 2.6.

310

311

312

313 xmlns:pnpx="http://schemas.microsoft.com/windows/pnpx/2005/11">

314

315 1

316 0

317

318

319 MediaDevices

320 urn:schemas-microsoft-com:device:MediaCenterExtenderMFD:1

321 Xbox 360 Media Center Extender

322 Microsoft Corporation

323 http://www.xbox.com/

324 Xbox 360 Media Center Extender

325 Xbox 360

326

327 http://go.microsoft.com/fwlink/?LinkID=53081

328

329 uuid:10000000-0000-0000-0200-00125A702E78

330

331

332

333 image/jpeg

334 48

38 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 335 48

336 24

337 /IconSM.jpg

338

339

340 image/jpeg

341 120

342 120

343 24

344 /IconLRG.jpg

345

346

347 image/png

348 48

349 48

350 24

351 /IconSM.png

352

353

354 image/png

355 120

356 120

357 24

358 /IconLRG.png

359

360

361 image/png

362 152

363 152

39 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 364 24

365 /IconMCE.png

366

367

368

369

370 urn:schemas-microsoft-com:service:NULL:1

371 urn:microsoft-com:serviceId:NULL

372 /XD/NULL.xml

373 /UD/?0

374

375

376

377

378

379 MICROSOFT_MCX_0001

380 MediaDevices

381 dv2.0.0

382 pc2.0.0

383 1

384 urn:schemas-microsoft-com:device:MediaCenterExtender:1

385 Xbox 360 Media Center Extender

386 Microsoft Corporation

387 http://www.microsoft.com/

388 Xbox 360 Media Center Extender

389 Xbox 360

390

391 http://go.microsoft.com/fwlink/?LinkID=53081

392

40 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 393 uuid:20000000-0000-0000-0200-00125A702E78

394

395

396

397 image/jpeg

398 48

399 48

400 24

401 /IconSM.jpg

402

403

404 image/jpeg

405 120

406 120

407 24

408 /IconLRG.jpg

409

410

411 image/png

412 48

413 48

414 24

415 /IconSM.png

416

417

418 image/png

419 120

420 120

421 24

41 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 422 /IconLRG.png

423

424

425 image/png

426 152

427 152

428 24

429 /IconMCE.png

430

431

432

433

434 urn:schemas-microsoft- com:service:msremotedexperience:1

435 urn:schemas-microsoft-com:serviceId:MSRX

436 /XD/msremotedexperience.xml

437 /UD/?2

438

439

440

441

442

443

444

42 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 445 Appendix C: A Full UPnP Service Description The following is a sample service description of the Remote Experience Advertisement Protocol that the device is required to publish before the protocol takes action as a part of the prerequisite, as specified in section 1.5. The default namespace "urn:schemas-upnp-org:service-1-0" is as specified in [UPNPARCH1] sections 2.3 and 2.7.

446

447

448

449

450 1

451 0

452

453

454

455 AcquireNonce

456

457

458 HostId

459 in

460 A_ARG_TYPE_EndpointID

461

462

463 Nonce

464 out

465 A_ARG_TYPE_Nonce

466

467

468 SupportedSignatureAlgorithms

469 out

470 A_ARG_TYPE_SignAlgorithmList

43 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 471

472

473 AttachCertificate

474 out

475 A_ARG_TYPE_Bool

476

477

478

479

480 Advertise

481

482

483 Nonce

484 in

485 A_ARG_TYPE_Nonce

486

487

488 HostId

489 in

490 A_ARG_TYPE_EndpointID

491

492

493 ApplicationId

494 in

495 A_ARG_TYPE_EndpointID

496

497

498 ApplicationVersion

499 in

44 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 500 A_ARG_TYPE_Version

501

502

503 ApplicationData

504 in

505 A_ARG_TYPE_AnyString

506

507

508 HostFriendlyName

509 in

510 A_ARG_TYPE_Name

511

512

513 ExperienceFriendlyName

514 in

515 A_ARG_TYPE_Name

516

517

518 ExperienceIconUri

519 in

520 A_ARG_TYPE_Uri

521

522

523 ExperienceEndpointUri

524 in

525 A_ARG_TYPE_Uri

526

527

528 ExperienceEndpointData

45 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 529 in

530 A_ARG_TYPE_AnyString

531

532

533 SignatureAlgorithm

534 in

535 A_ARG_TYPE_SignAlgorithm

536

537

538 Signature

539 in

540 A_ARG_TYPE_Signature

541

542

543 HostCertificate

544 in

545 A_ARG_TYPE_Certificate

546

547

548

549

550 Inhibit

551

552

553 Nonce

554 in

555 A_ARG_TYPE_Nonce

556

557

46 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 558 HostId

559 in

560 A_ARG_TYPE_EndpointID

561

562

563 ApplicationId

564 in

565 A_ARG_TYPE_EndpointID

566

567

568 ApplicationVersion

569 in

570 A_ARG_TYPE_Version

571

572

573 ApplicationData

574 in

575 A_ARG_TYPE_AnyString

576

577

578 ReasonCode

579 in

580 A_ARG_TYPE_ReasonCode

581

582

583 ReasonMessage

584 in

585 A_ARG_TYPE_AnyString

586

47 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 587

588 SignatureAlgorithm

589 in

590 A_ARG_TYPE_SignAlgorithm

591

592

593 Signature

594 in

595 A_ARG_TYPE_Signature

596

597

598 HostCertificate

599 in

600 A_ARG_TYPE_Certificate

601

602

603

604

605

606

607 A_ARG_TYPE_EndpointID

608 string

609

610

611 A_ARG_TYPE_Nonce

612 ui4

613

614

615 A_ARG_TYPE_SignAlgorithmList

48 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 616 string

617

618

619 A_ARG_TYPE_Bool

620 boolean

621

622

623 A_ARG_TYPE_Version

624 string

625

626

627 A_ARG_TYPE_AnyString

628 string

629

630

631 A_ARG_TYPE_Name

632 string

633

634

635 A_ARG_TYPE_Uri

636 string

637

638

639 A_ARG_TYPE_SignAlgorithm

640 string

641

642

643 A_ARG_TYPE_Signature

644 string

49 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 645

646

647 A_ARG_TYPE_Certificate

648 string

649

650

651 A_ARG_TYPE_ReasonCode

652 ui4

653

654

655

50 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 656 Appendix D: Product Behavior The information in this specification is applicable to the following Microsoft products or supplemental software. References to product versions include released service packs. § Windows Vista operating system § Windows 7 operating system § Windows 8 operating system § Windows 8.1 operating system Exceptions, if any, are noted below. If a service pack or Quick Fix Engineering (QFE) number appears with the product version, behavior changed in that service pack or QFE. The new behavior also applies to subsequent service packs of the product unless otherwise specified. If a product edition appears with the product version, behavior is different in that product edition. Unless otherwise specified, any statement of optional behavior in this specification that is prescribed using the terms "SHOULD" or "SHOULD NOT" implies product behavior in accordance with the SHOULD or SHOULD NOT prescription. Unless otherwise specified, the term "MAY" implies that the product does not follow the prescription.

51 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 657 Change Tracking No table of changes is available. The document is either new or has had no changes since its last release. Index A server 15 Introduction 7 Abstract data model 14 server 14 AcquireNonce M action 15 example 26 Messages AcquireNonceResponse example 26 AcquireNonce action 15 Advertise Advertise action 17 action 17 attribute groups 13 example 26 attributes 13 AdvertiseResponse example 27 complex types 12 Applicability 11 elements 12 Attribute groups 13 enumerated 12 Attributes 13 groups 13 Inhibit action 21 C namespaces 12 simple types 12 syntax 12 Capability negotiation 11 transport 12 Change tracking 39 Complex types 12 N D Namespaces 12 Normative references 8 Data model - abstract 14 server 14 O E Operations AcquireNonce Action 15 Examples Advertise Action 17 AcquireNonce 26 Inhibit Action 21 AcquireNonceResponse 26 Overview (synopsis) 8 Advertise 26 AdvertiseResponse 27 Inhibit 27 P InhibitResponse 28 overview 26 Parameters - security index 29 Preconditions 11 F Prerequisites 11 Product behavior 38 Fields - vendor-extensible 11 Full WSDL 30 R

G References 8 informative 8 normative 8 Glossary 7 Relationship to other protocols 10 Groups 13

I S Security Implementer - security considerations 29 implementer considerations 29 Index of security parameters 29 parameter index 29 Informative references 8 Server Inhibit abstract data model 14 action 21 AcquireNonce Action operation 15 example 27 Advertise Action operation 17 InhibitResponse example 28 Inhibit Action operation 21 Initialization 15

52 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017 initialization 15 timers 15 U Simple types 12 Standards assignments 11 UPnP Syntax device description 31 messages - overview 12 service description 34 Syntax - messages - overview 12

T V Vendor-extensible fields 11 Timers 15 Versioning 11 server 15 Tracking changes 39 Transport 12 W Types complex 12 WSDL 30 simple 12

53 / 53 [MS-RXAD] - v20170601 Remote Experience Advertisement Protocol Copyright © 2017 Microsoft Corporation Release: June 1, 2017

Recommended publications