programmera.net -> webservice -> normal för utskrift | info@programmera.net |
WSS 1.0, Säkerhet för webbtjänster
1. WSS 2. Namnutrymmen för WSS 3. Terminologi för WSS 4. Grundläggande syntax 5. wsse:BinarySecurityToken 6. ds:Signature 7. Encryption |
1. WSS
WSS (Web Service Security) är ett protokoll för att tillhandahålla säkerhet för webbtjänster som sänds över SOAP. Med säkerhet menar vi i detta fall:
2. Namnutrymmen för WSS
De prefix som används i exemplen nedan syftar på följande namnutrymmen
3. Terminologi för WSS
Nedan listas några viktiga termer som gäller för WSS-specifikationen:
4. Grundläggande syntax
<?xml version="1.0" encoding="utf-8"?>
<S11:Envelope xmlns:S11="..." xmlns:wsse="..." xmlns:wsu="..." xmlns:ds="...">
<S11:Header>
<wsse:Security>
<wsse:BinarySecurityToken >
</wsse:BinarySecurityToken>
<ds:Signature >
</ds:Signature>
<xenc:EncryptedKey >
</xenc:EncryptedKey>
<wsse:UsernameToken >
</wsse:UsernameToken>
</wsse:Security>
</S11:Header>
<S11:Body >
...
</S11:Body>
</S11:Envelope>
5. wsse:BinarySecurityToken
wsse:BinarySecurityToken är det rekommenderade sättat att överföra nycklar om de är krypterade.
<?xml version="1.0" encoding="utf-8"?> <S11:Envelope xmlns:S11="..." xmlns:wsse="..." xmlns:wsu="..." xmlns:ds="..."> <S11:Header> <wsse:Security> <wsse:BinarySecurityToken wsu:Id="bst_id" EncodingType="wsse:Base64Binary" ValueType="xsse:X509v3" > M32ITQCTwwTRi45f... </wsse:BinarySecurityToken> <ds:Signature> </ds:Signature> </wsse:Security> </S11:Header> <S11:Body > ... </S11:Body> </S11:Envelope> |
6. ds:Signature
Nedan följer ett exempel på en SOAP Header med ds:Signature (taget från WSS 1.0 specifikationen):
<?xml version="1.0" encoding="utf-8"?>
<S11:Envelope xmlns:S11="..." xmlns:wsse="..." xmlns:wsu="..." xmlns:ds="...">
<S11:Header>
<wsse:Security xmlns:wsse="...">
<xxx:CustomToken wsu:Id="MyID" xmlns:xxx="http://fabrikam123/token">
FHUIORv...
</xxx:CustomToken>
<ds:Signature>
<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="#MsgBody">
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>LyLsF0Pi4wPU...</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>DJbchm5gK...</ds:SignatureValue>
<ds:KeyInfo>
<wsse:SecurityTokenReference>
<wsse:Reference URI="#MyID"/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
</wsse:Security>
</S11:Header>
<S11:Body wsu:Id="MsgBody">
<tru:StockSymbol xmlns:tru="http://fabrikam123.com/payloads"> QQQ </tru:StockSymbol>
</S11:Body>
</S11:Envelope>
7. Encryption
WSS utnyttjar XML Encryption för kryptering.