Protokoły do chmur. May 11, 2015



Podobne dokumenty
Komputery przemysªowe i systemy wbudowane

Modele uwierzytelniania, autoryzacji i kontroli dostępu do systemów komputerowych.

Wybrane działy Informatyki Stosowanej

Programowanie Komponentowe WebAPI

Przetwarzanie danych w chmurze

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.

SOA Web Services in Java

Przetwarzanie danych w chmurze

Web Services. Wojciech Mazur. 17 marca Politechnika Wrocławska Wydział Informatyki i Zarządzania

Chmura obliczeniowa. Sieci komputerowe laboratorium A1 (praca grupowa w chmurze)

Mateusz Kurleto NEOTERIC. Analiza projektu B2B Kielce, 18 października 2012

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Komunikacja i wymiana danych

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Wybrane działy Informatyki Stosowanej

OPROGRAMOWANIE KEMAS zbudowane jest na platformie KEMAS NET

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

ZASADY KORZYSTANIA Z PLIKÓW COOKIES ORAZ POLITYKA PRYWATNOŚCI W SERWISIE INTERNETOWYM PawłowskiSPORT.pl

INTERNET - Wrocław Usługi bezpieczeństwa w rozproszonych strukturach obliczeniowych typu grid

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

System Kancelaris. Zdalny dostęp do danych

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Serwery LDAP w środowisku produktów w Oracle

Specyfikacja techniczna. mprofi Interfejs API

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Wybrane działy Informatyki Stosowanej

Dokumentacja Techniczna. Dokumentacja techniczna usługi płatności mobilnych

Dotacje na innowacje - Inwestujemy w Waszą przyszłość ZAPYTANIE OFERTOWE

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Przetwarzanie i zabezpieczenie danych w zewnętrznym DATA CENTER

Praktyczne wykorzystanie mechanizmów zabezpieczeń w aplikacjach chmurowych na przykładzie MS Azure

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

"System CC1 jak zbudować prywatną chmurę obliczeniową w jedno popołudnie. M. Witek, M. Zdybał w imieniu CC1

Architektura aplikacji

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Co to jest chmura (Cloud Computing)?

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Definicja, rodzaje chmur obliczeniowych oraz poziomy usług

DOKUMENTACJA INTERFEJSU API - HTTPS

Aplikacja serwerowa Platformy Prezentacyjnej Opis produktu

Dotacje na innowacje - Inwestujemy w Waszą przyszłość ZAPYTANIE OFERTOWE

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Systemy obiegu informacji i Protokół SWAP "CC"

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA. Dlaczego DNS jest tak ważny?

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

EXSO-CORE - specyfikacja

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Oracle COREid Federation Przegląd

Wyzwania. Rozwiązanie

Zapewnienie dostępu do Chmury

Przetwarzanie w chmurze

Tomasz Grześ. Systemy zarządzania treścią

Cloud Computing - Wprowadzenie. Bogusław Kaczałek Kon-dor GIS Konsulting

Programowanie współbieżne i rozproszone

1 Implementowanie i konfigurowanie infrastruktury wdraŝania systemu Windows... 1

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

VPN Virtual Private Network. Użycie certyfikatów niekwalifikowanych w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA

Specyfikacja interfejsów usług Jednolitego Pliku Kontrolnego

Kielce, dnia roku. HB Technology Hubert Szczukiewicz. ul. Kujawska 26 / Kielce

SERWERY KOMUNIKACYJNE ALCATEL-LUCENT

Firma Informatyczna ASDER. Prezentacja. Serwer danych lokalnych. Przemysław Kroczak ASDER

Komunikacja międzysystemowa

Sieci komputerowe i bazy danych

Tematy dyplomów inżynierskich 2009 Katedra Inżynierii Oprogramowania

Architektura bezpiecznych aplikacji internetowych na platformie Java Enterprise Edition. Jakub Grabowski Warszawa,

ZAŁOŻENIA TECHNICZNO-TECHNOLOGICZNE SYSTEMU BUDOWANEGO W RAMACH PROJEKTU

11. Autoryzacja użytkowników

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Specyfikacja API 1.0. Specyfikacja kontroli Konta systemu CashBill z wykorzystaniem API opartego na REST

1 Wprowadzenie do J2EE

Program szkolenia: REST i Microservices w PHP

