Γεια χαρά,
Απλά με τη σειρά μου να αναφέρω ότι η ανάλυση είναι σωστή, και ότι οι
περισσότερες βιβλιοθήκες μπορούν να λειτουργήσουν ως ενδιάμεσοι
(proxies) ως έχουν ή με ελάχιστες τροποποιήσεις. Σε ότι αφορά στο
Keycloak αυτό είναι καθαρά θέμα ρύθμισης κατά την λειτουργία αν θα
επιτρέπεται ή όχι.
To keycloak είναι ένα εξαιρετικά δημοφιλές έργο ανοιχτού λογισμικού και
χρησιμοποιείται από χιλιάδες οργανισμούς ανά τον κόσμο,
συμπεριλαμβανομένης και της Red Hat εσωτερικά σαν το βασικό μας σύστημα
SSO. Αξιολογείται, υποστηρίζεται και εξελίσσεται συνεχώς από ομάδες με
πολύ βαθιά γνώση σε θέματα ασφαλείας.
Η συγκεκριμένη υλοποίηση που προτείνεται μπορεί να ενθαρρύνει και άλλους
παραγωγούς εφαρμογών να δημιουργήσουν λύσεις που θα συμφωνούν με την
άδεια χρήσης που παρέχει η ΓΓΠΣ, επομένως θεωρώ ότι είναι προς την σωστή
κατεύθυνση.
Για οποιαδήποτε τεχνική απορία/αμφιβολία, code/configuration review,
κτλ. μπορώ να σας φέρω σε επαφή με την κεντρική ομάδα ανάπτυξης του
Keycloak.
Χαιρετώ
/Δημήτρης Ανδρεάδης
On 01/07/2021 12:46, Konstantinos Togias wrote:
Καλησπέρα,
Θα ήθελα, χάριν διευκρίνησης, να αναφέρω ότι δεν χρησιμοποιούμε το
Apache Keycloak (ίσως αναφέρεστε στο mod_auth_openidc), αλλά το Keycloak
Identity and Access Management System της RedHat.
Αναφέρετε στο email σας ότι "Το apache keycloak **δύναται** να δράσει ως
ενδιάμεσος OpenID Connect/OAuth2 proxy, ώστε τρίτες web εφαρμογές να το
χρησιμοποιούν για να εκτελούν OAuth2 protocol, Authorization Code Grant
flow, SSO sessions προς OAuth2 Identity Providers στους οποίους το
Keycloak έχει καταχωρηθεί ως OAuth2 client για συγκεκριμένη εφαρμογή SSO".
To keycloak δύναται να δράσει ως ενδιάμεσος OpenID Connect/OAuth2 proxy
σε τρίτες εφαρμογές, εφόσον όμως ρυθμιστεί γι αυτό τον σκοπό από τον
υπεύθυνο διαχειριστή του. Από την πλευρά μας δεν είναι προρυθμισμένο για
αυτή τη λειτουργία, ούτε είναι αυτός ο κύριος ή μοναδικός σκοπός χρήσης
του. Εξάλλου, ο διαχειριστής μιας εφαρμογής στην οποία έχει δοθεί
πρόσβαση στο authentication service του TAXISnet δύναται με οποιοδήποτε
άλλο εργαλείο, σύστημα, βιβλιοθήκη ή custom κώδικα να κάνει proxying σε
τρίτες εφαρμογές, παραβιάζοντας την άδεια χρήσης της ΓΓΠΣ. (π.χ.
μπορείτε να δείτε εδώ μια λίστα με OpenID Provider Libraries που μπορεί
να χρησιμοποιήσει κάποιος και που δύνανται να χρησιμοποιηθούν σε
συνδυασμό με την πρόσβαση στο TAXISnet για proxying σε τρίτες εφαρμογές:
https://openid.net/developers/certified/
<https://openid.net/developers/certified/> )
Επομένως, κάθε υλοποίηση και κάθε εφαρμογή που έχει δικαίωμα χρήσης του
authentication service του TAXISnet (ή οποιουδήποτε άλλου OAuth ή OpenID
provider - δεν πρόκειται για κάποια συγκεκριμένη αδυναμία του TAXISnet,
αλλά για τον τρόπο με τον οποίο λειτουργεί και το σκοπό για τον οποίο
σχεδιάστηκε το ΟAuth πρωτόκολλο - ) **δύναται** τεχνικά να δράσει ως
ενδιάμεσος OpenID Connect/OAuth2 proxy προς τρίτες εφαρμογές. Η
διασφάλιση του ότι κάτι τέτοιο δεν θα συμβεί είναι κατά τη γνώμη μας
θέμα νομικό και όχι τεχνικό. Καταλαβαίνουμε και συμφωνούμε πλήρως με τον
προβληματισμό και το σκεπτικό κάτω από τα οποία αναφέρεται στην άδεια
χρήσης που παρέχει η ΓΓΠΣ ότι κάτι τέτοιο αποτελεί παραβίασή της και
συνεπάγεται τη διακοπή της πρόσβασης.
Εμείς, ακολουθώντας τις διεθνείς καλές πρακτικές και έχοντας ως γνώμονα
την ασφάλεια, την απόδοση και τη λειτουργικότητα των εφαρμογών που
υλοποιούμε, χρησιμοποιούμε το keycloak, αντί για custom code,
προκειμένου να υλοποιήσουμε το user management, authentication και
authorization υποσύστημα της εφαρμογής μας, για την οποία ζητήσαμε
πρόσβαση στις υπηρεσίες της ΓΓΠΣ. Μια γενική ιδέα σχετικά με την τεχνική
μας προσέγγιση μπορείτε να πάρετε από την ακόλουθη παρουσίαση του
Sebastien Blanc της RedHat:
https://www.doag.org/formes/pubfiles/11143470/2019-NN-Sebastien_Blanc-Easily_Secure_your_Microservices_with_Keycloak-Praesentation.pdf
<https://www.doag.org/formes/pubfiles/11143470/2019-NN-Sebastien_Blanc-Easily_Secure_your_Microservices_with_Keycloak-Praesentation.pdf>
Τα πλεονεκτήματα της χρήσης μιας έτοιμης, ασφαλούς, ανοικτού κώδικα,
ενεργά υποστηριζόμενης, standards compliant και ευρείας αποδοχής λύσης
όπως το keycloak της Redhat, έναντι μιας οποιασδήποτε custom υλοποίησης
σε java ή PHP με χρήση ή μη κάποιου έτοιμου library, θεωρούμε ότι είναι
γνωστά σε όλους μας και η ανάλυσή τους είναι εκτός του πεδίου της
συζήτησης (ευχαρίστως αν ενδιαφέρεται κάποιος, να κάνουμε μια άλλη
συζήτηση πάνω σε αυτό και γενικότερα σε θέματα security και user
management/authentication/authorization σε service oriented και
microservices αρχιτεκτονικές).
Τέλος, αν και αποτελεί μάλλον πλεονασμό μια και αυτό συνεπάγεται από το
γεγονός ότι έχουμε αποδεχτεί την άδεια χρήσης των υπηρεσιών της ΓΓΠΣ
στην οποία γίνεται σχετική μνεία, δηλώνουμε ότι δεν έχουμε πρόθεση,
ούτε πρόκειται να λειτουργήσουμε ως ενδιάμεσοι για τρίτες web εφαρμογές.
Η πρόσβαση που μας παρέχετε θα χρησιμοποιηθεί αποκλειστικά για τη
σύνδεση και αναγνώριση χρηστών στην εφαρμογή του ΟΠΣ «Διαχείρισης Τάξης
Μαθητείας», μία εφαρμογή για τη διαχείριση του μεταλυκειακού έτους
μαθητείας που αναπτύσσουμε και υποστηρίζουμε για λογαριασμό του
Υπουργείου Παιδείας. Ο σκοπός χρήσης είναι λοιπόν συγκεκριμένος και
ακριβώς αυτός για τον οποίο μας έχει δοθεί από εσάς η άδεια χρήσης της
υπηρεσίας. Κάθε ενέργεια που έχουμε κάνει και ο κώδικας που έχουμε
αναπτύξει, συμπεριλαμβανομένου του plugin για το keyckloak, εξυπηρετεί
τη συγκεκριμένη εφαρμογή και το συγκεκριμένο σκοπό και λειτουργεί
σύμφωνα με τον όρο της άδειας που αναφέρετε.
Με βάση τα παραπάνω αιτούμαστε να μας δοθεί η άδεια για χρήση της
υπηρεσίας OAuth2 Authentication σε παραγωγική λειτουργία για τη
συγκεκριμένη εφαρμογή και να μην αποτελέσει το γεγονός ότι
χρησιμοποιούμε την τεχνική λύση του keycloak λόγο απόρριψης.
Περιμένω την απάντησή σας και παραμένω στη διάθεσή σας για οποιαδήποτε
πληροφορία, διευκρίνιση ή ό,τι άλλο χρειαστείτε σχετικά.
Με εκτίμηση,
//
------
Κωνσταντίνος Τόγιας
Δ/νση Πανελλήνιου Σχολικού Δικτύου & Δικτυακών Τεχνολογιών Ινστιτούτο
Τεχνολογίας Υπολογιστών & Εκδόσεων - <<Διόφαντος>>
Οδός Ν. Καζαντζάκη, Πανεπιστήμιο Πατρών, Ρίο, TK-26504
Τηλ. 2610 960 328
email: ktogias [ at ] cti [ dot ] gr <mailto:ktogias [ at ] cti [ dot ] gr>
url: http://www.cti.gr/nts/ <http://www.cti.gr/nts/>
On Thu, Jul 1, 2021 at 9:58 AM Άγγελος Καρβούνης <a [ dot ] karvounis [ at ] gsis [ dot ] gr
<mailto:a [ dot ] karvounis [ at ] gsis [ dot ] gr>> wrote:
Καλημέρα,____
__ __
σας ενημερώνω ότι η χρήση του keycloak*δεν συνάδει με την πολιτική
Ασφάλειας του Κέντρου Διαλειτουργικότητας.*____
__ __
/Συγκεκριμένα το keycloak είναι middleware λογισμικό Identity and
Access Management που υποστηρίζει identity federation
αρχιτεκτονικές. ____/
/Το apache keycloak δύναται να δράσει ως ενδιάμεσος OpenID
Connect/OAuth2 proxy, *ώστε τρίτες web εφαρμογές να το χρησιμοποιούν
για να εκτελούν OAuth2 protocol*, Authorization Code Grant flow, SSO
sessions ____/
/προς OAuth2 Identity Providers στους οποίους το Keycloak έχει
καταχωρηθεί ως OAuth2 client για συγκεκριμένη εφαρμογή SSO.____/
__ __
Από την στιγμή που ο πολίτης ενημερώνεται από τις οθόνες του
oauth2.0 και αποδέχεται ότι θα συνδεθεί σε μια συγκεκριμένη εφαρμογή
για να αποσταλούν τα στοιχεία του, απαγορεύεται να αποσταλούν τα
στοιχεία σε τρίτες εφαρμογές.____
Επιπρόσθετα στο έγγραφο για ένταξη σε παραγωγική Λειτουργία της
υπηρεσίας του oauth2.0 που στέλνει ο φορές στην ΓΓΠΣΔΔ δηλώνει ρητά
ότι :____
*“ο Φορέας δεσμεύεται ότι δεν θα προβεί σε διαμοιρασμό (proxying)
της υπηρεσίας oauth2.0 με άλλες εφαρμογές/site με διαφορετικό σκοπό
χρήσης, έστω και εάν αυτές είναι του ιδίου Φορέα”____*
__ __
Με βάση τα παραπάνω δεν θα εγκρίνονται για παραγωγική λειτουργία
αιτήματα ( με εξαίρεση ειδικές περιπτώσεις ) για χρήση της υπηρεσίας
oauth2.0 που αξιοποιούν το keycloak____
__ __
__ __
Με εκτίμηση____
__ __
__ __
__ __
GGPS_LOGO____
*Καρβούνης Άγγελος____*
Προϊστάμενος τμήματος Διαλειτουργικότητας & Ηλεκτρονικών Υπηρεσιών____
Διεύθυνση Σχεδιασμού και Ανάπτυξης Εφαρμογών ____
Γενική Γραμματεία Πληροφοριακών Συστημάτων Δημόσιας Διοίκησης ____
Υπουργείο Ψηφιακής Διακυβέρνησης ____
Τηλ : +30 210 4803288 - 3172____
e-mail: a [ dot ] karvounis [ at ] gsis [ dot ] gr <mailto:a [ dot ] karvounis [ at ] gsis [ dot ] gr>____
__ __
__ __
__ __
__ __
__ __
-----Original Message-----
From: Dimitris Andreadis
Sent: Wednesday, June 30, 2021 6:52 PM
To: Konstantinos Togias <info [ at ] ktogias [ dot ] gr <mailto:info [ at ] ktogias [ dot ] gr>>;
opensource-developers [ at ] ellak [ dot ] gr <mailto:opensource-developers [ at ] ellak [ dot ] gr>
Subject: !***SPAM***! Re: [opensource-developers] Re: GSIS OAuth2
Keycloak Identity Providers Plug-in
__ __
Ωραία δουλειά :-)____
__ __
Δηλαδή θα μπορείς να χρησιμοποιείς το SSO του TAXIXnet για να κάνεις
login σε κάποια εγκεκριμένη από την ΓΓΠΣ εφαρμογή, ναι;____
__ __
Αν χρειαστείς κάτι από την ομάδα του Keycloak πες να σας συνδέσω.____
__ __
Χαιρετώ!____
__ __
/Δημήτρης____
__ __
--____
Dimitris Andreadis____
Engineering Director____
Cloud Native Runtimes____
Quarkus Team, Red Hat____
__ __
On 30/06/2021 15:08, Konstantinos Togias wrote:____
> Επειδή δέχθηκα σχετικό τηλεφώνημα από τη ΓΓΠΣ, να διευκρινίσω ότι
όταν ____
> μιλάω για single sign-on με TAXISnet εννοώ SSO μεταξύ της
εφαρμογής ____
> για την οποία κάποιος έχει ζητήσει και λάβει άδεια χρήσης των ____
> υπηρεσιών της ΓΓΠΣ και του TAXISnet. 'Οχι την υλοποίηση πρόσβασης
____
> τρίτων εφαρμογών διαφορετικών από αυτή για την οποία έχει δοθεί η
____
> πρόσβαση από τη ΓΓΠΣ, ενέργεια η οποία απαγορεύεται από την άδεια
που ____
> δίνει η ΓΓΠΣ για τη χρήση της υπηρεσίας της και θα έχει οπως με ____
> ενημέρωσαν σαν συνέπεια την άρση της.____
> ____
> ---____
> Konstantinos Togias____
> M.Sc. in Mathematics of Computers and Decision Making Software &
Web ____
> Applications Developer____
> ____
> tel. (+30)6946977595____
> e-mail: info [ at ] ktogias [ dot ] gr <mailto:info [ at ] ktogias [ dot ] gr>
<mailto:info [ at ] ktogias [ dot ] gr <mailto:info [ at ] ktogias [ dot ] gr>>____
> www: http://ktogias.gr <http://ktogias.gr> <http://ktogias.gr
<http://ktogias.gr>>____
> ____
> ____
> On Wed, Jun 30, 2021 at 12:07 PM Konstantinos Togias
<info [ at ] ktogias [ dot ] gr <mailto:info [ at ] ktogias [ dot ] gr> ____
> <mailto:info [ at ] ktogias [ dot ] gr <mailto:info [ at ] ktogias [ dot ] gr>>> wrote:____
> ____
> Αφήνω εδώ το σύνδεσμο για ένα Keycloak extension για identity____
> brokering με τις OAuth 2 υπηρεσίες της Γ.Γ.Π.Σ.Δ.Δ. που____
> κατασκευάσαμε στο ΙΤΥΕ Διόφαντος και τη Διεύθυνση ΠΣΔ.____
> ____
> Ελπίζω να φανεί χρήσιμο σε όσους θέλουν να υλοποιήσουν single____
> sign-on με TAXISnet.____
> ____
> https://github.com/cti-nts/keycloak-gsis-providers
<https://github.com/cti-nts/keycloak-gsis-providers>____
> ____
>
<https://github.com/cti-nts/keycloak-gsis-providers?fbclid=IwAR3omGwo_
<https://github.com/cti-nts/keycloak-gsis-providers?fbclid=IwAR3omGwo_>____
> 5j168pSfX5cDkv-lKQmFQkejvlOZPuwYAMYbTWDaH4msJ82VSo>____
> ____
> ---____
> Konstantinos Togias____
> M.Sc. in Mathematics of Computers and Decision Making____
> Software & Web Applications Developer____
> ____
> tel. (+30)6946977595____
> e-mail: info [ at ] ktogias [ dot ] gr <mailto:info [ at ] ktogias [ dot ] gr>
<mailto:info [ at ] ktogias [ dot ] gr <mailto:info [ at ] ktogias [ dot ] gr>>____
> www: http://ktogias.gr <http://ktogias.gr> <http://ktogias.gr
<http://ktogias.gr>>____
> ____
> ____
> ____
> ----____
> Λαμβάνετε αυτό το μήνυμα απο την λίστα: Γενική λίστα
αλληλογραφίας που ____
> απευθύνεται σε developers/contributors έργων ανοικτού λογισμικού
- A ____
> general discussion list for developers/contributors of
open-source ____
> projects,
https://lists.ellak.gr/opensource-developers/listinfo.html
<https://lists.ellak.gr/opensource-developers/listinfo.html>____
> Μπορείτε να απεγγραφείτε από τη λίστα στέλνοντας κενό μήνυμα ηλ.
ταχυδρομείου στη διεύθυνση
<opensource-developers+unsubscribe [ at ] ellak [ dot ] gr
<mailto:opensource-developers+unsubscribe [ at ] ellak [ dot ] gr>>.____
> ____
----
Λαμβάνετε αυτό το μήνυμα απο την λίστα: Γενική λίστα αλληλογραφίας που απευθύνεται σε developers/contributors έργων ανοικτού λογισμικού - A general discussion list for developers/contributors of open-source projects,
https://lists.ellak.gr/opensource-developers/listinfo.html
Μπορείτε να απεγγραφείτε από τη λίστα στέλνοντας κενό μήνυμα ηλ. ταχυδρομείου στη διεύθυνση <opensource-developers+unsubscribe [ at ] ellak [ dot ] gr>.