Skonfiguruj SSO z Google Workspace¶
Platforma tożsamości Google jest zgodna z OIDC i używa jednego, dobrze znanego discovery URL dla każdego klienta, więc jedynymi wartościami specyficznymi dla organizacji są identyfikator klienta i sekret.
Ten przewodnik obejmuje stronę Google: tworzenie klienta OAuth i zebranie wartości, których potrzebuje digna. Strona digna — dashboard_config.toml, testowanie i rozwiązywanie problemów — jest taka sama dla każdego dostawcy i opisana w Single Sign-On Overview.
Zanim zaczniesz¶
| Wymaganie | Uwagi |
|---|---|
| Google Cloud project | Dowolny projekt w tej samej organizacji co Twoja domena Workspace |
| Role | Editor lub Owner w projekcie |
| digna redirect URI | URL, na który użytkownicy wracają po logowaniu, np. https://digna.yourdomain.com/oidc/callback |
Krok 1: Skonfiguruj ekran zgody OAuth¶
Google nie wystawi poświadczeń, dopóki ekran zgody nie istnieje.
- Otwórz Google Cloud Console i wybierz swój projekt
- Przejdź do APIs & Services → OAuth consent screen
- Wybierz typ użytkownika:
- Internal — tylko konta w Twojej domenie Workspace mogą się logować. Zalecane.
- External — każde konto Google może spróbować się zalogować.
- Wypełnij nazwę aplikacji, adres e-mail wsparcia użytkownika oraz adres e-mail kontaktu dewelopera
- Na kroku Scopes dodaj
openid,.../auth/userinfo.emaili.../auth/userinfo.profile - Zapisz
Aplikacje zewnętrzne muszą być opublikowane
Ekran zgody External rozpoczyna w statusie Testing, gdzie tylko konta wyraźnie dodane do listy testowych użytkowników mogą ukończyć logowanie. Wszyscy inni zobaczą "digna has not completed the Google verification process". Przełącz aplikację na In production w sekcji Publishing status, albo użyj Internal — które nie ma takiego ograniczenia i jest właściwym wyborem dla wdrożenia tylko dla Workspace.
Krok 2: Utwórz klienta OAuth¶
- Przejdź do APIs & Services → Credentials
- Kliknij Create Credentials → OAuth client ID
- Ustaw Application type na Web application
- Nadaj mu nazwę, np.
digna - W sekcji Authorized redirect URIs kliknij Add URI i wpisz:
- Kliknij Create
Nie są wymagane Authorized JavaScript origins
digna wymienia kod autoryzacji z backendu, nie z przeglądarki, więc pole Authorized JavaScript origins można pozostawić puste. Liczy się tylko redirect URI.
Krok 3: Zbierz poświadczenia¶
Dialog, który pojawia się po utworzeniu, pokazuje:
- Client ID — kończy się na
.apps.googleusercontent.com→ staje sięDIGNA_OIDC_CLIENT_ID - Client secret → staje się
DIGNA_OIDC_CLIENT_SECRET
Obie wartości pozostają dostępne później na stronie szczegółów poświadczenia, w przeciwieństwie do większości innych dostawców.
Krok 4: URL discovery¶
Google używa jednego discovery URL dla wszystkich klientów — nic nie trzeba podstawiać:
Krok 5: Skonfiguruj digna¶
dashboard/dashboard_config.toml¶
config.toml¶
[oidc.google]
DIGNA_OIDC_CLIENT_ID = "123456789-abcdefghijklmnopqrstuvwxyz.apps.googleusercontent.com"
DIGNA_OIDC_CLIENT_SECRET = "<the client secret copied in Step 3>"
DIGNA_OIDC_REDIRECT_URI = "https://digna.yourdomain.com/oidc/callback"
DIGNA_OIDC_CONFIGURATION_URL = "https://accounts.google.com/.well-known/openid-configuration"
Klucz key w obu plikach musi się zgadzać — tutaj google.
Krok 6: Testuj¶
Zrestartuj backend i serwer WWW, a następnie otwórz dashboard. Zobacz Testowanie logowania po pełną listę kontrolną.
Rozwiązywanie problemów z Google Workspace¶
Błąd 400: redirect_uri_mismatch¶
URI w DIGNA_OIDC_REDIRECT_URI nie znajduje się na liście Authorized redirect URIs, albo różni się znakiem końcowym (ukośnikiem) lub schematem. Strona błędu Google pokazuje URI, które otrzymała — porównaj je znak po znaku z zarejestrowanym.
Ta aplikacja jest zablokowana / Nie zakończyła weryfikacji¶
Ekran zgody jest External i nadal w stanie Testing. Opublikuj go lub przełącz aplikację na Internal.
Access Blocked: Authorization Error¶
Konto próbujące się zalogować znajduje się poza Twoją domeną Workspace, podczas gdy ekran zgody jest ustawiony na Internal. To zamierzone zachowanie — aplikacje Internal akceptują tylko konta z organizacji.
Zmiany wymagają kilku minut¶
Google rozprowadza zmiany poświadczeń i ekranu zgody asynchronicznie. Nowo dodane redirect URI może potrzebować kilku minut, by zacząć działać; jeśli zmiana wygląda na zignorowaną, odczekaj i spróbuj ponownie przed dalszymi dochodzeniami.
Zobacz także¶
- Single Sign-On Overview — odniesienie konfiguracji, testowanie i ogólne rozwiązywanie problemów
- Google: OpenID Connect