Logowanie Multipass

Utworzono: 2015-01-23
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.
multipass 1

Należy następnie podać url do logowania poprzez własną aplikację internetową oraz wygenerować token.
multipass 2

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 testowy


Powrót


Komentarze

Dodaj komentarz