Παράλειψη στο κύριο περιεχόμενο

Δεν μπορώ να συνδεθώ με SSO

Το VaultPAM υποστηρίζει Single Sign-On (SSO) μέσω OpenID Connect (OIDC). Όταν η σύνδεση SSO αποτυγχάνει, η ρίζα του προβλήματος είναι σχεδόν πάντα μία από πέντε κατηγορίες: ανακριβής διαμόρφωση OIDC, απόκλιση ρολογιού μεταξύ VaultPAM και IdP, ο χρήστης δεν έχει παρασχεθεί στον Identity Provider, λανθασμένο redirect URI, ή λάθος ρύθμιση realm Keycloak. Οι διαχειριστές θα πρέπει να ελέγξουν αυτές τις περιπτώσεις με σειρά — η ανακριβής διαμόρφωση OIDC είναι κατά πολύ η πιο συχνή αιτία.

Συμπτώματα

  • Το κουμπί SSO στη σελίδα σύνδεσης ανακατευθύνει στον Identity Provider αλλά στη συνέχεια επιστρέφει σφάλμα.
  • Μηνύματα σφάλματος που ενδέχεται να δείτε:
    • invalid_client ή unauthorized_client
    • redirect_uri_mismatch
    • access_denied
    • invalid_grant: Session not active
    • User not found ή Account is not fully set up
    • Μια γενική σελίδα "Something went wrong" μετά από ανακατεύθυνση από τον IdP
  • Ο χρήστης μπορεί να πραγματοποιήσει έλεγχο ταυτότητας στην πλευρά του IdP αλλά το VaultPAM δεν τον συνδέει.

Αιτίες

1. Ανακριβής διαμόρφωση OIDC

Το Client ID, Client Secret, ή OIDC discovery URL που διαμορφώθηκαν στο VaultPAM δεν ταιριάζουν με αυτό που έχει εγγραφεί στον Identity Provider.

Έλεγχος: Στο Organization → Security → SSO Settings, επαληθεύστε:

  • OIDC Issuer URL επιλύεται και επιστρέφει ένα έγκυρο έγγραφο .well-known/openid-configuration.
  • Client ID ταιριάζει ακριβώς με αυτό που είναι εγγεγραμμένο στην εφαρμογή IdP.
  • Client Secret δεν έχει περιστραφεί στην πλευρά του IdP χωρίς ενημέρωση του VaultPAM.

Επίλυση: Ενημερώστε το ασύμφωνο πεδίο και αποθηκεύστε. Δοκιμάστε προσπαθώντας ξανά να συνδεθείτε με SSO.

2. Απόκλιση ρολογιού μεταξύ VaultPAM και IdP

Τα OIDC tokens περιέχουν iat (issued-at) και exp (expiry) claims. Εάν τα ρολόγια στον διακομιστή VaultPAM ή στον IdP διαφέρουν περισσότερο από ±60 δευτερόλεπτα, η επαλήθευση token αποτυγχάνει με σφάλμα invalid_grant ή "Session not active".

Έλεγχος: Στον διακομιστή VaultPAM (ή στον κόμβο Kubernetes), εκτελέστε:

date -u

Συγκρίνετε με το ρολόι του IdP (ορατό στο iat claim ενός αποκωδικοποιημένου JWT, ή ελεγχθεί μέσω της κονσόλας διαχείρισης IdP). Η διαφορά πρέπει να είναι κάτω από 60 δευτερόλεπτα.

Επίλυση: Βεβαιωθείτε ότι και τα δύο συστήματα συγχρονίζουν τα ρολόγια τους σε σχέση με μια πηγή NTP. Σε Linux: timedatectl set-ntp true. Σε Kubernetes, το ρολόι του κόμβου κληρονομείται από τον κεντρικό υπολογιστή VM — βεβαιωθείτε ότι στο επίπεδο hypervisor έχει διαμορφωθεί NTP.

3. Χρήστης δεν παρέχεται στον IdP

Ο λογαριασμός του χρήστη υπάρχει στο VaultPAM αλλά δεν έχει δημιουργηθεί ή ενεργοποιηθεί στον Identity Provider, ή το email του λογαριασμού IdP δεν ταιριάζει με το email του λογαριασμού VaultPAM.

Έλεγχος: Στην κονσόλα διαχείρισης IdP, επιβεβαιώστε ότι ο λογαριασμός χρήστη υπάρχει και είναι ενεργός. Επαληθεύστε ότι η διεύθυνση email ταιριάζει ακριβώς (εφαρμόζεται διάκριση πεζών-κεφαλαίων σε ορισμένους IdP).

Επίλυση: Δημιουργήστε ή ενεργοποιήστε τον λογαριασμό χρήστη στον IdP, ή ενημερώστε τη διεύθυνση email σε ένα από τα δύο συστήματα για να βεβαιωθείτε ότι ταιριάζουν. Εάν ο οργανισμός σας χρησιμοποιεί SCIM provisioning, επιβεβαιώστε ότι ο σύνδεσμος provisioning είναι ενεργός και ο χρήστης ανήκει στην ομάδα που παρέχεται.

4. Λάθος redirect URI