Web Services. Bartłomiej Świercz. Łódź, 2 grudnia 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Web Services

Podręcznik Integracji

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Technologia informacyjna i oprogramowanie biurowe. Mgr inż. arch. Tomasz Czarnecki Gliwice 2013

API System Partnerski

TelCOMM Wymagania. Opracował: Piotr Owsianko Zatwierdził: IMIĘ I NAZWISKO

Realizowanie obietnic związanych z Cloud Computing: Novell Cloud Security Service

Architektury usług internetowych. Tomasz Boiński Mariusz Matuszek

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Polityka prywatności serwisu

Wprowadzenie do Active Directory. Udostępnianie katalogów

Adres IP

Pełna specyfikacja pakietów Mail Cloud

PRACA INŻYNIERSKA IMPLEMENTACJA MOBILNEGO KLIENTA BANKU ZABEZPIECZONEGO TOKENEM

Załącznik nr 1. Specyfikacja techniczna portalu internetowego Łódź, r.

CLOUD COMPUTING CHMURA OBLICZENIOWA I PLATFORMA WINDOWS AZURE

Baza numerów Wersja 1.1

Projektowanie obiektowe oprogramowania Wykład 14 Architektura systemów (1), Interoperability Wiktor Zychla 2013

Architektura mikroserwisów na platformie Spring IO

Dokumentacja aplikacji Szachy online

Novell Cloud Security Service

76.Struktura oprogramowania rozproszonego.

Wirtualizacja sieci - VMware NSX

Transkrypt:

KSEM WETI PG May 11, 2015

Co to jest chmura obliczeniowa? obliczeniowa - pojęcie abstrakcyjne w rozproszonym przetwarzaniu danych Cechy: Współdzielenie zasobów (Multitenancy) Wysoka skalowalność (Massive scalability) - skalowanie działania dla wielu systemów oraz wykorzystania zasobów Elastyczność - użytkownik może zwiększać lub zmniejszać swoje zasoby obliczeniowe na żądanie Pay as you go - użytkownik płaci za zasoby (i czas) rzeczywiście wykorzystane Samozaopatrzenie (Self-provisioning) w zasoby - użytkownik sam decyduje o zasobach, których potrzebuje Od kolektywnej mocy połączonych komputerów odróżnia ją fakt, że istnieje nie po to, by rozwiązać problem, lecz po to, by zaspokoić potrzeby użytkowników, którzy np. chcą mieć dostęp do swoich danych i narzędzi z dowolnego miejsca na świecie.

Outline

Framework SPI SPI - akronim trzech podstawowych rodzajów usług w chmurze obliczeniowej: software-as-a-service (SaaS), platform-as-a-service (PaaS), infrastructure-as-a-service (IaaS). źródło: Cloud Security and Privacy, Shahed Latif, Subra Kumaraswamy, Tim Mather Publisher, O Reilly Media, Inc. Release Date: September 2009

Software-As-a-Service Model SaaS: użytkownik wypożycza oprogramowanie w ramach subskrypcji lub płacąc za każde użycie (operational expense, OpEx). w niektórych przypadkach usługi są bezpłatne użytkownik korzysta z aplikacji za pomocą każdego urządzenia, które potrafi się autoryzować (posiada przeglądarkę) Tradycyjne podejście: instalacja oprogramowania na własnej maszynie i zapłata za licencję (capital expense, CapEx) opłata za support użytkownik sam dba o kompatybilność systemu operacyjnego i zgodność z warunkami licencji

Platform-As-a-Service Model PaaS: użytkownik (programista) korzysta ze środowiska wytwarzania aplikacji w chmurze Zalety: narzędzia standardy kanały dystrybucji i płatności szybkie rozpowszechnianie produktów, niski koszt wytwarzania aplikacji i wejścia na rynek. programista buduje aplikacje bez instalowania narzędzi na własnych maszynach programista nie musi być ekspertem! PaaS to odmiana SaaS - wypożyczaną usługą jest środowisko wytwarzania aplikacji (a w nim predefiniowane bloki kodu, z których użytkownik składa własne aplikacje)

Platform-As-a-Service PaaS dostarcza: serwer aplikacji bazę danych wirtualną maszynę miejsce przechowywania danych PaaS narzuca: logikę biznesową framework do tworzenia aplikacji

