Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Program Windows Communication Foundation (WCF) implementuje protokoły WS-Atomic Transaction i WS-Coordination.
| Specyfikacja/dokument | wersja | Odnośnik |
|---|---|---|
| WS-Coordination | 1.0 1.1 |
https://schemas.xmlsoap.org/ws/2004/10/wscoor/ https://docs.oasis-open.org/ws-tx/wscoor/2006/06 |
| WS-AtomicTransaction | 1.0 1.1 |
https://schemas.xmlsoap.org/ws/2004/10/wsat/ https://docs.oasis-open.org/ws-tx/wsat/2006/06 |
Współdziałanie tych specyfikacji protokołu jest wymagane na dwóch poziomach: między aplikacjami i między menedżerami transakcji (zobacz poniższą ilustrację). Specyfikacje opisują szczegółowo formaty komunikatów i wymianę komunikatów dla obu poziomów współdziałania. Niektóre zabezpieczenia, niezawodność i kodowania stosowane podczas wymiany między aplikacjami mają zastosowanie tak samo, jak w przypadku zwykłej wymiany aplikacji. Jednak pomyślne współdziałanie między menedżerami transakcji wymaga umowy dotyczącej określonego powiązania, ponieważ zwykle nie jest skonfigurowane przez użytkownika.
W tym artykule opisano kompozycję specyfikacji WS-Atomic Transaction (WS-AT) z zabezpieczeniami i opisano bezpieczne powiązanie używane do komunikacji między menedżerami transakcji. Podejście opisane w tym artykule zostało pomyślnie przetestowane z innymi implementacjami WS-AT i WS-Coordination, w tym IBM, IONA, Sun Microsystems i innymi.
Na poniższej ilustracji przedstawiono współdziałanie dwóch menedżerów transakcji, Menedżer transakcji 1 i Menedżer transakcji 2 oraz dwie aplikacje, Application 1 i Application 2:
Rozważ typowy scenariusz transakcji WS-Coordination/WS-Atomic z jednym inicjatorem (I) i jednym uczestnikiem (P). Zarówno inicjator, jak i uczestnik mają odpowiednio menedżerów transakcji (ITM i PTM). W tym artykule zatwierdzenie dwufazowe określane jest jako 2PC.
- UtwórzKontekstKoordynacji
- CreateCoordinationContextResponse
- Rejestracja (ukończenie)
- RejestrujOdpowiedź
- Komunikat aplikacji
- CreateCoordinationContext z kontekstem
- Rejestr (trwały)
- RejestrujOdpowiedź
- CreateCoordinationContextResponse
- Rejestr (trwały)
- RejestrujOdpowiedź
- Odpowiedź komunikatu aplikacji
- Zatwierdzenie (ukończenie)
- Przygotuj (2PC)
- Przygotuj (2PC)
- Przygotowane (2PC)
- Przygotowane (2PC)
- Zobowiązanie (ukończenie)
- Zatwierdzenie (2PC)
- Zatwierdzenie (2PC)
- Zakotwiczone (2PC)
- Zakotwiczone (2PC)
Rysunek i tabela ilustrują cztery klasy komunikatów z punktu widzenia zabezpieczeń:
Komunikaty aktywacji (CreateCoordinationContext i CreateCoordinationContextResponse).
Komunikaty rejestracyjne (Register and RegisterResponse)
Komunikaty protokołu (Przygotowanie, Wycofanie, Zatwierdzenie, Przerwanie itd.).
Komunikaty aplikacji.
Pierwsze trzy klasy komunikatów są traktowane jako komunikaty Menedżera transakcji, a ich konfiguracja powiązania jest opisana w sekcji "Wymiana komunikatów aplikacji" w dalszej części tego tematu. Czwarta klasa komunikatów to komunikaty aplikacyjne do aplikacji i została opisana w sekcji "Przykłady komunikatów" w dalszej części tego tematu. W tej sekcji opisano powiązania protokołu używane dla każdej z tych klas przez usługę WCF.
W tym dokumencie są używane następujące przestrzenie nazw XML i skojarzone prefiksy.
| Prefiks | wersja | Identyfikator URI przestrzeni nazw |
|---|---|---|
| s11 | https://schemas.xmlsoap.org/soap/envelope/ | |
| wsa | Pre-1.0 1.0 |
https://www.w3.org/2004/08/addressinghttps://www.w3.org/2005/08/addressing/ |
| wscoor | 1.0 1.1 |
https://schemas.xmlsoap.org/ws/2004/10/wscoor/ https://docs.oasis-open.org/ws-tx/wscoor/2006/06 |
| wsat | 1.0 1.1 |
https://schemas.xmlsoap.org/ws/2004/10/wsat/ https://docs.oasis-open.org/ws-tx/wsat/2006/06 |
| t | Pre-1.3 1.3 |
https://schemas.xmlsoap.org/ws/2005/02/trust/ https://docs.oasis-open.org/ws-sx/ws-trust/200512 |
| o | https://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd | |
| xsd | https://www.w3.org/2001/XMLSchema |
Powiązania menedżera transakcji
R1001: Menedżerowie transakcji uczestniczący w transakcji WS-AT 1.0 muszą używać protokołu SOAP 1.1 oraz standardu WS-Addressing 2004/08 dla wymiany transakcji WS-Atomic i komunikatów WS-Coordination.
R1002: Menedżerowie transakcji uczestniczący w transakcji WS-AT 1.1 muszą używać protokołu SOAP 1.1 oraz WS-Addressing 2005/08 do realizacji WS-Atomic transakcji i wymiany komunikatów WS-Coordination.
Komunikaty aplikacji nie są ograniczone do tych powiązań i zostały opisane w dalszej części.
Powiązanie HTTPS dla menedżera transakcji
Powiązanie HTTPS menedżera transakcji opiera się wyłącznie na zabezpieczeniach transportu w celu osiągnięcia zabezpieczeń i ustanowienia zaufania między każdą parą nadawcy-odbiornika w drzewie transakcji.
Konfiguracja transportu HTTPS
Certyfikaty X.509 są używane do ustanawiania tożsamości menedżera transakcji. Wymagane jest uwierzytelnianie klienta/serwera, a autoryzacja klienta/serwera jest pozostawiona jako szczegóły implementacji:
R1111: Certyfikaty X.509 przedstawione za pośrednictwem przewodu muszą mieć nazwę podmiotu zgodną z w pełni kwalifikowaną nazwą domeny (FQDN) maszyny źródłowej.
B1112: System DNS musi działać między każdą parą nadawcy-odbiornika w systemie, aby sprawdzanie nazwy podmiotu X.509 powiodło się.
Konfiguracja wiązania aktywacji i rejestracji
WCF wymaga powiązania dwukierunkowego żądania/odpowiedzi z korelacją za pośrednictwem protokołu HTTPS. (Aby uzyskać więcej informacji na temat korelacji i opisów wzorców wymiany wiadomości żądania/odpowiedzi, zobacz WS-Atomic Transaction, Sekcja 8).
Konfiguracja powiązania protokołu 2PC
Program WCF obsługuje komunikaty jednokierunkowe (datagram) za pośrednictwem protokołu HTTPS. Korelacja między komunikatami jest pozostawiona do rozwiązania w ramach szczegółów implementacji.
B1131: Implementacje muszą obsługiwać wsa:ReferenceParameters zgodnie z opisem w WS-Addressing, aby zapewnić korelację komunikatów 2PC WCF.
Menedżer transakcji z mieszanym powiązaniem zabezpieczeń
Jest to alternatywne wiązanie (tryb mieszany), które korzysta z zabezpieczenia transportowego w połączeniu z modelem wystawionych tokenów WS-Coordination na potrzeby ustanowienia tożsamości. Aktywacja i rejestracja to jedyne elementy, które różnią się między dwoma powiązaniami.
Konfiguracja transportu HTTPS
Certyfikaty X.509 są używane do ustanawiania tożsamości menedżera transakcji. Wymagane jest uwierzytelnianie klient/serwer, a autoryzacja klient/serwer pozostaje szczegółem implementacyjnym.
Konfiguracja wiązania wiadomości aktywacyjnej
Komunikaty aktywacji zwykle nie uczestniczą w współdziałaniu, ponieważ zazwyczaj występują między aplikacją a lokalnym Menedżerem transakcji.
B1221: WCF używa dwukierunkowego wiązania HTTPS (opisanego w Messaging Protocols) dla komunikatów aktywacji. Komunikaty żądań i odpowiedzi są skorelowane przy użyciu WS-Addressing 2004/08 dla WS-AT 1.0 i WS-Addressing 2005/08 dla WS-AT 1.1.
WS-Atomic Specyfikacja transakcji, sekcja 8, opisuje dalsze szczegóły korelacji i wzorców wymiany komunikatów.
R1222: Po otrzymaniu
CreateCoordinationContextkoordynator musi wydaćSecurityContextTokenz powiązanym sekretemSTx. Ten token jest zwracany wewnątrz nagłówkat:IssuedTokenszgodnie ze specyfikacją WS-Trust.R1223: Jeśli aktywacja występuje w istniejącym kontekście koordynacji, nagłówek
t:IssuedTokensskojarzony z istniejącym kontekstemSecurityContextTokenmusi przepływać w komunikacieCreateCoordinationContext.
t:IssuedTokens Nowy nagłówek powinien zostać wygenerowany do dołączania do wiadomości wychodzącejwscoor:CreateCoordinationContextResponse.
Konfiguracja powiązania wiadomości rejestracyjnej
B1231: WCF używa dwukierunkowego powiązania HTTPS (opisanego w artykule Messaging Protocols). Komunikaty żądań i odpowiedzi są skorelowane przy użyciu WS-Addressing 2004/08 dla WS-AT 1.0 i WS-Addressing 2005/08 dla WS-AT 1.1.
WS-AtomicTransaction, sekcja 8, opisuje dalsze szczegóły dotyczące korelacji i opisów wzorców wymiany komunikatów.
R1232: Komunikaty wychodzące wscoor:Register muszą używać trybu uwierzytelniania opisanego IssuedTokenOverTransport w Protokołach zabezpieczeń.
Element wsse:Timestamp musi być podpisany przy użyciu wystawionego SecurityContextToken STx. Ten podpis jest dowodem posiadania tokenu skojarzonego z określoną transakcją i służy do uwierzytelniania uczestnika rejestracji w transakcji. Komunikat RegistrationResponse jest wysyłany z powrotem za pośrednictwem protokołu HTTPS.
Konfiguracja powiązania protokołu 2PC
Program WCF obsługuje komunikaty jednokierunkowe (datagram) za pośrednictwem protokołu HTTPS. Korelacja między komunikatami jest pozostawiona do rozwiązania w ramach szczegółów implementacji.
B1241: Implementacje muszą obsługiwać obsługę wsa:ReferenceParameters zgodnie z opisem w WS-Addressing w celu osiągnięcia korelacji komunikatów 2PC programu WCF.
Wymiana komunikatów aplikacji
Aplikacje mogą używać dowolnego określonego powiązania dla komunikatów aplikacji do aplikacji, o ile powiązanie spełnia następujące wymagania dotyczące zabezpieczeń:
R2001: Komunikaty aplikacji do aplikacji muszą zawierać nagłówki
t:IssuedTokensorazCoordinationContextw nagłówku komunikatu.R2002: Trzeba zapewnić integralność i poufność
t:IssuedToken.
Nagłówek CoordinationContext zawiera wscoor:Identifier. Chociaż definicja xsd:AnyURI umożliwia korzystanie zarówno z bezwzględnych, jak i względnych identyfikatorów URI, usługa WCF obsługuje tylko wscoor:Identifiers identyfikatory URI bezwzględne.
B2003: Jeśli wscoor:Identifier w obrębie wscoor:CoordinationContext jest względnym identyfikatorem URI, błędy będą zwracane przez transakcyjne usługi WCF.
Przykłady komunikatów
UtwórzKontekstKoordynacji Żądanie/Odpowiedź Wiadomości
Następujące komunikaty są zgodne ze wzorcem żądania/odpowiedzi.
CreateCoordinationContext w kontekście WSCoor 1.0
<s:Envelope>
<s:Header>
<a:Action>http://.../ws/2004/10/wscoor/CreateCoordinationContext</Action>
<a:MessageID>urn:uuid:069f5104-fd88-4264-9f99-60032a82854e</MessageID>
<a:ReplyTo>
<Address>https://...</a:Address>
</a:ReplyTo>
<a:To>https://...</a:To>
<wsse:Security>
<u:Timestamp>
<wsu:Created>2005-12-15T23:36:09.921Z</wsu:Created>
<wsu:Expires>2005-12-15T23:41:09.921Z</wsu:Expires>
</u:Timestamp>
</wsse:Security>
</s:Header>
<s:Body xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<wscoor:CreateCoordinationContext>
<wscoor:CoordinationType>...</wscoor:CoordinationType>
</wscoor:CreateCoordinationContext>
</s:Body>
</s:Envelope>
CreateCoordinationContext with WSCoor 1.1 (CreateCoordinationContext with WSCoor 1.1)
<s:Envelope>
<s:Header>
<a:Action>http://docs.oasis-open.org/ws-tx/wscoor/2006/06/CreateCoordinationContext
</a:Action>
<a:MessageID>urn:uuid:069f5104-fd88-4264-9f99-60032a82854e</MessageID>
<a:ReplyTo>
<Address>https://...</a:Address>
</a:ReplyTo>
<a:To>https://...</a:To>
<wsse:Security>
<u:Timestamp>
<wsu:Created>2005-12-15T23:36:09.921Z</wsu:Created>
<wsu:Expires>2005-12-15T23:41:09.921Z</wsu:Expires>
</u:Timestamp>
</wsse:Security>
</s:Header>
<s:Body xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<wscoor:CreateCoordinationContext>
<wscoor:CoordinationType>...</wscoor:CoordinationType>
</wscoor:CreateCoordinationContext>
</s:Body>
</s:Envelope>
CreateCoordinationContextResponse w wersjach Trust Pre-1.3 i WSCoor 1.0
<s:Envelope>
<!-- Data below is shown in the clear for
illustration purposes only. -->
<s:Header>
<a:Action>./ws/2004/10/wscoor/CreateCoordinationContextResponse </a:Action>
<a:RelatesTo>urn:uuid:069f5104-fd88-4264-9f99-60032a82854e</a:RelatesTo>
<a:To s:mustUnderstand="1">https://... </a:To>
<t:IssuedTokens>
<wst:RequestSecurityTokenResponse
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wssu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust"
xmlns:wsc="http://schemas.xmlsoap.org/ws/2005/02/sc"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
<wst:TokenType>http://schemas.xmlsoap.org/ws/2005/02/sc/sct</wst:TokenType>
<wst:RequestedSecurityToken>
<wsc:SecurityContextToken>
<wssu:Identifier>
http://fabrikam123.com/SCTi
</wssu:Identifier>
</wsc:SecurityContextToken>
</wst:RequestedSecurityToken>
<wsp:AppliesTo>
http://fabrikam123.com/CCi
</wsp:AppliesTo>
<wst:RequestedAttachedReference>
<wsse:SecurityTokenReference >
<wsse:Reference
ValueType="http://schemas.xmlsoap.org/ws/2005/02/sc/sct"
URI="http://fabrikam123.com/SCTi"/>
</wsse:SecurityTokenReference>
</wst:RequestedAttachedReference>
<wst:RequestedUnattachedReference>
<wsse:SecurityTokenReference>
<wsse:Reference
ValueType="http://schemas.xmlsoap.org/ws/2005/02/sc/sct"
URI="http://fabrikam123.com/SCTi"/>
</wsse:SecurityTokenReference>
</wst:RequestedUnattachedReference>
<wst:RequestedProofToken>
<wst:BinarySecret
Type="http://schemas.xmlsoap.org/ws/2005/02/trust/SymmetricKey">
<!-- base64 encoded value -->
</wst:BinarySecret>
</wst:RequestedProofToken>
<wst:Lifetime>
<wssu:Created>2005-10-24T20:19:26.526Z</wssu:Created>
<wssu:Expires>2005-10-25T06:24:26.526Z</wssu:Expires>
</wst:Lifetime>
<wst:KeySize>256</wst:KeySize>
</wst:RequestSecurityTokenResponse>
</t:IssuedTokens>
<o:Security xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="_0">
<u:Created>2005-12-15T23:36:12.015Z</u:Created>
<u:Expires>2005-12-15T23:41:12.015Z</u:Expires>
</u:Timestamp>
</o:Security>
</s:Header>
<s:Body>
<wscoor:CreateCoordinationContextResponse>
<wscoor:CoordinationContext>
<wscoor:Identifier>
http://fabrikam123.com/CCi
</wscoor:Identifier>
<wscoor:Expires>...</wscoor:Expires>
<wscoor:CoordinationType>...</wscoor:CoordinationType>
<wscoor:RegistrationService>
<a:Address>https://...</a:Address>
<a:ReferenceParameters>
...
</a:ReferenceParameters>
</wscoor:RegistrationService>
</wscoor:CoordinationContext>
</wscoor:CreateCoordinationContextResponse>
</s:Body>
</s:Envelope>
CreateCoordinationContextResponse z Trust 1.3 i WSCoor 1.1
<s:Envelope>
<!-- Data below is shown in the clear for illustration purposes only. -->
<s:Header>
<a:Action>http://docs.oasis-open.org/ws-tx/wscoor/2006/06/CreateCoordinationContextResponse </a:Action>
<a:RelatesTo>urn:uuid:069f5104-fd88-4264-9f99-60032a82854e</a:RelatesTo>
<a:To s:mustUnderstand="1">https://... </a:To>
<t:IssuedTokens>
<wst:RequestSecurityTokenResponse
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wssu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wst="http://docs.oasis-open.org/ws-sx/ws-trust/200512"
xmlns:wsc="http://schemas.xmlsoap.org/ws/2005/02/sc"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
<wst:TokenType>http://schemas.xmlsoap.org/ws/2005/02/sc/sct</wst:TokenType>
<wst:RequestedSecurityToken>
<wsc:SecurityContextToken>
<wssu:Identifier> http://fabrikam123.com/SCTi
</wssu:Identifier>
</wsc:SecurityContextToken>
</wst:RequestedSecurityToken>
<wsp:AppliesTo> http://fabrikam123.com/CCi </wsp:AppliesTo>
<wst:RequestedAttachedReference>
<wsse:SecurityTokenReference >
<wsse:Reference
ValueType="http://schemas.xmlsoap.org/ws/2005/02/sc/sct"
URI="http://fabrikam123.com/SCTi"/>
</wsse:SecurityTokenReference>
</wst:RequestedAttachedReference>
<wst:RequestedUnattachedReference>
<wsse:SecurityTokenReference>
<wsse:Reference
ValueType="http://schemas.xmlsoap.org/ws/2005/02/sc/sct"
URI="http://fabrikam123.com/SCTi"/>
</wsse:SecurityTokenReference>
</wst:RequestedUnattachedReference>
<wst:RequestedProofToken>
<wst:BinarySecret
Type="http://docs.oasis-open.org/ws-sx/ws-trust/200512/SymmetricKey">
<!-- base64 encoded value -->
</wst:BinarySecret>
</wst:RequestedProofToken>
<wst:Lifetime>
<wssu:Created>2005-10-24T20:19:26.526Z</wssu:Created>
<wssu:Expires>2005-10-25T06:24:26.526Z</wssu:Expires>
</wst:Lifetime>
<wst:KeySize>256</wst:KeySize>
</wst:RequestSecurityTokenResponse>
</t:IssuedTokens>
<o:Security xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="_0">
<u:Created>2005-12-15T23:36:12.015Z</u:Created>
<u:Expires>2005-12-15T23:41:12.015Z</u:Expires>
</u:Timestamp>
</o:Security>
</s:Header>
<s:Body>
<wscoor:CreateCoordinationContextResponse>
<wscoor:CoordinationContext>
<wscoor:Identifier> http://fabrikam123.com/CCi
</wscoor:Identifier>
<wscoor:Expires>...</wscoor:Expires>
<wscoor:CoordinationType>...</wscoor:CoordinationType>
<wscoor:RegistrationService>
<a:Address>https://...</a:Address>
<a:ReferenceParameters> ...
</a:ReferenceParameters>
</wscoor:RegistrationService>
</wscoor:CoordinationContext>
</wscoor:CreateCoordinationContextResponse>
</s:Body>
</s:Envelope>
Komunikaty dotyczące rejestracji
Następujące komunikaty to komunikaty rejestracyjne.
Rejestrowanie w aplikacji WSCoor 1.0
<s:Envelope>
<s:Header>
<a:Action>http://schemas.xmlsoap.org/ws/2004/10/wscoor/Register</a:Action>
<a:MessageID>urn:uuid:ed418b86-a75e-4aea-9d4e-a5d0cb5c088e</a:MessageID>
<a:ReplyTo>
<a:Address>https://...</a:Address>
</a:ReplyTo>
<a:To>https://...</a:To>
<wsse:Security
s:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wssu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wssu:Timestamp wssu:Id="_0" >
<wssu:Created>2005-12-15T23:36:13.827Z</wssu:Created>
<wssu:Expires>2005-12-15T23:41:13.827Z</wssu:Expires>
</wssu:Timestamp>
<wsc:SecurityContextToken>
<wssu:Identifier>
http://fabrikam123.com/SCTi
</wssu:Identifier>
</wsc:SecurityContextToken>
<!-- supporting signature over the timestamp -->
<wsse:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/>
<ds:Reference URI="#_0">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>
alRzyhjLgoUOYoh8cx4n75eTcUk=
</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>YZYjnVvSOVasAQqQxaaviTSWtqI=</ds:SignatureValue>
<ds:KeyInfo>
<wsse:SecurityTokenReference
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:Reference
URI="http://fabrikam123.com/SCTi"/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</wsse:Signature>
</wsse:Security>
</s:Header>
<s:Body xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<wscoor:Register>
<wscoor:ProtocolIdentifier>...</wscoor:ProtocolIdentifier>
<wscoor:ParticipantProtocolService>
<a:Address>https://... </a:Address>
</wscoor:ParticipantProtocolService>
</wscoor:Register>
</s:Body>
</s:Envelope>
Rejestrowanie w aplikacji WSCoor 1.1
<s:Envelope>
<s:Header>
<a:Action>http://docs.oasis-open.org/ws-tx/wscoor/2006/06/Register</a:Action>
<a:MessageID>urn:uuid:ed418b86-a75e-4aea-9d4e-a5d0cb5c088e</a:MessageID>
<a:ReplyTo>
<a:Address>https://...</a:Address>
</a:ReplyTo>
<a:To>https://...</a:To>
<wsse:Security
s:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wssu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wssu:Timestamp wssu:Id="_0" >
<wssu:Created>2005-12-15T23:36:13.827Z</wssu:Created>
<wssu:Expires>2005-12-15T23:41:13.827Z</wssu:Expires>
</wssu:Timestamp>
<wsc:SecurityContextToken>
<wssu:Identifier> http://fabrikam123.com/SCTi
</wssu:Identifier>
</wsc:SecurityContextToken>
<!-- supporting signature over the timestamp -->
<wsse:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/>
<ds:Reference URI="#_0">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue> alRzyhjLgoUOYoh8cx4n75eTcUk=
</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>YZYjnVvSOVasAQqQxaaviTSWtqI=
</ds:SignatureValue>
<ds:KeyInfo>
<wsse:SecurityTokenReference xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:Reference URI="http://fabrikam123.com/SCTi"/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</wsse:Signature>
</wsse:Security>
</s:Header>
<s:Body xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<wscoor:Register>
<wscoor:ProtocolIdentifier>...</wscoor:ProtocolIdentifier>
<wscoor:ParticipantProtocolService>
<a:Address>https://... </a:Address>
</wscoor:ParticipantProtocolService>
</wscoor:Register>
</s:Body>
</s:Envelope>
Rejestrowanie odpowiedzi za pomocą programu WSCoor 1.0
<s:Envelope>
<s:Header>
<a:Action>
http://schemas.xmlsoap.org/ws/2004/10/wscoor/RegisterResponse
</a:Action>
<a:MessageID>urn:uuid:ed418b86-a75e-4aea-9d4e-a5d0cb5c088d</a:MessageID>
<a:RelatesTo>
urn:uuid:ed418b86-a75e-4aea-9d4e-a5d0cb5c088e
</a:RelatesTo>
<a:To>https://...</a:To>
<wsse:Security
s:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wssu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wssu:Timestamp>
<wssu:Created>2005-12-15T23:36:13.827Z</wssu:Created>
<wssu:Expires>2005-12-15T23:41:13.827Z</wssu:Expires>
</wssu:Timestamp>
</wsse:Security>
</s:Header>
<s:Body xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<wscoor:RegisterResponse>
<wscoor:CoordinatorProtocolService>
<a:Address>https://...</a:Address>
<a:ReferenceParameters>
...
</a:ReferenceParameters>
</wscoor:CoordinatorProtocolService>
</wscoor:RegisterResponse>
</s:Body>
</s:Envelope>
Rejestrowanie odpowiedzi za pomocą programu WSCoor 1.1
<s:Envelope>
<s:Header>
<a:Action> http://docs.oasis-open.org/ws-tx/wscoor/2006/06/RegisterResponse
</a:Action>
<a:MessageID>urn:uuid:ed418b86-a75e-4aea-9d4e-a5d0cb5c088d</a:MessageID>
<a:RelatesTo> urn:uuid:ed418b86-a75e-4aea-9d4e-a5d0cb5c088e </a:RelatesTo>
<a:To>https://...</a:To>
<wsse:Security
s:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wssu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wssu:Timestamp>
<wssu:Created>2005-12-15T23:36:13.827Z</wssu:Created>
<wssu:Expires>2005-12-15T23:41:13.827Z</wssu:Expires>
</wssu:Timestamp>
</wsse:Security>
</s:Header>
<s:Body xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<wscoor:RegisterResponse>
<wscoor:CoordinatorProtocolService>
<a:Address>https://...</a:Address>
<a:ReferenceParameters> ... </a:ReferenceParameters>
</wscoor:CoordinatorProtocolService>
</wscoor:RegisterResponse>
</s:Body>
</s:Envelope>
Komunikaty protokołu zatwierdzania dwufazowego
Poniższy komunikat odnosi się do protokołu zatwierdzania dwufazowego (2PC).
Zatwierdzanie za pomocą programu WSAT 1.0
<s:Envelope>
<s:Header>
<a:Action>http://.../ws/2004/10/wsat/Commit</a:Action>
<a:To>https://...</a:To>
<wsse:Security
s:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wssu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wssu:Timestamp wssu:Id="_0" >
<wssu:Created>2005-12-15T23:36:13.827Z</wssu:Created>
<wssu:Expires>2005-12-15T23:41:13.827Z</wssu:Expires>
</wssu:Timestamp>
</wsse:Security>
</s:Header>
<s:Body xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<wsat:Commit />
</s:Body>
</s:Envelope>
Zatwierdzanie za pomocą programu WSAT 1.1
<s:Envelope>
<s:Header>
<a:Action>http://docs.oasis-open.org/ws-tx/wsat/2006/06</a:Action>
<a:To>https://...</a:To>
<wsse:Security
s:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wssu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wssu:Timestamp wssu:Id="_0" >
<wssu:Created>2005-12-15T23:36:13.827Z</wssu:Created>
<wssu:Expires>2005-12-15T23:41:13.827Z</wssu:Expires>
</wssu:Timestamp>
</wsse:Security>
</s:Header>
<s:Body xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<wsat:Commit />
</s:Body>
</s:Envelope>
Komunikaty aplikacji
Następujące komunikaty to komunikaty aplikacji.
Żądanie komunikatu aplikacji
<s:Envelope>
<s:Header>
<!-- Addressing headers, all signed-->
<wsse:Security s:mustUnderstand="1">
<wssu:Timestamp wssu:Id="timestamp">
<wssu:Created>2005-10-25T06:29:18.703Z</wssu:Created>
<wssu:Expires>2005-10-25T06:34:18.703Z</wssu:Expires>
</wssu:Timestamp>
<wsse:BinarySecurityToken
wssu:Id="IA_Certificate"
ValueType="...#X509v3"
EncodingType="...#Base64Binary">
<!-- IA certificate -->
</wsse:BinarySecurityToken>
<e:EncryptedKey Id="encrypted_key">
<!-- ephemeral key encrypted for PA certificate -->
<e:ReferenceList xmlns:e="http://www.w3.org/2001/04/xmlenc#">
<e:DataReference URI="#encrypted_body"/>
<e:DataReference URI="#encrypted_CCi"/>
<e:DataReference URI="#encrypted_issuedtokens"/>
</e:ReferenceList>
</e:EncryptedKey>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<!-- signature over Addressing headers, Timestamp, and Body -->
</Signature>
</wsse:Security>
<wsse11:EncryptedHeader>
<!-- encrypted wscoor:CoordinationContext header containing CCi -->
</wsse11:EncryptedHeader>
<wsse11:EncryptedHeader>
<!-- encrypted wst:IssuedTokens header containing SCTi -->
<!-- wst:IssuedTokens header is taken verbatim from message #2 above, omitted for brevity -->
</wsse11:EncryptedHeader>
</s:Header>
<s:Body wssu:Id="body">
<!-- encrypted content of the Body element of the application message -->
<e:EncryptedData Id="encrypted_body"
Type="http://www.w3.org/2001/04/xmlenc#Content"
xmlns:e="http://www.w3.org/2001/04/xmlenc#">
...
</e:EncryptedData>
</s:Body>
</s:Envelope>