'

Грид технологии

Понравилась презентация – покажи это...





Слайд 0

Грид технологии Лекция 4 Стандарты WS-Security, WS-Addressing, WSRF, WS-Notification Радченко Глеб Игоревич, каф. СП, ЮУрГУ http://dom.susu.ru/grid.htm


Слайд 1

Содержание Введение. Второе поколение стандартов WS Безопасность и WS-Security Адресация и WS-Addressing Состояния WS и WSRF WS-Notification 2


Слайд 2

Введение. Второе поколение стандартов WS 1


Слайд 3

Стандарты WS первого поколения 4 http://www.soaspecs.com UDDI SOAP WSDL Web Службы Доступен посредством Обеспечивает поиск Связан с Обеспечивает взаимодействие между Описывает


Слайд 4

Некоторые стандарты WS-* (стандарты второго поколения) WS-Coordination WS-Transaction (and the WS-TX TC) WS-AtomicTransaction WS-BusinessActivity WS-BPEL BPEL4WS WS-ReliableMessaging (and the WS-RX TC) WS-Addressing WS-Attachments SwA DIME Plain Old XML (POX) Representational State Transfer (REST) WS-CDL (Choreography Description Language) WS-Security (and the WS-SX TC) WS-Federation WS-SecureConversation WS-Trust XML Encryption XML Signature XKMS XACML SAML WS-I Basic Security Profile WS-Policy WS-PolicyAssertions WS-PolicyAttachments WS-MetadataExchange WS-Eventing WS-Notification WS-RF (Resource Framework) 5 http://www.soaspecs.com


Слайд 5

Некоторые стандарты WS-* (стандарты второго поколения) 6 http://www.soaspecs.com


Слайд 6

Организации-разработчики стандартов WS-* Microsoft IBM Sun Oracle Globus … W3C (World Wide Consortium) OASIS (Organization for the Advancement of Structured Information Standards) GGF (Global grid Forum) DMTF (Distributed Management Task Force) WS-I (Web Services Interoperability Organization) … Коммерческие организации Консорциумы по стандартизации 7


Слайд 7

Сферы WS-* стандартов 8 http://www.soaspecs.com


Слайд 8

Поли-тика Перенап-равление Цепочки SOAP-фильтров 9 Входящий SOAP- запрос Исходящий SOAP-ответ Трасси-ровка Безопас-ность Web-метод Трасси-ровка Безопас-ность Перенап-равление Поли-тика WS-Coordination WS-Security WS-Policy Девид С. Платт Платформа Microsoft 2005. М.: Русская Редакция. -2004


Слайд 9

Безопасность WS и WS-Security 10


Слайд 10

Проблемы с безопасностью у WS первого поколения Стандарты Web служб первого поколения не подразумевали обеспечения какой-либо безопасности. Таким образом, практическое применение WS в бизнес сфере было значительно ограничено. Отсутствовали стандартные решения аутентификации, разграничения прав доступа, шифрования и т.п. Таким образом, каждый решал задачу безопасности самостоятельно. 11


Слайд 11

Стек протоколов обеспечения безопасности в CXA CXA - Global XML Web Services Architecture: семейство стандартов, представленных когламератом IBM+Microsoft+… Проходят стандартизацию OASIS и W3C Конкурирующий набор стандартов: SAML представлен корпорациями близкими Sun Microsystems и Oracle. 12


Слайд 12

Стек протоколов обеспечения безопасности в CXA 13 SOAP WS-Security WS-Policy WS-PolicyFramework WS-PolicyAssertions WS-Trust WS-Privacy WS-Authorization WS-Federation WS-SecureConversation Влад Боркус. Безопасность Web-сервисного взаимодействия. – PCWEEK, №33(447). -2004


Слайд 13