Infrastructure-As-a-Service Model IaaS: użytkownik płaci za ilość mocy obliczeniowej, miejsce na dysku i inne rzeczywiście zużywane zasoby użytkownik nie musi dbać o szczegóły infrastruktury: lokalizację, zarządzanie danymi, skalowanie, bezpieczeństwo, backup. Cechy modelu Iaas: skalowalność: wykorzystywane zasoby mogą się zmieniać w zależności od bieżących wymagań, niemal w czasie rzeczywistym pay-as-you-go: użytkownik kupuje dokładnie taką ilość zasobów infrastruktury, jaką aktualnie potrzebuje best-of-breed: dostęp do najlepszych technologii za ułamek kosztów

Framework SPI źródło: Cloud Security and Privacy, Shahed Latif, Subra Kumaraswamy, Tim Mather Publisher, O Reilly Media, Inc. Release Date: September 2009

- zalety Niski koszt inwestycji i utrzymania produktu (również - zakończenia produkcji) Niski koszt złej estymacji zasobów wymaganych w fazie tworzenia, testowania i produkcji Otwarte standardy. Open source = oprogramowanie podlegające licencji publicznej, pozwalającej użytkownikowi zarówno na użycie jak i na modyfikację oprogramowania. Konsekwencją jest ciągły rozwój rozwiązań open source. Stabilność. Właściciele chmur inwestują duże ilości ludzkiej pracy i pieniędzy w rozwój wysoce stabilnego środowiska. Użytkownik może ufać, że chmura ma: ograniczoną liczbę błędów, wysoką odporność dzięki klastrom, zdolność ciągłego rozwoju rozwiązań zapewniających stabilność.

Kto korzysta z chmur obliczeniowych? Użytkownicy indywidualni przechowywanie poczty, zdjęć, muzyki przechowywanie informacji (personalnych) w sieciach społecznościowych mapy, nawigacja GPS tworzenie stron www współpraca (np. Google Sites) Użytkownicy biznesowi rozwój aplikacji biznesowych rozwój stron internetowych (reklama) sprzedaż poprzez dedykowane serwisy (ebay) reklamy w wyszukiwarkach internetowych zarządzanie finansami w bankowości internetowej narzędzia biurowe

Kto korzysta z chmur obliczeniowych? Start-up y, małe przedsiębiorstwa outsourcing insfrastruktury IT, kluczowej dla wprowadzenia produktu na rynek skalowalność w wielu przypadkach - pionierskie wykorzystanie chmur obliczeniowych Duże przedsiębiorstwa/korporacje narzędzia wspierania produktywności pracowników (wyszukiwarki wiedzy, travel service ) narzędzia wspierania działów HR i oceny pracowników narzędzia wspierania kluczowych działów: sprzedaży, zarządzania dokumentacją, pozyskiwania surowców, logistyki (dane wrażliwe!)

Własność i kontrola w chmurze źródło: Cloud Security and Privacy, Shahed Latif, Subra Kumaraswamy, Tim Mather Publisher, O Reilly Media, Inc. Release Date: September 2009

Przykład - Google Google App Engine - platform-as-a-service (PaaS) budowa i hosting aplikacji internetowych w infrastrukturze Google obsługiwane języki programowania: Python i Java. usługa jest darmowa, dopóki aplikacja nie korzysta z zasobów Google powyżej limitu (objętość danych, przepływność, cykle CPU) Google Apps - software-as-a-service (SaaS) korzystanie z aplikacji biurowych: Gmail, Google Calendar, Talk, Docs i inne. wersja standardowa jest darmowa (jak konto Gmail)

Google - przypadki użycia Use case: Komunikacja opis: firmowa poczta i kalendarz bez tworzenia infrastruktury wewnątrz firmy usługa: Gmail, Google Calendar Use case: Bezpieczna poczta opis: zabezpieczenie instniejącego systemu pocztowego bez tworzenia infrastruktury wewnątrz firmy; filtracja spamu, wirusów i innych zagrożeń usługa: Google Email Security Use case: przechowywanie poczty i legal discovery for existing email systems Organizations can leverage Google Apps for managing email retention with a searchable archive so that they can locate email quickly in the event of legal discovery without the investment and maintenance of hardware and software. usługa: Google Email Archiving and Discovery

