Wieloskładnikowe uwierzytelnianie w Powershell

20 stycznia 2017 at 10:08

Czasami/Często albo nawet i częściej niż często zachodzi konieczność przekazania komuś kompetencji w zakresie danej technologii. Gdy tylko jest to możliwe odbywa się to poprzez delegację uprawnień na poziomie aplikacji. Niestety nie zawsze jest to możliwe i zdarzają się sytuacje, w których nie można/nie da się (lub nie jest to wygodne) wydelegować uprawnień. Wtedy zazwyczaj pojawia się konieczność wydelegowania uprawnień w ramach jakiegoś konta ‚X’ i przekazania poświadczeń tego konta do grupy użytkowników celem wykonania swoich zadań. Właśnie w tym miejscu pojawia się problem jak zrobić to dobrze aby uniknąć hardcodowania haseł w treści skryptów:

Nie tędy droga – nie idźmy nigdy tą drogą błagam Hasło czystym tekstem w skrypcie to nie jest dobry pomysł. NIGDY! Natomiast próby jego „ukrywania” czy „zaciemniania” są zawsze tylko półśrodkami. Zabieg zapisania hasła w formie:

Może i utrudnia odczytanie takiego hasła wprost, ale umówmy się że nie stanowi najmniejszego problemu aby zrobić „reverse-engeneering” i wyciągnąć hasełko Kolejnym sposobem jest wykorzystanie Secure-String. Pomysł lepszy, ale nadal to szyfrowanie jest słabe i stosunkowo prosto odczytywalne:

Wystarczy wykonać:

I już znamy hasło w postaci czystego tekstu. A dodatkowo w przypadku chęci skorzystania z zapisanych poświadczeń na innej stacji odbijemy się od komunikatów o […]

© Marcin Krzanowicz