Skip to Content

IT nieuczesane.
category

Category: Cloud

ADFS 2.0 i Google Apps

Misja: uwierzytelniać klientów korzystających z Google Apps za pomocą SAML i Active Directory Federation Services.

Niestety Google nie udostępnia Federation Metadata więc trzeba ręcznie skonfigurować Relying Partner Trust.

Opis do tego jest niemalże wszędzie, jednak gdyby ktoś nie mógł tego znaleźć:

Po stronie Google ustawiamy:

  1. Sign-in page URL https://naszadomena.com/adfs/ls  
  2. Sign-out page URL https://naszadomena.com/adfs/ls/?wa=wsignoutcleanup1.0  
  3. Change password URL https://nasza_strona_do_zmiany_hasla.naszadomena.com  

Przy czym ostatnie pole jest nieobowiązkowe, nawet nigdy nie widziałem żeby gdzieś była użyta jego wartość.

Dodatkowo należy zaimportować certyfikat używany przez ADFS do podpisywania tokenów (token-signing) wyciągnięty wcześniej za pomocą konsoli MMC dla ADFS 2.0

Warto też zaznaczyć "Use a domain specific issuer " żeby zapytania przychodziły z adresu  https://www.google.com/a/naszadomena.googleapps.pl/acs zamiast z https://google.com

Po stronie ADFS trzeba dodać nowy Relying Party Trust:

Wybieramy ręczne wpisanie danych

  1. Profil ADFS 2.0
  2. Pomijamy certyfikaty (zostaną użyte domyślne)
  3. Włączamy protokół SAML i jako service URL wpisujemy:  https://www.google.com/a/naszadomena.googleapps.pl/acs 
  4. Jako relying trust identifier podajemy:  https://www.google.com/a/naszadomena.googleapps.pl/acs

Do Relying Party Trust dodajemy Claim rules wysyłający LDAP atrybut e-mail jako Name ID.

I tyle.Powinno działać, no prawie działa bo wylogowanie jest nieprzewidywalne. Raz wylogowuje poprawnie, raz pojawia się komunikat błędu ADFS, innym razem pojawia się błąd na stronie Google. Zero determinizmu, zdarzenia wydają się być całkowicie losowe.

Problem wynika prawdopodbnie z tego, że Google źle przygotowuje zapytanie SAML do wylogowania i parametry są niewłaściwie parsowane. Tudzież ADFS nie do końca jest zgodny ze standardem i nie potrafi wyciągnąć informacji z prawidłowego zapytania generowanego przez Google. W wyniku czego nie udaje się wygasić poprawnie wszystkich cookies, u klienta. Tutaj należy pamiętać, że funkcja wylogowywania w SAML jest opcjonalna :-)

W każdym razie przeładowanie strony https://adfs.naszadomena.pl/adfs/ls/?wa=wsignoutcleanup1.0 bez  dodatkowych parametrów wylogowuje skutecznie.

Jako, że nie udało mi się znaleźć rozwiązania zastosowałem proste obejście polegające na tym, że w przypadku błędu wylogowywania przekierowuję ponownie na stronę wylogowania. Co prawda można się trochę zapętlić ale jak narazie nie udało mi się doprowadzić to takiej sytuacji.

Do pliku error.aspx.cs dodałem (kod jest zależny od wersji językowej serwera ADFS, pewnie można sprawdzać sam kod błędu ale tego nie testowałem)

if (Exception.Message == "MSIS7055: Not all SAML session participants logged out properly. It is recommended to close your browser.")
    {
        Response.Redirect("?wa=wsignoutcleanup1.0");
    }

Zmodyfikowany plik znajduje się załączniku error.aspx.cs

“chmura” aka “cloud” – czysty marketing?