Google - przypadki użycia Use case: Współpraca opis: wspólny dostęp do narzędzi i dokumentów biurowych bez instalacji dodatkowego oprogramowania na lokalnych maszynach lub serwerach usługa: Google Docs, Google Drive, Google Sites Use case: Tworzenie aplikacji opis: tworzenie aplikacji w języku Java lub Python bez inwestowania w infrastrukturę (programową i sprzętową) na maszynach lokalnych usługa: Google App Engine

Outline

- architektura zorientowana na usługi (Service-Oriented Architecture) koncepcja tworzenia systemów informatycznych, w której główny nacisk stawia się na definiowanie usług, które spełnią wymagania użytkownika. obejmuje zestaw metod organizacyjnych i technicznych mający na celu powiązanie biznesowej strony organizacji z jej zasobami informatycznymi. logika biznesowa jest rozbita pomiędzy wiele rozproszonych komponentów usługowych, koordynowanych przez centralną aplikację sterującą. komponenty usługowe są implementowane i udostępniane przez niezależne podmioty, nazywane dostawcami usług (Service Providers). Łączność pomiędzy aplikacją sterującą a komponentami usługowymi odbywa się za pośrednictwem sieci Internet.

Web Services Usługa internetowa (ang. web service) Realizowana programistycznie usługa świadczona poprzez sieć telekomunikacyjną, a w tym sieć komputerową, w szczególności przez Internet. Składnik oprogramowania, niezależny od platformy sprzętowej oraz implementacji, dostarczający określonej funkcjonalności. Komunikacja pomiędzy aplikacjami w środowiskach heterogenicznych i rozproszonych. Web serwisy oferują - w różnym stopniu - ujednolicenie komunikacji bez względu na zastosowane w aplikacji technologie. Dane przekazywane są zazwyczaj za pomocą protokołu HTTP i z wykorzystaniem XML.

Web Services Sposby realizacji: zdefiniowana za pomocą języka opisu usług (WSDL). Dokument WSDL (Web Service Description Language) zawiera wszelkie informacje niezbędne do wykorzystania danej usługi webowej, w tym listę dostępnych operacji, ich parametry oraz stosowane typy danych opublikowana i wyszukana w rejestrze usług za pomocą standardowego mechanizmu, np. UDDI wywołana zdalnie przez zdefiniowany interfejs jest częścią innych usług internetowych

Web Services źródło: http://www.cs.put.poznan.pl/mzakrzewicz/pubs/ploug06ws.pdf

P P (Simple Object Access Protocol) protokół komunikacyjny, wykorzystujący XML do kodowania wywołań i (najczęściej) protokołów HTTP do ich przenoszenia (metoda POST). Zorientowany na obiekty. Zapytanie klienta źródło: http://www.cs.put.poznan.pl/mzakrzewicz/pubs/ploug06ws.pdf Odpowiedź źródło: http://www.cs.put.poznan.pl/mzakrzewicz/pubs/ploug06ws.pdf

REST REST (REpresentational State Transfer) - styl architektury oprogramowania; zbiór zaleceń i najlepszych praktyk do tworzenia skalowalnych usług sieciowych. Alternatywa dla P Przedstawiony w roku 2000 przez jednego z twórców protokołu HTTP - Roya Fieldinga REST = zasób (obiekt/resource, URL) + reprezentacja (URI - Uniform Resource Identifier) Każdy zasób (lub dowolny podzbiór) może znajdować się na innym hoście Zasób może być reprezentowany jako wynik typu XML, JSON, Image i inne. RESTful Webservices (RESTful web API) - usługi sieciowe zaimplementowane na bazie protokołu HTTP i głównych zasad wzorca REST. Metody HTTP: GET, POST, PUT, DELETE

REST vs P źrodło: http://www.pwc.com/us/en/technologyforecast/2012/issue2/features/feature-consumerization-apis.jhtml

Outline

Elementy chmury Urządzenia dostępowe - domowe PC, firmowe PC, urządzenia przenośne, systemy wbudowane (w tym sprzęt RTV/AGD) Przeglądarki internetowe - dostęp do informacji i aplikacji Szybkie łącze, szerokopasmowy dostęp do internetu Centra danych i farmy serwerów (data centers and server farms) Urządzenia przechowujące dane (storage devices) - DASD (direct access storage device) zostały zastąpione SAN (storage area networks). Oprogramowanie SAN (DASD) zarządza wieloma urządzeniami do przechowywania danych i udostępnia potrzebną ilość miejsca na żądanie. Techniki wirtualizacji - abstrakcja zasobów obliczeniowych (CPU, dysk, pamięć, sieć, baza danych, stos aplikacji); writualizuje się: systemy operacyjne (VMware, Xen, DropBox, Docker), systemy przechowywania danych (NAS, SAN) bazy danych i aplikacje (Apache Tomcat, JBoss, Oracle App Server, WebSphere).

