Logowanie Multipass
Ostatnia aktualizacja: 2023-07-26
Liczba odwiedzin posta: 7207
Logowanie
Sugester poza ręcznym zakładaniem użytkowników oferuje również synchronizacje "do wewnątrz" z innymi serwisami poprzez powszechnie stosowane protokoły Simple SSO oraz Multipass SSO.
Za pomocą ww. protokołów Sugester jest w stanie uwierzytelniać użytkowników z zewnętrznej bazy.
Simple SSO wymaga jedynie skonfigurowania linku (logowanie > simple sso > sso url) do logowania w zewnętrznym serwisie.
Multipass poza linkiem (logowanie > multipass sso > multipass url) potrzebuje także prywatnego tokenu (logowanie > multipass sso > multipass token), w którego posiadaniu powinna być administracja zewnętrznego serwisu.
Multipass jest trudniejszy w konfiguracji, ale w zamian zapewnia większe bezpieczeństwo danych.
Ustawienia Multipass
Aby włączyć multipass, należy Przejść do Menu Ustawienia>Ustawienia konta>Integracje i w polu Sposób logowania wybrać multipass.Należy następnie podać url do logowania poprzez własną aplikację internetową oraz wygenerować token.
Zasada działania
Multipass umożliwia automatycznie tworzenie i logowanie użytkowników poprzez przekazanie odpowiednio zaszyfrowanych danych w parametach zapytania.
Użytkownik chcący się zalogować na Sugesterze jest przekierowany na adres podany w ustawieniach jako "Multipass url". Twoja aplikacja powinna przekierować użytkownika z powrotem na stronę logowania Sugestera (której adres jest przekazywany przez parametr "login_url") ze specjalnie wygenerowanym parametrem "multipass", np.:
https://prefix.sugester.pl/login?multipass=fqB_bZWoX1qU30I7habsB-5IFG00-SBsaSFkJLPjUPib94ub0YZrb_i0nUnhwdG6uTPaQ3ylnUxT45Pyl8JTuXtOkHWsbb1hWCN2YyEfqPJrDkqsEXBLanQgnmUQYz6PKXvW9KX-LxUnAlxIBHxtun14NExcAN_5W51QLjiSJiyZmAfq8mu_pV-3lvNTkdfoH9on7B5X8FWZbza2dI23PH1dCqQcFg%3D%3D&strong=true
Sugester sprawdza poprawność zapytania i odszyfrowuje dane:
- login użytkownika - zawsze
- jego adres email - tylko podczas pierwszego logowania (w celu założenia konta)
- termin utworzenia zapytania
- opcjonalnie url, na który użytkownik będzie przekierowany po udanym logowaniu
- opcjonalny nick, który zostanie nadany użytkownikowi po udanym logowaniu
Algorytm szyfrowania
Kod Ruby generujący parametr "multipass"
require "openssl" require "base64" require "time" require "json" module MultipassExampleCode CURRENT_CIPHER_METHOD = { cipher: 'aes-256-gcm', encryption_key_length: 32, iv_length: 12, use_final: false, } def self.encode(multipass_secret, data, iv = nil) cipher_m = CURRENT_CIPHER_METHOD key_material = OpenSSL::Digest.new("sha256").digest(multipass_secret) encryption_key = key_material[0, cipher_m[:encryption_key_length]] signature_key = key_material[cipher_m[:encryption_key_length], cipher_m[:encryption_key_length]] data["created_at"] ||= Time.now.iso8601 cipher = OpenSSL::Cipher.new(cipher_m[:cipher]) cipher.encrypt cipher.key = encryption_key iv ||= cipher.random_iv cipher.iv = iv ciphertext = iv + cipher.update(data.to_json) ciphertext += cipher.final if cipher_m[:use_final] sign = OpenSSL::HMAC.digest("sha256", signature_key, ciphertext) Base64.urlsafe_encode64(ciphertext + sign) end end multipass = MultipassExampleCode.encode( "your multipass token", { 'login' => 'example_login', 'email' => 'example_email.example.com', # Required only for create account 'url' => '/app/acitivities', # Optional parameter - redirect url 'nick' => 'example_nick' # Optional parameter - nick for user. } ) puts "https://prefix.sugester.pl/login?multipass=#{multipass}&strong=true"
UWAGI
Nasz multipass działa zgodnie z mechanizmem zaproponowanym przez serwis Shopify.
Zarządzaj całą swoją firmą w jednej aplikacji. Wypróbuj Sugester przez 30 dni za darmo!
Rozpocznij darmowy okres testowyPowrót
Komentarze
Dodaj komentarz