Od ok. roku bardzo dużo mówi się o cloud computingu czyli o “chmurach”. pojawia się wiele artykułów gdzie co i róż pada “rozwiązanie w chumrze”, “chmury prywatne”, “chmury publiczne”, Windows Azure, Hyper-V i wiele innych pojęć. Kiedy zacząłem szukać po oficjalnych portalach okazuje się, że jak zwykle wszystko jest zamydlone marketingiem – nikt nie raczy w prosty sposób wyjaśnić co tak na prawdę kryje się pod pojęciem “cloud computing”, czym jest “chmura” jak ma się do tego Windows Azure etc. Najlepiej wyjaśnia to na swoim blogu Mariusz Kędziora, dla tego pozwolę sobie zbiorczo zamieścić linki:

Dla tych, którym czytać się nie chce, w bardzo dużym skrócie:

“Cloud computing” to obecnie używana nazwa do usług hostingowych. Ze względu na pojawienie się wielu nowych technologii oraz dojrzałości tego rynku, wytworzył się cały warstwowy model “chmury”. Hosting był do tej pory kojarzony z platformą Web lub jakąś aplikacją, jednak czasy się zmieniają (; na dzień dzisiejszy można sobie wyobrazić scenariusz, gdzie całe środowisko jest “w chmurze” – jedyne czego firma będzie potrzebować to cienki klient do podłączenia się do serwera. Scenariusz rysuje się tak:

Przychodzi nowy pracownik do firmy. Osoba z IT loguje się do System Center Virtual Machine Manager Self-Service Portal, gdzie z gotowego szablonu tworzy nowy komputer. Komputer jest oczywiście maszyną wirtualną działająca na Hyper-V. SCVMM tworzy nową instancję maszyny, z predefiniowaną konfiguracją. Użytkownik przy pomocy cienkiego klienta łączy się do swojego środowiska pracy. Na komputerze jest zainstalowany Microsoft Office. Obecnie jest już kilka firm na rynku, które oferują hostowane wersje Sharepoint, Exchange, Lync (dawny OCS) czyli całe biurowe środowisko pracy użytkownika. MS Office ładnie integruje się ze wszystkimi wymienionymi usługami a więc wszystkie pliki mogą być trzymane “w chmurze” – właśnie na SharePoint. Dzięki temu, że wszystko jest zdalne, po skończeniu pracy, maszyna użytkownika jest usuwana zwalniając zasoby.

To nie jest Science-Fiction – już teraz istnieją rozwiązania pozwalające technologicznie na taki scenariusz. Z punktu widzenia biznesu jest to zwolnienie firmy od odpowiedzialności za licencje, sprzęt, gwarancję itp itd. Pozostaje odpowiedzieć na pytanie zadane w tytule – czy to jest czysty marketing?

Wiadomo, że nie ma “złotego rozwiązania” dla wszystkich. Rozwiązania cloudowe są jednak na tyle dojrzałe, że warto interesować się nimi już dziś – na pewno może przynieść to firmie oszczędności, nawet jeśli wykorzysta się tylko fragment rozwiązania – np. część usług hostowanych u zewnętrznych dostawców. Dzięki temu likwiduje się potrzebę:

  • kupna sprzętu
  • licencji na wsparcie
  • zapewnienie redundancji dla usług krytycznych
  • licencji na systemy operacyjne dla serwerów
  • oprogramowania serwerowego [np. Exchange Server]
  • licencji dla użytkowników
  • powierzchni dyskowej
  • koszty obsługi tych usług – zatrudniania specjalistów, czas potrzebny na dbanie o środowisko, zabezpieczenie środowiska

Dla dużych firm, które jednak wolą mieć własną infrastrukturę jest “prywatna chmura”, czyli dynamiczne centrum danych pozwalających na zbudowanie samemu opisanego scenariusza.

Widać, że “chmura” nawet jeśli jest rozdmuchanym hasłem – nie dzieje się tak bez powodu. To może po prostu przynieść wymierne korzyści.

eN.

ten wpis również na technet

Windows Azure

Chmura Windows o której pisał nExoR ma swoją stronę domową i architekturę.

azure

Na razie to wszystko co można o tym napisać ;-)