Mergeți la conținutul principal

Nu pot să mă conectez cu SSO

VaultPAM suportă Single Sign-On (SSO) prin OpenID Connect (OIDC). Când conectarea SSO eșuează, cauza rădăcinii este aproape întotdeauna una dintre cinci categorii: configurare incorectă OIDC, clock skew între VaultPAM și IdP, utilizator neprovinizionat în Identity Provider, URI de redirecționare incorect, sau o setare de realm Keycloak. Administratorii ar trebui să parcurgă acestea în ordine — configurarea incorectă OIDC este de departe cea mai comună cauză.

Simptome

  • Butonul SSO de pe pagina de conectare redirecționează către Identity Provider, dar apoi returnează o eroare.
  • Mesaje de eroare pe care le-ați putea vedea:
    • invalid_client sau unauthorized_client
    • redirect_uri_mismatch
    • access_denied
    • invalid_grant: Session not active
    • User not found sau Account is not fully set up
    • O pagină generică "Something went wrong" după o redirecționare din IdP
  • Utilizatorul se poate autentifica pe partea IdP, dar VaultPAM nu îl conectează.

Cauze

1. Configurare incorectă OIDC

Client ID-ul, Client Secret-ul sau URL-ul de descoperire OIDC configurat în VaultPAM nu se potrivește cu ceea ce Identity Provider-ul a înregistrat.

Verificare: În Organization → Security → SSO Settings, verificați:

  • OIDC Issuer URL se rezolvă și returnează un document .well-known/openid-configuration valabil.
  • Client ID se potrivește exact cu ceea ce este înregistrat în aplicația IdP.
  • Client Secret nu a fost rotit pe partea IdP fără a actualiza VaultPAM.

Remediere: Actualizați câmpul incorect și salvați. Testați prin încercarea conectării SSO din nou.

2. Clock skew între VaultPAM și IdP

Tokenurile OIDC conțin revendicări iat (issued-at) și exp (expiry). Dacă ceasurile pe serverul VaultPAM sau IdP sunt mai departe de ±60 de secunde, validarea tokenului eșuează cu o eroare invalid_grant sau "Session not active".

Verificare: Pe gazda VaultPAM (sau nod Kubernetes), rulați:

date -u

Comparați cu ceasul IdP (vizibil în revendicarea iat a unui JWT decodat, sau verificat prin consola admin IdP). Diferența trebuie să fie mai mică de 60 de secunde.

Remediere: Asigurați-vă că ambele sisteme sincronizează ceasurile lor cu o sursă NTP. Pe Linux: timedatectl set-ntp true. În Kubernetes, ceasul nodului este moștenit de pe gazda VM — asigurați-vă că stratul hypervisor are NTP configurat.

3. Utilizator neprovinizionat în IdP

Contul utilizatorului există în VaultPAM, dar nu a fost creat sau activat în Identity Provider, sau email-ul contului IdP nu se potrivește cu email-ul contului VaultPAM.

Verificare: În consola admin IdP, confirmați că contul utilizatorului există și este activ. Verificați că adresa de email se potrivește exact (potrivirea sensibilă la majuscule se aplică în unele IdP-uri).

Remediere: Creați sau activați contul utilizatorului în IdP, sau actualizați adresa de email în oricare dintre sisteme pentru a vă asigura că se potrivesc. Dacă organizația dumneavoastră utilizează aprovizionarea SCIM, confirmați că conectorul de aprovizionare este activ și utilizatorul aparține grupului aprovizionat.

4. URI de redirecționare incorect

URI-ul de redirecționare pe care VaultPAM îl trimite în cursul fluxului OIDC Authorization Code trebuie să se potrivească exact cu unul dintre URI-urile de redirecționare permise înregistrate în aplicația IdP. Chiar și o diferență de slash finală provoacă o eroare redirect_uri_mismatch.

Verificare: În Organization → Security → SSO Settings, notați Callback URL afișat. Deschideți înregistrarea aplicației IdP și verificați dacă acest URI exact se află în lista URI-urilor de redirecționare permise.

Remediere: Adăugați URL-ul exact de callback la lista URI-urilor de redirecționare permise din aplicația IdP și salvați.

5. Setări de realm Keycloak

Când VaultPAM utilizează o instanță încorporată sau auto-găzduită Keycloak, setările de realm configurate incorect pot preveni conectarea chiar și atunci când clientul OIDC este configurat corect.

Probleme comune specifice Keycloak:

  • Realm-ul este dezactivat sau în modul doar citire.
  • Access Type al clientului este setat la public atunci când VaultPAM se așteaptă la confidential.
  • Scopurile obligatorii openid, email sau profile nu sunt mapate în client.
  • Valid Redirect URIs din clientul Keycloak nu include URL-ul callback VaultPAM.

Verificare: Deschideți consola admin Keycloak, navigați la Realms → [realm name] → Clients → [VaultPAM client], și verificați:

  • Clientul este Enabled.
  • Access Type este confidential.
  • Valid Redirect URIs include URL-ul callback VaultPAM.
  • Client Scopes include openid, email și profile.

Remediere: Corectați setările clientului Keycloak și salvați. Nu este necesară o repornire pentru majoritatea modificărilor de configurare Keycloak.

Pași de rezolvare

  1. Deschideți Organization → Security → SSO Settings și verificați că OIDC Issuer URL, Client ID și Client Secret se potrivesc exact cu înregistrarea aplicației IdP.
  2. Verificați ceasurile serverului pe gazda VaultPAM și IdP. Dacă clock skew depășește 30 de secunde, configurați NTP pe ambele sisteme.
  3. În consola admin IdP, confirmați că contul utilizatorului există, este activ și email-ul se potrivește cu email-ul contului VaultPAM.
  4. Confirmați că Callback URL afișat în Organization → Security → SSO Settings este listat ca URI de redirecționare permis în aplicația IdP.
  5. Dacă utilizați Keycloak, deschideți consola admin Keycloak și verificați că clientul este activat, tipul de acces este confidential, URI-urile de redirecționare valabile includ URL-ul callback și scopurile obligatorii sunt mapate.
  6. După orice modificare, ștergeți cookie-urile browserului și încercați din nou conectarea SSO dintr-o fereastră privată/incognito pentru a evita starea sesiunii în cache.

Cale de escaladare

Dacă ați parcurs toate cinci cauze și conectarea SSO încă eșuează:

  1. Capturați URL-ul complet afișat în bara de adresă a browserului la punctul de eșec (conține codul de eroare și descrierea ca parametri de interogare).
  2. Colectați jurnalul de evenimente Keycloak sau IdP pentru tentativa de autentificare eșuată.
  3. Notați mesajul de eroare exact vizibil pe ecran.
  4. Deschideți un bilet de asistență cu: tipul și versiunea IdP, URL-ul erorii, fragmentul jurnalului de evenimente și confirmarea pasilor pe care i-ați completat deja.

Articole conexe