Wpis z mikrobloga

Potrzebuję zalogować się do aplikacji, do której to logowanie odbywa się z wykorzystaniem SAML. SAML jest już poprawnie skonfigurowany, logowanie działa, Azure AD jako IdP. No i teraz problem pojawia się taki - muszę zalogować się do tej aplikacji z poziomu terraform. Innymi słowy, SSO powinno odbyć się bez udziału przeglądarki. Czytałem już od rana czy da się to jakoś zrobić, ale szczerze mówiąc powoli godzę się z myślą, że nie. Może znajdę tutaj jakąś ostatnią nadzieję wśród Was?
#devops
  • 12
  • Odpowiedz
  • 0
@Verbatino: zrobiłem po REST, Ale problem jest tego typu, że TAPem nie mogę zalogować się z poziomu CLI czy tam Terraform. A przynajmniej nie znalazłem takiej możliwości. Interaktywne logowanie nie wchodzi w grę.
  • Odpowiedz
@xmaniox: Zupełnie płyniesz w jakimś nieznanym kierunku z tym deployem.
Niby zrobiłeś logowanie po REST API... ale nie możesz się zalogować i nawet nie napiszesz gdzie niby tkwi problem xD
Nawet zwykły najprostszy curl -X (...) -h (...) -d (...) odpalony nawet z TF (bez znaczenia w tym przypadku) zgodnie z tym przykładem powinien zwrócić Ci token (albo jakikolwiek błąd/komunikat).
  • Odpowiedz
  • 0
@Verbatino: już mówię jak to wygląda. Z wykorzystaniem skryptu napisanego w Pythonie loguje się poprzez zarejestrowana apke w azure do entra ID. Apka ma permisiony na ustawianie TAP dla usera, co też czyni. User ten wykorzystywany jest do logowania w aplikacji. Entra ID jest połączone z aplikacja w taki sposób, że do apki mogę zalogować się z wykorzystaniem passów z entra ID, ale tylko wtedy kiedy loguje się poprzez przeglądarkę (co
  • Odpowiedz
  • 0
@Verbatino: token dostaje, ale on służy tylko do ustawienia TAP userowi, który ma logować się do aplikacji. Na początku każdego pipeline TAP jest resetowany dla tego usera, a problem polega na tym, że nie mam jak przekazać tych credsow do API aplikacji, bo logowanie odbywa się po SAML. Logowanie działa tylko z poziomu przeglądarki, na czym mi w ogóle nie zależy. Zależy mi tylko na logowaniu do aplikacji z poziomu terraforma.
  • Odpowiedz
@xmaniox: Trochę to wszystko chaotyczne co piszesz... Ale na pewno możesz sobie pociągnąć TAP-a dla danego usera po jego utworzeniu z wykorzystaniem New-MgUserAuthenticationTemporaryAccessPassMethod bo jest ono w polu TemporaryAccessPass.
Tutaj ktoś przykładowo sobie tak robił.
Wystarczy, że w sposób bezpieczny odpalisz sobie takiego cmdleta w środowisku i normalnie autentykujesz się w appce.
  • Odpowiedz
@xmaniox: Ale zaraz, zaraz... Ty oczekujesz, że dostawca IAM sam z siebie zrobi Ci implementację po stronie aplikacji?
Do takich rzeczy można ewentualnie użyć MS Graph...
  • Odpowiedz
  • 0
@Verbatino: nie, nie oczekuje, że dostawca zovi mi logowanie po stronie aplikacji. Ale TAPem nie da się nawet zautentykowac po CLI do Azure. Wygenerować TAP dla usera z CLI to jedno, ale zautentykowac to drugie.
  • Odpowiedz
@xmaniox: Mówiąc szczerze to nie chce mi się już płynąć w tym kierunku.
Niemniej. Do samego Azure jako "platformy" brak możliwości logowania przez TAP ma jak najbardziej sens. To nie usługobiorca zarządza całą platformą, konta są w domenie MS. Tu nawet byłby problem natury prawnej.
A jeśli chodzi o same usługi i konta je wykorzystujące to już inna strona medalu.
Niemniej naprawdę nie rozumiem co chcesz osiągnąć w tym pipeline więc
  • Odpowiedz
  • 0
@Verbatino: Ok, już nie ciągnijmy tego tematu bo doszedłem do wniosku, że w tym modelu, jaki planowałem jest to niewykonalne. Ale żeby nie zostawić Ciebie z niedomówieniem - plan był taki:
1. Użytkownik, który nie powinien mieć dostępu do aplikacji ani do żadnych credsów pozwalających mu się tam zalogować odpala pipeline na Azure Dev/Ops
2. Pipeline w pierwszym kroku tworzy infrastrukturę z wykorzystaniem Terraform (między innymi stawia też aplikację, o której
  • Odpowiedz