Technologie - API API (application programming interface) - umożliwia użytkownikowi programową kontrolę nad zasobami i usługami w chmurze źródło: Cloud Security and Privacy, Shahed Latif, Subra Kumaraswamy, Tim Mather Publisher, O Reilly Media, Inc. Release Date: September 2009

Technologie - API Do komunikacji w architekturze REST wystarczą zapytania protokołu HTTP: GET, POST, PUT, i DELETE API definiuje: format danych przesyłanych w zapytaniach (np. JSON) listę poleceń wysyłanych do chmury i spodziewanych odpowiedzi Każda chmura ma swoje własne, unikatowe API -> aplikacje (klienci chmury) nie są przenośne między chmurami Serializacja - przekształcenie obiektów (instancji klas) do postaci strumienia bajtów, z zachowaniem aktualnego stanu obiektu. Serializowany obiekt może zostać utrwalony w pliku dyskowym, przesłany do innego procesu lub innego komputera poprzez sieć. Deserializacja = proces odwrotny

API - JSON JSON - JavaScript Object Notation - tekstowy format wymiany danych, bazujący na języku JavaScript. Pomimo nazwy JSON jest formatem niezależnym od konkretnego języka. Wiele języków programowania obsługuje format JSON przez dodatkowe pakiety lub biblioteki (m.in. C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby) Dane w formacie JSON są pobierane z serwera jako tekst (kodowany za pomocą UTF-8) przy wykorzystaniu obiektu XMLHttpRequest języka JavaScript, a następnie przekształcane w obiekt.

API - JSON

API - JSON Komunikat JSON - literał obiektu języka Javascript (tablica asocjacyjna). Wszystkie dane są zmiennymi (nie stanowią kodu wykonywalnego) a nazwy składników (właściwości) obiektów są otoczone cudzysłowami. Możliwe wartości: string (napis otoczony cudzysłowem), number (liczba typu double), stała: false, null, true, tablica złożona z powyższych elementów obiekt Obiekty i tablice mogą być dowolnie zagnieżdżane. Przykład:

- IAM IAM = Identity and Access Management źródło: Cloud Security and Privacy, Shahed Latif, Subra Kumaraswamy, Tim Mather Publisher, O Reilly Media, Inc. Release Date: September 2009

Uwierzytelnianie Uwierzytelnianie (authentication) - czy użytkownik jest tym, za kogo się podaje? Proces składa się z dwóch etapów: Identyfikacja (identification) podmiot deklaruje swoją tożsamość (identity). w rozmowie telefonicznej z centrum obsługi banku klient deklaruje swoje dane (bank jest stroną ufającą); w procesie logowania do serwera użytkownik wpisuje nazwę (login) (serwer jest stroną ufającą); podczas połączenia przeglądarki z serwerem SSL, ten ostatni przedstawia certyfikat X.509 zawierający jego nazwę (przeglądarka jest stroną ufającą).

Uwierzytelnianie Uwierzytelnianie właściwe strona ufająca stosuje odpowiednią technikę uwierzytelniania (authentication mechanism) w celu weryfikacji zadeklarowanej wcześniej tożsamości. personel banku prosi o podanie ustawionego wcześniej hasła telefonicznego, daty urodzenia, nazwiska panieńskiego matki; suma poprawnych odpowiedzi daje wysokie prawdopodobieństwo, że dana osoba jest tą, za którą się podaje; serwer prosi użytkownika o wpisanie hasła (lub wskazanie pliku klucza) i weryfikuje jego zgodność z wcześniej ustawioną wartością; przeglądarka weryfikuje podpis cyfrowy złożony pod certyfikatem serwera przez urząd certyfikacji, któremu ufa. Lightweight Directory Access Protocol [LDAP] - weryfikuje listy uwierzytelniające (credentials) klienta, w których występuje unikalny identyfikator użytkownika (Client ID), przypisany do niego jako pracownika lub klienta chmury.

