2013-08-28 11 views
7

Czy istnieje sposób wdrożenia uwierzytelniania wieloczynnikowego w Shiro? Czy ktoś może mi podpowiedzieć, jak to zaimplementować?Shiro, wieloczynnikowe uwierzytelnianie

Aby uzyskać więcej informacji: Podstawową ideą jest to, że użytkownik musi zalogować się tak jak zwykle, używając nazwy użytkownika i hasła, ale przed faktycznym uwierzytelnieniem, użytkownik musi również wprowadzić jednorazowy token, który otrzymał jako SMS.

Dziękujemy!

+0

Nie mam pojęcia? Ktoś? Byłbym również zadowolony z porady, w której musiałbym "podłączyć" moją własną implementację uwierzytelniania wieloczynnikowego, aby mogła współpracować z Shiro! – RedSonja

Odpowiedz

6

W końcu rozwiązałem mój problem sam, ale jestem oczywiście zawsze otwarty na inne sugestie.

I wdrożone moje własne 2 - Factor Authentication przepływu:

Przede wszystkim zmienił adres URL strony logowania, do którego Shiro przekierowuje niezidentyfikowany użytkownik do własnej strony logowania, która prowadzi do mechanizmu uwierzytelniania. Użytkownik musi wykonać dwa "etapy", aby się zalogować.

  • Na pierwszym etapie on/ona musi podać nazwę użytkownika i hasło, jeśli te są ważne, użytkownik zostaje przekierowany do drugiego etapu logowania.
  • Tymczasem wygenerowano jednorazowy token i wysłano go do użytkownika przez SMS. Również przebieg uwierzytelniania użytkownika został zapisany w sesji (co oznacza, że ​​pamiętam, że etap 1 został pomyślnie zakończony ).
  • Na etapie 2 użytkownik musi wprowadzić token. Jeśli tokena było
    • nie ważne czy ilość prób (5) został przekroczony
    • upłynął (po 5 minutach) liczba prób prawidłowo wprowadź token przekroczyła 4 użytkownik zostanie przekierowany Stage 1 i wszystkie postępy zostaną usunięte. I
  • jeśli wszystko poszło dobrze, użytkownik zostanie uwierzytelniony Shiro (oczywiście, nie pozwalając mu/jej znać)

W końcu użytkownik zostanie przekierowany do strony on/ona pierwotnie wymagane, co nadal pozwala mu na zakładkowanie stron. Oczywiście, pamiętnik-Shiro będzie zawsze wyłączony.

+1

Czy jest jakiś dostępny kod, który implementuje to zachowanie? –

+0

@PauloPires Przepraszam, nie mam darmowego kodu, zaimplementowałem go podczas stażu. Ale sama implementacja tej procedury nie jest trudna, po prostu musisz dowiedzieć się, jak możesz ją współdziałać z Shiro. Po zakończeniu uwierzytelniania wystarczy wywołać odpowiednią funkcję w shiro. – RedSonja

+0

@Sonja Dzięki za udostępnienie metody mimo to! To mi pomoże prawdopodobnie. Czy uwierzytelniasz nazwę użytkownika i hasło w pierwszym etapie używając Shiro? Z tego artykułu autorstwa Les Hazlewood, mówi: "To (wieloetapowe uwierzytelnianie) zostało wykonane w aplikacjach opartych na Shiro, ale przez aplikację zbierającą wszystkie wymagane informacje z góry, a następnie wchodzącą w interakcję z Shiro." Najlepiej zrobić to po swojemu, uwierzytelnić nazwę użytkownika/hasło przed wykonaniem drugiego etapu. Tak przy okazji, jestem ciekawa, w jaki sposób korzystałeś z SMS-a? – mikato

Powiązane problemy