İşlem Protokolleri
Windows Communication Foundation (WCF), WS-Atomic Transaction ve WS-Coordination protokollerini uygular.
Belirtim/Belge | Sürüm | Bağlantı |
---|---|---|
WS-Koordinasyon | 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 |
Bu protokol belirtimlerinde birlikte çalışabilirlik iki düzeyde gereklidir: uygulamalar arasında ve işlem yöneticileri arasında (aşağıdaki şekilde bakın). Belirtimler, her iki birlikte çalışabilirlik düzeyi için ileti biçimlerini ve ileti değişimini ayrıntılı olarak açıklar. Uygulamadan uygulamaya değişim için belirli güvenlik, güvenilirlik ve kodlamalar, normal uygulama değişiminde olduğu gibi uygulanır. Ancak, işlem yöneticileri arasında başarılı bir birlikte çalışabilirlik, genellikle kullanıcı tarafından yapılandırılmadığından, belirli bir bağlama üzerinde anlaşma gerektirir.
Bu makalede, WS-Atomic Transaction (WS-AT) belirtiminin güvenlikle bir bileşimi açıklanır ve işlem yöneticileri arasındaki iletişim için kullanılan güvenli bağlama açıklanmaktadır. Bu makalede açıklanan yaklaşım IBM, IONA, Sun Microsystems ve diğerleri dahil olmak üzere diğer WS-AT ve WS-Coordination uygulamalarıyla başarıyla test edilmiştir.
Aşağıdaki şekilde, transaction manager 1 ve Transaction Manager 2 gibi iki işlem yöneticisi ile Uygulama 1 ve Uygulama 2 gibi iki uygulama arasındaki birlikte çalışabilirlik gösterilmektedir:
Bir Başlatıcı (I) ve bir Katılımcı (P) ile tipik bir WS-Koordinasyon/WS-Atomik İşlem senaryosu düşünün. Hem Başlatıcı hem de Katılımcı İşlem Yöneticilerine (sırasıyla ITM ve PTM) sahiptir. bu makalede iki aşamalı işleme 2PC olarak adlandırılır.
- CreateCoordinationContext
- CreateCoordinationContextResponse
- Kaydet (Tamamlama)
- RegisterResponse
- Uygulama İletisi
- Bağlam ile CreateCoordinationContext
- Register (Dayanıklı)
- RegisterResponse
- CreateCoordinationContextResponse
- Register (Dayanıklı)
- RegisterResponse
- Uygulama İletisi Yanıtı
- İşleme (Tamamlama)
- Hazırlama (2PC)
- Hazırlama (2PC)
- Hazırlandı (2PC)
- Hazırlandı (2PC)
- Kabul Edildi (Tamamlanma)
- İşleme (2PC)
- İşleme (2PC)
- Kabul Edilen (2PC)
- Kabul Edilen (2PC)
Şekil ve tablo, güvenlik açısından dört ileti sınıfını gösterir:
Etkinleştirme iletileri (CreateCoordinationContext ve CreateCoordinationContextResponse).
Kayıt iletileri (Register ve RegisterResponse)
Protokol iletileri (Hazırlama, Geri Alma, İşleme, Durduruldu vb.).
Uygulama iletileri.
İlk üç ileti sınıfı Transaction Manager iletileri olarak kabul edilir ve bağlama yapılandırması bu konunun devamında yer alan "Uygulama İleti Değişimi" bölümünde açıklanmıştır. İletinin dördüncü sınıfı, uygulama iletilerine uygulamadır ve bu konunun devamında yer alan "İleti Örnekleri" bölümünde açıklanmıştır. Bu bölümde, WCF tarafından bu sınıfların her biri için kullanılan protokol bağlamaları açıklanmaktadır.
Bu belgenin her alanında aşağıdaki XML Ad Alanları ve ilişkili ön ekler kullanılır.
Önek | Sürüm | Ad Alanı URI'si |
---|---|---|
s11 | https://schemas.xmlsoap.org/soap/envelope/ | |
Wsa | 1.0 Öncesi 1.0 |
https://www.w3.org/2004/08/addressing https://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 | 1.3 Öncesi 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 |
Transaction Manager Bağlamaları
R1001: WS-AT 1.0 işlemine katılan İşlem Yöneticileri, WS Atomik İşlem ve WS-Koordinasyon ileti değişimleri için SOAP 1.1 ve WS-Addressing 2004/08 kullanmalıdır.
R1002: WS-AT 1.1 işlemine katılan İşlem Yöneticileri, WS Atomik İşlem ve WS-Koordinasyon ileti değişimleri için SOAP 1.1 ve WS-Addressing 2005/08 kullanmalıdır.
Uygulama iletileri bu bağlamalarla kısıtlanmaz ve daha sonra açıklanır.
Transaction Manager HTTPS Bağlama
İşlem yöneticisi HTTPS bağlaması, güvenliği sağlamak ve işlem ağacındaki her gönderen-alıcı çifti arasında güven oluşturmak için yalnızca aktarım güvenliğine dayanır.
HTTPS Aktarım Yapılandırması
X.509 sertifikaları Transaction Manager Kimliğini oluşturmak için kullanılır. İstemci/sunucu kimlik doğrulaması gereklidir ve uygulama ayrıntısı olarak istemci/sunucu yetkilendirmesi bırakılır:
R1111: Tel üzerinden sunulan X.509 sertifikaları, kaynak makinenin tam etki alanı adıyla (FQDN) eşleşen bir konu adına sahip olmalıdır.
B1112: X.509 konu adı denetimlerinin başarılı olması için sistemdeki her gönderen-alıcı çifti arasında DNS işlevsel olmalıdır.
Etkinleştirme ve Kayıt Bağlama Yapılandırması
WCF, HTTPS üzerinden bağıntı ile istek/yanıt çift yönlü bağlama gerektirir. (İstek/yanıt iletisi değişim desenlerinin bağıntı ve açıklamaları hakkında daha fazla bilgi için bkz. WS-Atomic Transaction, Bölüm 8.)
2PC Protokolü Bağlama Yapılandırması
WCF, HTTPS üzerinden tek yönlü (veri birimi) iletileri destekler. İletiler arasındaki bağıntı, uygulama ayrıntısı olarak bırakılır.
B1131: WCF'nin 2PC iletilerinin bağıntısını elde etmek için uygulamalar WS-Addressing'de açıklandığı gibi desteklenmelidir wsa:ReferenceParameters
.
Transaction Manager Karma Güvenlik Bağlaması
Bu, kimlik oluşturma amacıyla WS-Coordination Verilen Belirteç modeliyle birlikte aktarım güvenliğini kullanan alternatif bir (karma mod) bağlamadır. Etkinleştirme ve Kayıt, iki bağlama arasında farklılık gösteren tek öğelerdir.
HTTPS Aktarım Yapılandırması
X.509 sertifikaları Transaction Manager Kimliğini oluşturmak için kullanılır. İstemci/Sunucu kimlik doğrulaması gereklidir ve uygulama ayrıntısı olarak istemci/sunucu yetkilendirmesi bırakılır.
Etkinleştirme İletisi Bağlama Yapılandırması
Etkinleştirme İletileri genellikle birlikte çalışabilirliğe katılmaz çünkü bunlar genellikle bir uygulama ile yerel Transaction Manager arasında gerçekleşir.
B1221: WCF, Etkinleştirme iletileri için çift yönlü HTTPS bağlaması (Mesajlaşma Protokolleri bölümünde açıklanmıştır) kullanır. İstek ve Yanıt iletileri, WS-AT 1.0 için WS-Addressing 2004/08 ve WS-AT 1.1 için WS-Addressing 2005/08 kullanılarak ilişkilendirilir.
WS-Atomic Transaction belirtimi, Bölüm 8, bağıntı ve ileti değişimi desenleri hakkında daha fazla ayrıntı açıklar.
R1222: Bir
CreateCoordinationContext
aldıktan sonra, Koordinatör ilişkili gizli diziSTx
ile birSecurityContextToken
oluşturmalıdır. Bu belirteç, WS-Trust belirtiminin ardından birt:IssuedTokens
üst bilgi içinde döndürülür.R1223: Etkinleştirme mevcut bir Koordinasyon Bağlamı içinde gerçekleşirse,
t:IssuedTokens
var olan BağlamlaSecurityContextToken
ilişkili üst bilgi iletideCreateCoordinationContext
akmalıdır.
Giden wscoor:CreateCoordinationContextResponse
iletiye eklemek için yeni t:IssuedTokens
bir üst bilgi oluşturulmalıdır.
Kayıt İletisi Bağlama Yapılandırması
B1231: WCF çift yönlü HTTPS bağlaması kullanır (Mesajlaşma Protokolleri bölümünde açıklanmıştır). İstek ve Yanıt iletileri, WS-AT 1.0 için WS-Addressing 2004/08 ve WS-AT 1.1 için WS-Addressing 2005/08 kullanılarak ilişkilendirilir.
WS-AtomicTransaction, Bölüm 8, ileti değişimi desenlerinin bağıntı ve açıklamaları hakkında daha fazla ayrıntı açıklar.
R1232: Giden wscoor:Register
iletiler Güvenlik Protokolleri'nde açıklanan kimlik doğrulama modunu kullanmalıdırIssuedTokenOverTransport
.
wsse:Timestamp
öğesi verilen kullanılarak SecurityContextToken STx
imzalanmalıdır. Bu imza, belirli bir işlemle ilişkili belirtecin sahip olduğunun kanıtıdır ve işlemde kayıt olan bir katılımcının kimliğini doğrulamak için kullanılır. RegistrationResponse iletisi HTTPS üzerinden geri gönderilir.
2PC Protokolü Bağlama Yapılandırması
WCF, HTTPS üzerinden tek yönlü (veri birimi) iletileri destekler. İletiler arasındaki bağıntı, uygulama ayrıntısı olarak bırakılır.
B1241: WcF'nin 2PC iletilerinin bağıntısını elde etmek için uygulamalar WS-Addressing'de açıklandığı gibi desteklenmelidir wsa:ReferenceParameters
.
Uygulama İletisi Değişimi
Bağlama aşağıdaki güvenlik gereksinimlerini karşılıyorsa uygulamalar uygulamadan uygulamaya iletiler için herhangi bir bağlamayı kullanabilir:
R2001: Uygulamadan uygulamaya iletiler, iletinin
t:IssuedTokens
üst bilgisindekiyleCoordinationContext
birlikte üst bilgi akışı yapmalıdır.R2002: Bütünlüğü ve gizliliği
t:IssuedToken
sağlanmalıdır.
CoordinationContext
Üst bilgi içerirwscoor:Identifier
. tanımı xsd:AnyURI
hem mutlak hem de göreli URI'lerin kullanılmasına izin verirken, WCF yalnızca wscoor:Identifiers
mutlak URI'leri destekler.
B2003: öğesinin wscoor:Identifier
wscoor:CoordinationContext
değeri göreli bir URI ise, hatalar işlem wcf hizmetlerinden döndürülür.
İleti Örnekleri
CreateCoordinationContext İsteği/Yanıt İletileri
Aşağıdaki iletiler bir istek/yanıt desenini izler.
WSCoor 1.0 ile CreateCoordinationContext
<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>
WSCoor 1.1 ile CreateCoordinationContext
<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>
Güven Pre-1.3 ve WSCoor 1.0 ile CreateCoordinationContextResponse
<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>
Güven 1.3 ve WSCoor 1.1 ile CreateCoordinationContextResponse
<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>
Kayıt İletileri
Aşağıdaki iletiler kayıt iletileridir.
WSCoor 1.0'a kaydolma
<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>
WSCoor 1.1'e kaydolma
<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>
WSCoor 1.0 ile Yanıt Kaydetme
<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>
WSCoor 1.1 ile Yanıt Kaydetme
<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>
İki Aşamalı İşleme Protokolü İletileri
Aşağıdaki ileti iki aşamalı işleme (2PC) protokolüyle ilgilidir.
WSAT 1.0 ile işleme
<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>
WSAT 1.1 ile işleme
<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>
Uygulama İletileri
Aşağıdaki iletiler uygulama iletileridir.
Uygulama iletisi-İsteği
<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>