Metody uwierzytelniania Dokumenty papierowe podpisy, pieczęcie, parafowanie, znak wodny (metody), poświadczenie notarialne (protokół); Osoby i inne istoty żywe zabezpieczenie biometryczne, dokument tożsamości, hasło, karta elektroniczna (smart card), biochip, token (generator kodów); Wiadomości i dokumenty elektroniczne - podpis cyfrowy, kod uwierzytelniania wiadomości (message authentication code); Podmioty w komunikacji elektronicznej metody oparte na dowodzie posiadania hasła (kryptografia symetryczna) lub klucza prywatnego (kryptografia asymetryczna), hasło jednorazowe.

Metody uwierzytelniania Funkcjonalna klasyfikacja metod uwierzytelniania coś co wiesz (something you know) informacja będąca w wyłącznym posiadaniu uprawnionego podmiotu, na przykład hasło lub klucz prywatny; coś co masz (something you have) przedmiot będący w posiadaniu uprawnionego podmiotu, na przykład klucz (do zamka) lub token (generator kodów); coś czym jesteś (something you are) metody biometryczne.

Autoryzacja Autoryzacja (authorization) proces nadawania podmiotowi uprawnień do danych System operacyjny sprawdza uprawnienia zalogowanego (uwierzytelnionego) użytkownika do pliku na podstawie jego atrybutów w systemie plików Użytkownik bankowości internetowej, który zalogował się (uwierzytelnił) za pomocą loginu i hasła, autoryzuje przelew za pomocą podpisu cyfrowego składanego za pomocą hasła jednorazowego Zapora sieciowa równocześnie uwierzytelnia i autoryzuje dostęp do portu serwera na podstawie adresu IP klienta

Standardy i specyfikacje IAM - SAML SAML - Security Assertion Markup Language protokół zatwierdzony przez OASIS (Organization for the Advancement of Structured Information Standards) język do wymiany danych weryfikacyjnych i autoryzacyjnych pomiędzy domenami wykorzystywany do pośredniczenia w uwierzytelnianiu i automatycznego przekazywania między systemami i aplikacjami informacji o uprawnieniach użytkowników bazuje na standardzie XML klienci - firmy i organizacje rozwiązuje problem: jak uniknąć duplikowania tożsamości? (wielokrotnego logowania do stron www)

Standardy i specyfikacje IAM - SAML Figure: źródło: Cloud Security and Privacy, Shahed Latif, Subra Kumaraswamy, Tim Mather Publisher, O Reilly Media, Inc. Release Date: September 2009

Standardy i specyfikacje IAM - SAML Przykład: 1. Użytkownik chce sie połączyć z Gmail 2. Google generuje żądanie uwierzytelnienia SAML 3. Google wysyła przekierowanie do przeglądarki użytkownika. URL zawiera zakodowane żądanie uwierzytelnienia SAML 4. Firmowa usługa ldp dekoduje żądanie SAML i uwierzytelnia użytkownika (prosi o list uwierzytelniający lub sprawdza ciasteczka). 5. ldp generuje zakodowaną odpowiedź SAML zawierającą nazwę użytkownika (username) i podpisuje ją kluczem publicznym oraz prywatnym. 6. ldp przekazuje odpowiedź SAML do przeglądarki użytkownika a ta przekierowuje ją do Google Assertion Consumer Service (ACS) 7. Google ACS weryfikuje odpowiedź SAML kluczem publicznym. Jeśli weryfikacja jest pozytywna, ACS przekierowuje przeglądarkę użytkownika do docelowego adresu (Gmail). 8. Użytkownik loguje się do Gmail.

Standardy i specyfikacje IAM - SPML SPML - Service Provisioning Markup Language protokół zatwierdzony przez OASIS (Organization for the Advancement of Structured Information Standards) wykorzystywany do automatycznego przekazywania między systemami informacji o koncie użytkownika bazuje na standardzie XML klienci - firmy i organizacje rozwiązuje problem: jak przekazywać informację o koncie użytkownika między chmurami? umożliwia automatyczne tworzenie kont nowych użytkowników w czasie rzeczywistym

