Wykorzystanie Azure WebApp do testowania SAML 

Publish date:

Korzystanie z Azure WebApp do testowania i rozwiązywania problemów z dostawcami tożsamości korzystającymi z SAML 

Tomasz Dahms, inżynier infrastruktury IT w Cloud Infrastructure Services w Capgemini 

Gdy IT skupia się na rozwiązaniach chmurowych, nie można już polegać na lokalnych wdrożeniach takich jak ADFS. Dokładna znajomość Twojego dostawcy tożsamości staje się dużo bardziej niezbędna, szczególnie maj już takiej kontroli nad chmurowymi IdP (Identity Provider). 

SSO z użyciem SAML jest niezauważalne kiedy dobrze działa, ale gdy pojawiają się problemy, warto sprawdzić dokładne informacje przekazywane w odpowiedzi SAML. Znajomość zawartości odpowiedzi pomoże tez podczas przygotowań do migracji do nowego IdP, tak, żeby rezultaty były zgodne z oczekiwaniami. 

Artykuł skupi się nad wykorzystaniem darmowego planu F1 WebApp oraz przykładowego kodu dostarczonego przez OneLogin w celu testu i inspekcji odpowiedzi SAML. 

Kod dla aplikacji jest opublikowany tutaj oraz w stworzonej przeze mnie gałęzi (staje się kompatybilna z Azure AD oraz daje rozszerzoną odpowiedź SAML. 

Tworzenie WebApp 

Stwórz WebApp z następującymi parametrami: 

Publish: Code 

Runtime stack: .NET 4.7 (or newer) 

Operating system: Windows 

Windows Plan: Free F1 (jeśli nie posiadasz tego planu, musisz również go stworzyć) 

Możesz ominąć krok monitoringu, to tylko jest do celów testowych. Po wdrożeniu samego zasobu WebApp, czas na wdrożenie kodu. 

Osobiście, dla szybkich wdrożeń bez przygotowania korzystam z FTP. Jeśli chcesz z tego skorzystać, po otwarciu zasobu WebApp, kliknij panel Deployment Centerwybierz FTP a następnie Dashboard 

Korzystając z tych poświadczeń możesz się teraz podłączyć swoim klientem FTPS (zazwyczaj korzystam z WinSCP, ale eksplorator też działa!). 

Wszystko co teraz musisz zrobić to załadować do /site/wwwroot na serwerze zawartość repozytorium https://github.com/onelogin/dotnet-saml  (albo mojej gałęzi https://github.com/Panda-Soft/dotnet-saml która jest kompatybilna z Azure AD i wyświetla więcej szczegółów odpowiedzi SAML – więcej informacji jest komentarzach App_Code/Saml.cs ). Jeśli zdecytujesz się na użycie innej ścieżki, pamiętaj o dodaniu jej jako aplikacja w panelu Configurationzakładka Path mapping. 

Konfiguracja aplikacji 

Teraz należy skonfigurować dostawcę tożsamośći, w tym przypadku skorzystam z Azure AD jako IdP. Większość dostawców będzie miała bardzo podobny interface dla SAML jak tutaj. 

W portalu azure, wybierz swoją domenę w panelu Azure AD i przejdź do Enterprise applications. Tutaj kliknij New application 

Wybierz kafelkę Non-gallery application. 

Wpisz nazwę swojej aplikacji i kliknij Add  

 W pierwszym kroku kliknij Single sign-on i wtedy SAML. 

 Wybierz Edit obok Basic SAML Configuration. 

Podaj Entity ID swojej aplikacjija skorzystałem z nazwy aplikacji (koniecznie zapamiętaj tą nazwę). Musisz wprowadzić również Assertion Consumer Service URL, będzie to ścieżka do Twojej WebApp /Consume.aspx  

Na końcu kliknij Save.  

Przejdź  do klienta FTPS i przeedytuj App_Code/AppSettings.cstu zaktualizuj assertionConsumerServiceUrl oraz issuer wartościami które właśnie podałeś. 

Wracając do portalu we właściwościach aplikacji, w panelu Single sign-on pobierz certyfikat w formacie Base64 format skopjuj zawartość pobranego pliku. Również zwróć uwagę na ścieżkę Login URL. 


W plikach WebApp przejdź i przeedytuj App_Code/AccountSettings.cspodaj tu zawartość pliku z certyfikatem (bez enterów) oraz idp_sso_target_url które było w polu Login URL z portalu. 

Jeśli chcesz, możesz też przejść w portalu do sekcji User Attributes & Claims tutaj skonfigurować zawartość odpowiedzi SAML. W moim przypadku ustawiłem UPN jako Unique User Identifier oraz listę grup. 

Kiedy skończysz, przejdź do panelu Users and groups swojej aplikacji i dodaj użytkowników, którzy powinni mieć dostęp (grupy są dostępne jedynie przy licencji P1 lub P2 Azure AD). 

Testowanie SAML 

Teraz możesz przejść do adresu swojej aplikacji i spróbować się zalogować: 

Zostaniesz przekierowany do logowania z Azure AD: 

Odpowiedź będzie zawierać wszystkie szczegóły dostarczone przez dostawcę tożsamości. Najważniejsze jest Name ID (unikatowy identyfikator, w tym przypadku UPN) oraz wszystkie atrybuty przekazane w żądaniu (w tym przypadku lista ID grup). 

Klikając Login na dole strony ponownie zostaniesz uwierzytelniony i otrzymasz nową odpowiedź SAML. Pomaga to odświeżyć odpowiedź jak tylko dopasujesz zawartość atrybutów podmiotu przekazywanych przez IdP. 

 

Powiązane posty

Projects & Consulting

Wyzwania projektowania zorientowanego na użytkowników

Date icon 2021-04-08

Jak zapewnić wartość dodaną projektując UX w oparciu o opinie użytkowników?

Projects & Consulting

Winning is a team sport – how to effectively build bid teams

Date icon 2021-03-25

Tips on how to harmonize bid teams when selling IT services

Projects & Consulting

Efektywne zarządzanie kosztami infrastruktury chmury hybrydowej

Date icon 2021-03-16

Monitorowanie i optymalizacja kosztów infrastruktury hybrydowej są istotne