WS-Security – комплексное решение задач безопасности WS Стандарт WS-Security ориентирован на комплексное решение задач безопасности при взаимодействии Web-служб: Идентификация Цифровые подписи Шифрование Это позволяет ответить на такие вопросы безопасности, как: Кого я авторизую? Было ли изменено сообщение при пересылке? Пришло ли это сообщение именно от того, от кого я думаю? Как я спрячу конфиденциальную информацию? WS-Sequrity – это только архитектура. Реальные операции по обеспечению безопасности она полагается на технологии PKI, Kerberos, SSL и т.п. 14 Scott Seely. Понимание WS-Security. Microsoft corp. [http://msdn.microsoft.com/webservices/understanding/advancedwebservices/default.aspx]


Слайд 14

WS-Security и SOAP сообщения WS-Security переносит процедуру идентификации и авторизации в пространство SOAP-сообщений. Используя маркеры безопасности (Security Tokens) SOAP сообщение может переправить следующую информацию: Идентификацию вызывающего: Я User Vasya Pupkin. Принадлежность к группе: Я разработчик PupkinSite.com. Подтверждение прав: Поскольку я разработчик PupkinSite.com, я могу создавать базы данных и добавлять Web приложения в машины PupkinSite.com. 15 Scott Seely. Понимание WS-Security. Microsoft corp. [http://msdn.microsoft.com/webservices/understanding/advancedwebservices/default.aspx]


Слайд 15

Процедура обеспечения безопасности при передаче сообщения 16 Клиент Web-службы Служба Маркеров Безопасности Web-служба 1. Запрос на маркер безопасности (может не иметь отношения к WS) 2. Получить маркер безопасности для SOAP сообщения 3. Подписать и послать сообщение Web-службе 5. Получить ответ 4. Подтвердить маркеры Scott Seely. Понимание WS-Security. Microsoft corp. [http://msdn.microsoft.com/webservices/understanding/advancedwebservices/default.aspx]


Слайд 16

Аутентификация пользователя Внедряется в заголовок SOAP-сообщения: 17 <soap:Envelope> <soap:Header> <wsse:Security soap:mustUnderstand=“1”> <wsse:UsernameToken> <wsse:Username>scott</wsse:Username> <wsse:Password Type="wsse:PasswordText">password </wsse:Password> </wsse:UsernameToken> </wsse:Security> </soap:Header> ... </soap:Envelope>


Слайд 17

Виды аутентификации WS-Security <wsse:UsernameToken> - аутентификация пользователя посредством пары Имя пользователя-пароль. <wsse:X509v3> - аутентификация посредством сертификата X.509v3 Kerberos – аутентификация посредством протокола Kerberos (Kerberos Domain Controller) (используется в Windows2000, Red Hat Linux и т.п.) 18


Слайд 18

UsernameToken – имя пользователя и пароль <wsse:UsernameToken> <wsse:Username>scott</wsse:Username> <wsse:Password Type="wsse:PasswordText">password</wsse:Password> </wsse:UsernameToken> 19 Пароль в виде простого текста (например, при использовании SSL): <wsse:UsernameToken> <wsse:Username>scott</wsse:Username> <wsse:Password Type="wsse:PasswordDigest"> KE6QugOpkPyT3Eo0SEgT30W4Keg=</wsse:Password> <wsse:Nonce>5uW4ABku/m6/S5rnE+L7vg==</wsse:Nonce> <wsu:Created xmlns:wsu= "http://schemas.xmlsoap.org/ws/2002/07/utility"> 2002-08-19T00:44:02Z </wsu:Created> </wsse:UsernameToken> Пароль в виде цифрового хэша:


Слайд 19

X509v3 – сертификат безопасности 20 <wsse:BinarySecurityToken ValueType="wsse:X509v3" EncodingType="wsse:Base64Binary" Id="SecurityToken-f49bd662-59a0-401a-ab23-1aa12764184f"> MIIHdjCCBCCAWqgAwIBAgIBGzANBgkqhkiG9w0BAQQFADBHMQ0wCwYDVQQKEwRMRwwGgYDVQQLExNDYWViZWFucyBkZXZlbG9wZXJzMRgwFgYDVQQLEw9jYWViZWFucy5uZXQucnUwHhcNMDcxMjAxMDAwMDAwWhcNMDgwMTMxMjM1OTU5Wj... </wsse:BinarySecurityToken> Для обеспечения безопасности при использовании сертификата надо прибегнуть к дополнительным средствам обеспечения безопасности: подпись сообщения секретным ключом сертификата; добавление wsu:Timestamp для определения времени жизни сообщения.


Слайд 20

Подпись сообщения Подпись сообщения лежит в рамках спецификации XML Signature. При подписи сообщения используется секретная аутентификационная информация: UsernameToken – пароль пользователя; X.509 – секретный ключ; Kerberos – сеансовый ключ. 21


Слайд 21

Подпись сообщения 22 <soap:Envelope> <soap:Header> <wsse:Security soap:mustUnderstand=“1”> ... <ds:Signature> <ds:Signedlnfo> ... </ds:Signedlnfo> <ds:SignatureValue> Hp1ZkmFZ/2kQLXDJbchm5gK... </ds:SignatureValue> <ds:Keylnfo> <wsse:SecurityTokenReference> <wsse:Reference URI=" #X509Token"/> </wsse:SecurityTokenReference> </ds:Keylnfo> </ds:Signature> </wsse:Security> </soap:Header> ... </soap:Envelope> *Пространство имен ds принадлежит спецификации XML Signature Влад Боркус. Безопасность Web-сервисного взаимодействия. – PCWEEK, №33(447). -2004


Слайд 22

Шифрование Аутентификация и подпись сообщения – это не всегда достаточная мера обеспечения безопасности, особенно при передаче конфиденциальной информации. За шифрование отвечает стандарт XML Encryption. 23


Слайд 23

Шифрование 24 <soap:Envelope> <soap:Header> <wsse:Security soap:mustUnderstand=“1”> ... </wsse:Security> </soap:Header> <soap:Body> <xenc:EncryptedData Id="EncryptedContent-f6f50b24-3458-41d3-aac4-390f476f2e51" Type="http://www.w3.org/2001/04/xmlenc#Content"> <xenc:EncryptionMethod Algorithm= "http://www.w3.org/2001/04/xmlenc#tripledes-cbc" /> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <KeyName>Symmetric Key</KeyName> </KeyInfo> <xenc:CipherData> <xenc:CipherValue> InmSSXQcBV5UiT... Y7RVZQqnPpZYMg== </xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedData> ... </soap:Envelope> *Пространство имен xenc принадлежит спецификации XML Encryption Влад Боркус. Безопасность Web-сервисного взаимодействия. – PCWEEK, №33(447). -2004


Слайд 24

Адресация и WS-Addressing 25


Слайд 25

Адресация в стандартах первого поколения (WSDL) В стандартах первого поколения полный адрес WS содержался в WSDL-описании WS в блоке <port>. Это может доставить значительные неудобства, т.к. при изменении адреса службы приходится редактировать WSDL-файл целиком. При обмене сообщениями SOAP по стандарту первого поколения, адресация возложена на транспортный протокол (при связывании с HTTP) и не может быть изменена непосредственно в SOAP-сообщении. 26


Слайд 26

Пример адресации SOAP по стандарту первого поколения 27 Описание WS-Addressing ведется по презентации:Siyamed Seyhmus. WS-Addressing. SINIR SRDC Тип передаваемого сообщения:SOAP Host URI SOAP Action


Слайд 27

Использование WS-Addressing для обеспечения независимости от транспорта В стандарте WS-Addressing предусматривается введение полей <wsa:To> и <wsa:Action> определяющих URI приемника сообщения и соответствующее действие: 28


Слайд 28

Управление ответом В стандарте первого поколения подразумевается, что ответное сообщение передается по уже открытому HTTP каналу. При этом, нет стандартной поддержки асинхронной коммуникации между Web службами. Стандарт WS-Addressing вводит следующие поля: <MessageID>, <From>, <ReplyTo>, <FaultTo>, <RelatedTo> 29


Слайд 29

Управление ответом 30 У данного сообщения есть идентификатор “uuid:someid”, и оно относится (related) к сообщению “uuid:someotherid” как Ответ (“Reply”) Передается адрес отправителя адрес получения ответа и адрес для извещения об ошибках


Слайд 30

Адресация конечных точек WS-Addressing обеспечивает расширенную адресацию конечных точек. Так как WSDL не поддерживает расширение элемента «Service», в WS-Addressing определен элемент <EndpointReference>, который может быть использован в WSDL. 31


Слайд 31

<EndpointReference> VS < Service > 32 *WSDL Service element *EndpointReference element <EndpointReference> расширяет элемент <Service> добавляя поля ReferenceProperties и Policy. Address, ServiceName и PortType уже включены в элемент <Service>.


Слайд 32

Формирование SOAP-сообщения на основе <EndpointReference> 33 <wsa:EndpointReference xmlns:wsa="..." xmlns:fabrikam="..."> <wsa:Address>http://www.fabrikam123.example/acct</wsa:Address> <wsa:ReferenceProperties> <fabrikam:CustomerKey>123456789</fabrikam:CustomerKey> <fabrikam:ShoppingCart>ABCDEFG</fabrikam:ShoppingCart> </wsa:ReferenceProperties> </wsa:EndpointReference> <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:fabrikam="... "> <S:Header> ... <wsa:To>http://www.fabrikam123.example/acct</wsa:To> <fabrikam:CustomerKey>123456789</fabrikam:CustomerKey> <fabrikam:ShoppingCart>ABCDEFG</fabrikam:ShoppingCart> ... </S:Header> <S:Body> ... </S:Body> </S:Envelope>


Слайд 33

Конструкции WS-Addressing Таким образом, WS-Addressing определяет два вида конструкций, позволяющих унифицировать адресацию WS независимо от базового транспортного протокола: 34 <EndpointReference> (описание адресации конечных точек) Message Information Header (обеспечение асинхронного, транспортно-независимого взаимодействия между WS)


Слайд 34

Презентация IBM Состояние WS и WSRF 35


Слайд 35

«Состояния» и стандарты первого поколения Изначально, использование Web-служб не подразумевало существования «Состояния». Типовой сценарий использования Web-службы: запрос – ответ – отключение. Каждый следующий запрос не зависит от предыдущего запроса. 36 Клиент Web-сервис 15 Div(15,3) 5 Add(10,5)


Слайд 36

WSRF Предложена в 2004-м году, утверждена в качестве стандарта OASIS в 2006-м году. Включает следующие стандарты: WS-Resource specification WS-ResourceProperties (WSRF-RP) WS-ResourceLifetime (WSRF-RL) WS-ServiceGroup (WSRF-SG) WS-BaseFaults (WSRF-BF) 37


Слайд 37

Концепция WSRF – Web Service Resource Framework Для разработки Grid не получилось применить “чистые” Web-сервисы, т.к. они не обладали “состоянием”. WSRF является попыткой решить указанную архитектурную проблему с помощью введения понятия «состояние» в Web-сервисы, превратив их в Web-ресурсы, и указав механизмы использования этого понятия. 38 Ресурсы Клиент Web-сервис Div(3), используя ресурс B 15 4 ID: A Add(5) используя ресурс B 5 10 ID: B 15 5


Слайд 38

Web-сервис + Ресурс = WS-ресурс 39 Web-сервис Ресурсы Filename: “install.xml” Size: 250 Descriptors: {“install”} Filename : “readme.txt” Size: 120 Descriptors: {“info”} Filename: “app.exe” Size: 1056 Descriptors: {“application”} ID: 0xF5412AB ID: 0x14DC1A9 ID: 0xFF42123


Слайд 39

1. Определение свойств ресурса 40 XML примеры Web-ресурсов из книги: Бабу Сандарам. Что такое WSRF, Часть 1. gridclub.ru <satProp:GenericSatelliteProperties xmlns:satProp="http://example.com/satellite"> <satProp:latitude>30.3</satProp:latitude> <satProp:longitude>223.2</satProp:latitude> <satProp:altitude>47700</satProp:altitude> <satProp:pitch>49</satProp:pitch> <satProp:yaw>0</satProp:yaw> <satProp:roll>32</satProp:roll> <satProp:focalLength>21999992</satProp:focalLength> <satProp:currentView> http://example.com/satellite/2239992333.zip </satProp:currentView> </satProp:GenericSatelliteProperties>


Слайд 40

2. Базовый WSDL-файл 41 <?xml version="1.0" encoding="UTF-8"?> <definitions name="Satellite" targetNamespace="http://example.com/satellite" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://example.com/satellite" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsrp= "http://docs.oasis-open.org/wsrf/2004/06/wsrf- WS-ResourceProperties-1.2-draft-01.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> <wsdl:import namespace= "http://docs.oasis-open.org/wsrf/2004/06/wsrf- WS-ResourceProperties-1.2-draft-01.wsdl" location="WS-ResourceProperties.wsdl" /> <types> <xsd:schema targetNamespace="http://example.com/satellite" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:import namespace= "http://schemas.xmlsoap.org/ws/2004/03/addressing" schemaLocation="WS-Addressing.xsd" /> </xsd:schema> </types> </definitions>


Слайд 41

3. Добавление ресурса к WSDL 42 <definitions name="Satellite" ...> ... <types> <xsd:schema targetNamespace="http://example.com/satellite" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> ... <xsd:element name="latitude" type="xsd:float" /> <xsd:element name="longitude" type="xsd:float" /> <xsd:element name="altitude" type="xsd:float" /> ... <xsd:element name="GenericSatelliteProperties"> <xsd:complexType> <xsd:sequence> <xsd:element ref="latitude" minOccurs="1" maxOccurs="1"/> <xsd:element ref="longitude" minOccurs="1" maxOccurs="1"/> ... </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> </types> <portType name="SatellitePortType" wsrp:ResourceProperties= "tns:GenericSatelliteProperties"> </portType> </definitions>


Слайд 42

4. Операция на запрос ресурса 43 ... <types> ... <xsd:element name="createSatellite"> <xsd:complexType/> </xsd:element> <xsd:element name="createSatelliteResponse"> <xsd:complexType> <xsd:sequence> <xsd:element ref="wsa:EndpointReference"/> </xsd:sequence> </xsd:complexType> </xsd:element> ... </types> <message name="CreateSatelliteRequest"> <part name=“request” element=“tns:createSatellite”> </message> <message name="CreateSatelliteResponse"> <part name="response" element="tns:createSatelliteResponse"/> </message> <portType name="SatellitePortType“ wsrp:ResourceProperties= "tns:GenericSatelliteProperties"> <operation name="createSatellite"> <input message="tns:CreateSatelliteRequest" wsa:Action="http://example.com/CreateSatellite" /> <output message="tns:CreateSatelliteResponse" wsa:Action="http://example.com/CreateSatelliteResponse"/> </operation> </portType>


Слайд 43

5. Запрос ресурса 44 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <createSatellite xmlns="http://example.com/satellite"/> </SOAP-ENV:Body> </SOAP-ENV:Envelope> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap. org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/02/addressing" xmlns:sat="http://example.org/satelliteSystem"> <wsa:Address>http://example.com/satellite</wsa:Address> <wsa:ReferenceProperties> <sat:SatelliteId>SAT9928</sat:SatelliteId> </wsa:ReferenceProperties> </wsa:EndpointReference> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Ответ:


Слайд 44

5. Запрос состояния ресурса 45 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/ soap/envelope/" xmlns:sat="http://example.org/satelliteSystem" xmlns:wsa="http://www.w3.org/2005/02/addressing" xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf- WS-ResourceProperties-1.2-draft-01.xsd"> <SOAP-ENV:Header> <wsa:Action> http://docs.oasis-open.org/wsrf/2004/06/WS-ResourceProperties/ GetResourceProperty </wsa:Action> <wsa:To SOAP-ENV:mustUnderstand="1"> http://example.com/satellite </wsa:To> <sat:SatelliteId>SAT9928</sat:SatelliteId> </SOAP-ENV:Header> <SOAP-ENV:Body> <wsrp:GetResourceProperty xmlns:satProp="http://example.com/satellite"> satProp:altitude </wsrp:GetResourceProperty> </SOAP-ENV:Body> </SOAP-ENV:Envelope>


Слайд 45

Реализация WSRF The Globus Toolkit 4: реализация WSRF на Java и C (WS-Core). WebSphere Application Server 6.1: предоставляет среду WSRF для реализации конечных точек. Muse 2.0 (Apache Foundation): реализация на Java WSRF, WS-Notification и WSDM (Web Services Distributed Management). WSRF::Lite: реализация WSRF на perl. WSRF.NET: реализация стандарта WSRF на .NET. UNICORE 6.0: реализация стандарта WSRF 1.2 и WS-Notification на Java. 46


Слайд 46

Презентация IBM WS-Notification 47


Слайд 47

Ссылки и литература http://www.soaspecs.com – перечень стандартов и спецификаций Web-служб с ссылками на организации-разработчики. http://www.devarticles.com/c/b/Web-Services - сборник статей по разработке и практическому применению Web-служб, включая стандарты WSRF, WS-Addressing и WS-Notification Бабу Сандарам. Что такое WSRF, Часть 1. [http://www.gridclub.ru/library/publication.2005-10-17.1342842216/view] – пособие для разработчиков Web-служб. Леонид Черняк. Web-сервисы, grid-сервисы и другие. Открытые системы. №12. -2004. [http://www.osp.ru/os/2004/12/184882/] – отличная статья про историю взаимодействия Web-служб и грид 48


Слайд 48

Ваши вопросы? Спасибо за внимание! Страница курса: http://dom.susu.ru/grid.htm Радченко Глеб Игоревич, каф. СП, ЮУрГУ


×

HTML:





Ссылка: