Ρύθμιση SSO με το Okta¶
Το Okta συμμορφώνεται με OIDC, με μια ιδιαιτερότητα που συναντούν οι περισσότερες πρώτες ενσωματώσεις: ένα Okta org εκθέτει περισσότερους από έναν authorization servers, και ο καθένας έχει το δικό του discovery URL.
Αυτός ο οδηγός καλύπτει την πλευρά του Okta: τη δημιουργία της ενσωμάτωσης εφαρμογής και τη συλλογή των τιμών που χρειάζεται το digna. Η πλευρά του digna — dashboard_config.toml, δοκιμές και αντιμετώπιση προβλημάτων — είναι ίδια για κάθε πάροχο και περιγράφεται στην Επισκόπηση Single Sign-On.
Πριν Ξεκινήσετε¶
| Απαίτηση | Σημειώσεις |
|---|---|
| Okta role | Super Administrator, ή ρόλος διαχειριστή με δικαίωμα δημιουργίας ενσωματώσεων εφαρμογών |
| Okta domain | π.χ. yourcompany.okta.com, ή ένα προσαρμοσμένο domain αν έχει διαμορφωθεί |
| digna redirect URI | Το URL στο οποίο επιστρέφουν οι χρήστες μετά την είσοδο, π.χ. https://digna.yourdomain.com/oidc/callback |
Βήμα 1: Δημιουργία της Ενσωμάτωσης Εφαρμογής¶
- Συνδεθείτε στο Okta Admin Console
- Μεταβείτε σε Applications → Applications
- Κάντε κλικ στο Create App Integration
- Επιλέξτε:
- Sign-in method: OIDC - OpenID Connect
- Application type: Web Application
- Κάντε κλικ στο Next
Ο Τύπος Εφαρμογής Δεν Μπορεί Να Αλλαχθεί
Επιλογή Single-Page Application αντί για Web Application δημιουργεί έναν public client χωρίς secret, και η ανταλλαγή κώδικα στο backend του digna θα αποτύχει με invalid_client. Ο τύπος ορίζεται κατά τη δημιουργία — λάθος επιλογή σημαίνει διαγραφή της εφαρμογής και νέα δημιουργία.
Βήμα 2: Ρύθμιση της Ενσωμάτωσης¶
- App integration name:
digna - Grant type: αφήστε επιλεγμένο το Authorization Code
- Sign-in redirect URIs: εισάγετε το callback URL του digna:
- Sign-out redirect URIs: προαιρετικό
- Στην ενότητα Assignments, επιλέξτε ποιος μπορεί να χρησιμοποιήσει την ενσωμάτωση — μια συγκεκριμένη ομάδα είναι πιο ασφαλής από το Allow everyone in your organization to access
- Κάντε κλικ στο Save
Απαιτείται Εκχώρηση
Το Okta αυθεντικοποιεί τον χρήστη και μετά ελέγχει αν έχει εκχωρηθεί στην εφαρμογή. Ένας μη εκχωρημένος χρήστης φτάνει στη σελίδα εισόδου του Okta, συνδέεται επιτυχώς και απορρίπτεται κατά την ανακατεύθυνση πίσω. Αν η είσοδος δουλεύει για εσάς αλλά όχι για συναδέλφους, η εκχώρηση είναι το πρώτο που πρέπει να ελέγξετε.
Βήμα 3: Συλλογή των Διαπιστευτηρίων¶
Στην καρτέλα General της εφαρμογής, κάτω από Client Credentials:
- Client ID → γίνεται
DIGNA_OIDC_CLIENT_ID - Client secret → γίνεται
DIGNA_OIDC_CLIENT_SECRET(κάντε κλικ στο εικονίδιο του ματιού για αποκάλυψη)
Βήμα 4: Επιλογή του Authorization Server¶
Αυτό είναι το βήμα που καθορίζει το discovery URL. Μεταβείτε σε Security → API για να δείτε τους authorization servers στο org σας.
Org authorization server — εκδίδει tokens για το ίδιο το Okta org:
Custom authorization server — συμπεριλαμβανομένου αυτού που δημιουργεί το Okta με το όνομα default:
Για τον ενσωματωμένο server, το <auth_server_id> είναι κυριολεκτικά default:
Ποιο;
Χρησιμοποιήστε τον org authorization server εκτός αν ο οργανισμός σας χρησιμοποιεί ήδη έναν custom για πολιτικές πρόσβασης API. Οι λογαριασμοί Okta Developer έχουν ως προεπιλογή το default; πολλοί οργανισμοί το απενεργοποιούν. Ανοίξτε και τα δύο URLs σε έναν browser — αυτό που επιστρέφει JSON αντί για σφάλμα είναι το διαθέσιμο για εσάς.
Βήμα 5: Διαμόρφωση του digna¶
dashboard/dashboard_config.toml¶
config.toml¶
[oidc.okta]
DIGNA_OIDC_CLIENT_ID = "0oa1b2c3d4EXAMPLE5"
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://yourcompany.okta.com/oauth2/default/.well-known/openid-configuration"
Το key και στα δύο αρχεία πρέπει να ταιριάζει — okta στην προκειμένη περίπτωση.
Βήμα 6: Δοκιμή¶
Επανεκκινήστε το backend και τον web server, στη συνέχεια ανοίξτε το dashboard. Δείτε την Δοκιμή Εισόδου για την πλήρη λίστα ελέγχου.
Αντιμετώπιση Προβλημάτων με το Okta¶
Το redirect URI Δεν Είναι Καταχωρημένο¶
Το Okta εμφανίζει το προβληματικό URI στο σφάλμα. Συγκρίνετέ το με General → Sign-in redirect URIs; το Okta ταιριάζει την πλήρη συμβολοσειρά συμπεριλαμβανομένης οποιασδήποτε τελικής κάθετου (/).
Ο Χρήστης Δεν Έχει Εκχωρηθεί στην Εφαρμογή Πελάτη¶
Ο λογαριασμός δεν βρίσκεται στη λίστα εκχώρησης της εφαρμογής. Προσθέστε τον χρήστη ή την ομάδα του στην ενότητα Assignments.
400 Bad Request: Invalid Authorization Server¶
Το <auth_server_id> στο discovery URL δεν υπάρχει, συχνά γιατί το default έχει αφαιρεθεί από ένα org. Ελέγξτε Security → API για τους servers που είναι πραγματικά διαθέσιμοι.
invalid_client στο Βήμα του Token¶
Η ενσωμάτωση δημιουργήθηκε ως Single-Page Application και δεν έχει client secret. Δημιουργήστε ξανά την ενσωμάτωση ως Web Application.
Δείτε Επίσης¶
- Επισκόπηση Single Sign-On — αναφορά ρυθμίσεων, δοκιμών και γενικής αντιμετώπισης προβλημάτων
- Okta: OpenID Connect & OAuth 2.0