
OpenID Connect vs Keycloak
Greenlight v3 oferuje obsługę zewnętrznego uwierzytelniania poprzez OpenID Connect. Jeśli posiadasz serwer uwierzytelniający obsługujący ten protokół, możesz łatwo połączyć go z Greenlight v3 za pomocą zmiennych środowiskowych. Więcej informacji można znaleźć w sekcji Konfiguracja OpenID Connect.
Jeśli nie posiadasz serwera uwierzytelniającego, zalecanym rozwiązaniem jest Keycloak. Obsługuje wiele metod uwierzytelniania, w tym Google, Microsoft, SAML i inne. Aby uzyskać pełną listę obsługiwanych dostawców tożsamości, zobacz Dostawcy tożsamości Keycloak.
Instalowanie Keycloak
Jeśli użyłeś Skryptu instalacyjnego BigBlueButton bez przekazania opcji -k, możesz po prostu ponownie uruchomić skrypt instalacyjny, korzystając z tych samych opcji co poprzednio, tym razem mijając -k, aby zainstalować Keycloak na swoim serwerze.
Jeśli użyłeś Skrypt instalacyjny Greenlight bez przekazania opcji -k, możesz po prostu ponownie uruchomić skrypt instalacyjny, korzystając z tych samych opcji, co poprzednio, tym razem przekazując -k, aby zainstalować Keycloak na swoim serwerze.
Konfigurowanie Keycloak
Po zakończeniu instalacji Keycloak będziesz musiał skonfigurować Keycloak zgodnie ze swoimi potrzebami. W tym przewodniku znajdziesz przykład łączenia się z uwierzytelnianiem Google, ale możesz dostosować te kroki do swojego wdrożenia.
WAŻNA UWAGA: To jest przykładowa konfiguracja przeznaczona do testów. Aby zapoznać się z pełną konfiguracją produkcyjną, zapoznaj się z dokumentacją Keycloak.
Zacznij od dostępu do panelu administracyjnego poprzez https://<GREENLIGHT_HOSTNAME>/keycloak
Wybierz Administration Console i zaloguj się przy użyciu danych wydrukowanych podczas the Keycloak Installation process.
Zacznij od utworzenia nowej domeny dla Greenlight, najeżdżając kursorem na dziedzinę Master w lewym górnym rogu i klikając Create Realm.
Ustaw nazwę dziedziny na greenlight i kliknij przycisk Utwórz.

Następnie utwórz nowego klienta klikając zakładkę Clients po lewej stronie, a następnie klikając Create Client. Ustaw Client type na OpenID Connect i Client ID na greenlight. Po potwierdzeniu, że wartości są prawidłowe, kliknij Next

Ustaw Client authentication na ON i oraz Valid Redirect URIs to https://<GREENLIGHT_URL>/*. Po ustawieniu wartości kliknij Save.


Podczas pobytu w Clients, kliknij zakładkę Credentials u góry strony i zapisz zmienną Client secret z boku (będzie to OPENID_CONNECT_CLIENT_SECRET później w .env).

Aby dodać dostawcę tożsamości, kliknij Identity Providers po lewej stronie i wybierz żądanego dostawcę (w tej instalacji będziemy korzystać z usług Google).

W przypadku Google postępuj zgodnie z tym przewodnikiem, aby uzyskać dane uwierzytelniające: Poświadczenia Google OAuth.
Możesz swobodnie korzystać z usług różnych dostawców i zapoznać się z ich dokumentacją dotyczącą tworzenia i uzyskiwania danych uwierzytelniających OpenID.
Po uzyskaniu danych uwierzytelniających Google wypełnij pola Client ID i Client Secret i kliknij Save.

Następnie musimy ustawić Google jako naszą domyślną metodę uwierzytelniania, aby zapewnić naszym użytkownikom bezproblemowy proces logowania. Kliknij Authentication w menu po lewej stronie.
Kliknij browser, a następnie znajdź wiersz Identity Provider Redirector i kliknij tryb ustawień po prawej stronie
.
.
Ustaw Alias na Google i Default Identity Provider na google (lub dowolnego wybranego dostawcę tożsamości). Gdy już skończysz, kliknij Save
.
Na koniec musimy połączyć Greenlight z Keycloak za pomocą zmiennych OpenID Connect .env.
Wróć do Realm Settings w menu po lewej stronie i kliknij OpenID Endpoint Configuration

Skopiuj adres URL wyświetlany po issuer

Teraz edytuj swój plik .env i odkomentuj następujący blok (usuń # przed każdą zmienną OPENID):
### EXTERNAL AUTHENTICATION METHODS
#
#OPENID_CONNECT_CLIENT_ID=
#OPENID_CONNECT_CLIENT_SECRET=
#OPENID_CONNECT_ISSUER=
#OPENID_CONNECT_REDIRECT=
Na koniec wprowadź dane uwierzytelniające w następujący sposób:
<YOUR_SECRET>jest symbolem zastępczym sekretu klienta OpenID, który zapisałeś podczas kilku pierwszych kroków. —<ISSUER_URL>jest symbolem zastępczym adresu URL obszaru wydawcy Keycloak (który właśnie skopiowałeś). —<YOUR_GREENLIGHT_DOMAIN>jest symbolem zastępczym nazwy hosta Greenlight
Gdy już skończysz, powinien wyglądać mniej więcej tak:
### EXTERNAL AUTHENTICATION METHODS
#
OPENID_CONNECT_CLIENT_ID=greenlight
OPENID_CONNECT_CLIENT_SECRET=<YOUR_SECRET>
OPENID_CONNECT_ISSUER=<ISSUER_URL>
OPENID_CONNECT_REDIRECT=https://<YOUR_GREENLIGHT_DOMAIN>/
Pozostało tylko zrestartować Greenlight v3 i połączyć się z Keycloak
sudo docker-compose down && sudo docker-compose up -d
Obsługa awatarów
Greenlight może pobierać awatary użytkowników za pośrednictwem Keycloak, zapewniając ujednoliconą i spójną obsługę obrazów profilowych w różnych usługach. Chociaż tę funkcję do tej pory zweryfikowano tylko za pomocą Google OAuth, może ona również działać z innymi dostawcami OAuth skonfigurowanymi w Keycloak.
Najpierw kliknij Identity Providers po lewej stronie i wybierz skonfigurowanego dostawcę.
![]()
Następnie na górze kliknij zakładkę Mappers
![]()
Następnie kliknij Add mapper
![]()
Na koniec wypełnij pola jak pokazano na obrazku poniżej i kliknij Save.
![]()
Gotowe — obrazy awatarów powinny być teraz przekazywane przez Keycloak do Greenlight.