Το redirect URI που στέλνει το VaultPAM κατά τη ροή OIDC Authorization Code πρέπει να ταιριάζει ακριβώς με ένα από τα επιτρεπόμενα redirect URI που είναι εγγεγραμμένα στην εφαρμογή IdP. Ακόμη και μια διαφορά τελικής κάθετης γραμμής προκαλεί σφάλμα redirect_uri_mismatch.

Έλεγχος: Στο Organization → Security → SSO Settings, σημειώστε το Callback URL που εμφανίζεται. Ανοίξτε την εγγραφή εφαρμογής IdP και επαληθεύστε ότι αυτό το ακριβές URI είναι καταγεγραμμένο στα επιτρεπόμενα redirect URI.

Επίλυση: Προσθέστε το ακριβές callback URL στη λίστα επιτρεπόμενων redirect URI της εφαρμογής IdP και αποθηκεύστε.

5. Ρυθμίσεις realm Keycloak

Όταν το VaultPAM χρησιμοποιεί μια ενσωματωμένη ή αυτο-φιλοξενούμενη παρουσία Keycloak, οι ανακριβώς διαμορφωμένες ρυθμίσεις realm μπορούν να αποτρέψουν τη σύνδεση ακόμη και όταν ο OIDC client είναι σωστά διαμορφωμένος.

Κοινά ζητήματα ειδικά για Keycloak:

  • Το realm είναι απενεργοποιημένο ή σε κατάσταση μόνο ανάγνωσης.
  • Ο Access Type του client ορίζεται σε public όταν το VaultPAM αναμένει confidential.
  • Τα απαιτούμενα openid, email, ή profile scopes δεν αντιστοιχίζονται στο client.
  • Valid Redirect URIs στο Keycloak client δεν περιλαμβάνει το callback URL του VaultPAM.

Έλεγχος: Ανοίξτε την κονσόλα διαχείρισης Keycloak, πλοηγηθείτε στο Realms → [realm name] → Clients → [VaultPAM client], και επαληθεύστε:

  • Ο Client είναι Enabled.
  • Access Type είναι confidential.
  • Valid Redirect URIs περιλαμβάνει το callback URL του VaultPAM.
  • Client Scopes περιλαμβάνουν openid, email, και profile.

Επίλυση: Διορθώστε τις ρυθμίσεις Keycloak client και αποθηκεύστε. Δεν απαιτείται επανεκκίνηση για τις περισσότερες αλλαγές διαμόρφωσης Keycloak.

Βήματα επίλυσης

  1. Ανοίξτε Organization → Security → SSO Settings και επαληθεύστε ότι το OIDC Issuer URL, Client ID, και Client Secret ταιριάζουν ακριβώς με την εγγραφή εφαρμογής IdP.
  2. Ελέγξτε τα ρολόγια του διακομιστή στον διακομιστή VaultPAM και IdP. Εάν η απόκλιση υπερβαίνει τα 30 δευτερόλεπτα, διαμορφώστε NTP και στα δύο συστήματα.
  3. Στην κονσόλα διαχείρισης IdP, επιβεβαιώστε ότι ο λογαριασμός χρήστη υπάρχει, είναι ενεργός, και το email ταιριάζει με το email του λογαριασμού VaultPAM.
  4. Επιβεβαιώστε ότι το Callback URL που εμφανίζεται στο Organization → Security → SSO Settings είναι καταγεγραμμένο ως επιτρεπόμενο redirect URI στην εφαρμογή IdP.
  5. Εάν χρησιμοποιείτε Keycloak, ανοίξτε την κονσόλα διαχείρισης Keycloak και επαληθεύστε ότι ο client είναι ενεργοποιημένος, ο τύπος πρόσβασης είναι confidential, τα έγκυρα redirect URI περιλαμβάνουν το callback URL, και τα απαιτούμενα scopes είναι αντιστοιχισμένα.
  6. Μετά από οποιαδήποτε αλλαγή, καθαρίστε τα cookies του προγράμματος περιήγησης και δοκιμάστε ξανά τη σύνδεση SSO από ένα ιδιωτικό/incognito παράθυρο για να αποφύγετε κρυμμένη κατάσταση συνόδου.

Διαδρομή κλιμάκωσης

Εάν έχετε επεξεργαστεί όλες τις πέντε αιτίες και η σύνδεση SSO εξακολουθεί να αποτυγχάνει:

  1. Καταγράψτε το πλήρες URL που εμφανίζεται στη γραμμή διευθύνσεων του προγράμματος περιήγησης στο σημείο αποτυχίας (περιέχει τον κωδικό σφάλματος και την περιγραφή ως παράμετροι ερωτήματος).
  2. Συλλέξτε το αρχείο καταγραφής συμβάντων Keycloak ή IdP για την αποτυχημένη προσπάθεια ελέγχου ταυτότητας.
  3. Σημειώστε το ακριβές μήνυμα σφάλματος που είναι ορατό στην οθόνη.
  4. Ανοίξτε ένα εισιτήριο υποστήριξης με: τον τύπο και την έκδοση IdP, το URL σφάλματος, το τμήμα αρχείου καταγραφής συμβάντων, και επιβεβαίωση ποια βήματα έχετε ήδη ολοκληρώσει.

Σχετικά άρθρα