Standardy i specyfikacje IAM - XACML XACML - exensible Access Control Markup Language zatwierdzony przez OASIS język opisu kontroli dostępu. bazuje na XML klienci - firmy i organizacje definiuje model polityki kontroli dostępu oraz protokół żądań i odpowiedzi w komunikacji podmiotu z jednostką decyzyjną umożliwia jednolitą politykę kontroli dostępu dla różnych platform i usług rozwiązuje problem: jak przekazywać informację o uprawnieniach użytkowników między chmurami?

Standardy i specyfikacje IAM - XACML źródło: Cloud Security and Privacy, Shahed Latif, Subra Kumaraswamy, Tim Mather

Standardy i specyfikacje IAM - oauth oauth - standard uwierzytelniania i autoryzacji rozwiązuje problem: jak autoryzować dostęp usługi X do danych w usłudze Y bez ujawniania listów uwierzytelniających (credentials), np. loginu i hasła? pozwala użytkownikom dzielić swoje prywatne zasoby (np. zdjęcia, filmy, kontakty) przechowywane na jednej stronie z inną stroną bez konieczności zagłębiania się w obsługę ich poświadczeń, dostarczając zazwyczaj nazwę użytkownika oraz token (hasło jednorazowe). Token taki pozwala na dostęp do określonej strony dla konkretnych zasobów oraz na określony czas. umożliwia to użytkownikowi na udzielenie dostępu stronom trzecim do informacji przechowywanych u innego dostarczyciela usług bez konieczności współdzielenia praw dostępu, bądź udzielenia pełnego dostępu do danych. protokoł otwarty

Standardy i specyfikacje IAM - OpenID OpenID - otwarty standard rozproszonego uwierzytelnienia i dystrybucji tożsamości użytkowników w usługach webowych. OpenID rozwiązuje problem dystrybucji składników tożsamości użytkownika pomiędzy wieloma serwisami webowymi. Zamiast zakładać niezależne konta w każdym z serwisów, użytkownik zakłada jedno konto na serwerze OpenID, zapisując tam swoje dane osobowe i uzyskując identyfikator OpenID. OpenID używany jest przez klientów indywidualnych; niemal nie funkcjonuje w firmach i instytucjach

Google GData Google opracowała hybrydową wersję OpenID i OAuth (GData API), redukując liczbę akcji potrzebnych do uwierzytelnienia i autoryzacji źródło: Cloud Security and Privacy, Shahed Latif, Subra Kumaraswamy, Tim Mather Publisher, O Reilly Media, Inc. Release Date: September 2009

Google Data 1. Aplikacja webowa prosi usługę Google Authorization o token dla usługi Google 2. Google sprawdza, czy aplikacja jest zarejstrowana i zwraca nieautoryzowany token 3. Aplikacja webowa kieruje użytkownika na stronę autoryzacyjną Google, przekazując nieautoryzowany token 4. Użytkownik loguje się do konta Google i zgadza się (bądź nie) na ograniczony dostęp aplikacji webowej do usługi Google (poprzez jego konto) 5. Jeśli użytkownik zgodził się, usługa Google Authorization przekierowuje go na stronę aplikacji webowej (wraz z autoryzowanym tokenem). 6. Aplikacja webowa wysyła do Google Authorization żądanie wymiany autoryzowanego tokena na token dostępu. 7. Google Authorization weryfikuje żądanie i zwraca token dostępu. 8. Aplikacja webowa wysyła do usługi Google zapytanie podpisane tokenem dostepu. 9. Usługa Google ropoznaje token i udziela dostępu do danych.

Gdata-python-client Google Data (Gdata) - Biblioteka Python do komunikacji z dyskiem Google źródło: https://code.google.com/p/gdata-python-client/downloads/list instalacja: cd gdata 2.0.18 sudo python setup.py install przykład - obsługa arkusza kalkulacyjnego Google (Google Sheet) cd gdata 2.0.18/samples/spreadsheets spreadsheetexample.py

Gdata-python-client 1. Instrukcja rejestracji nowego klienta (projektu) w Google Developers Console: https://developers.google.com/api-clientlibrary/python/samples/samples 2. Autoryzacja: http://stackoverflow.com/questions/26925125/accesstokenrefresherrorgoogle-spreadsheet-api-with-oauth-2-0-service-accounto?noredirect=1#comment42398164_26925125 Potrzebne biblioteki Python: httplib2: https://code.google.com/p/httplib2/downloads/list google.appengine.api: https://cloud.google.com/appengine/downloads pakiety: python-memcache, oauth2client