-[Εγκατάσταση Shibboleth Identity Provider - Δημιουργία του Shibboleth idp.war]()
-[Metadata providers]()
-[Παραμετροποίηση αρχείων καταγραφής (Logging)]()
-[Εγκατάσταση Shibboleth Identity Provider - Δημιουργία του Shibboleth idp.war](#εγκατάσταση-shibboleth-identity-provider---δημιουργία-του-shibboleth-idpwar)
Θα χρειαστεί να ρυθμίσετε τον openLDAP server σας ώστε να γνωρίζει τα 2
Σε αυτό το κομμάτι περιγράφεται η ρύθμιση του openLDAP server σας ώστε να γνωρίζει τα 2
schemas που χρησιμοποιούνται στην Ομοσπονδία ΔΗΛΟΣ του ΕΔYTE και στο
eduGAIN, το eduPerson και το schac.
Σε περίπτωση που δεν έχει προηγηθεί αυτή η ενέργεια στο παρελθόν πατήστε
<details>
<summary>εδώ</summary>
Κατεβάστε το schac schema από [εδώ](https://wiki.refeds.org/download/attachments/44957731/schac-20150413-1.5.0.schema.txt?version=1&modificationDate=1429052013839&api=v2)
και το eduPerson αντίστοιχα από [εδώ](https://spaces.internet2.edu/download/attachments/2309/2xOpenLdapEduPerson-201602.zip?version=1&modificationDate=1469471690870&api=v2)
<!-- Αναζητήστε το connector για την πόρτα 8009 και επεξεργαστείτε το -->
<Servicename="Catalina">
<!-- ... -->
<!-- non-SSL/TLS HTTP/1.1 Connector on port 8080 abschalten -->
<!-- Απενεργοποίηση του 8080 -->
<!-- non-SSL/TLS HTTP/1.1 Connector on port 8080 -->
<!-- <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" /> -->
...
...
@@ -360,7 +363,7 @@ date -R
```
dpkg-reconfigure tzdata
```
**Εγκατάσταση Shibboleth Identity Provider - Δημιουργία του Shibboleth idp.war**
## Εγκατάσταση Shibboleth Identity Provider - Δημιουργία του Shibboleth idp.war
Κατεβάστε το αρχείο εγκατάστασης καθώς και το αρχείο με το sha256 hash του αρχείου εγκατάστασης από το https://shibboleth.net/downloads/identity-provider/latest/
Προτείνεται μαζί με την επανεκκίνηση να παρακολουθήσετε και τα σχετικά logs.
```
service tomcat9 restart | tail -f logs/idp-process.log
και στην συνέχεια Εκτελέστε ώστε να δείτε την κατάσταση του Identity Provider
```
και στην συνέχεια Εκτελέστε το παρακάτω ώστε να δείτε την κατάσταση του Identity Provider
```
curl https://hostname/idp/status
```
**Προετοιμασία IdP Metadata**
Μπορείτε να επεξεργαστείτε το αρχείο /opt/shibboleth-idp/idp-metadata.xml ώστε να συμφωνεί με τις απαιτήσεις τις ομοσπονδίας και της συνομοσπονδίας eduGAIN.
Παραθέτουμε ελάχιστο παράδειγμα που προσφέρει την αναγκαία λειτουργικότητα.
```xml
<!-- Το παρακάτω xml είναι παράδειγμα οι δικές σας τιμές θα διαφέρουν από αυτές-->
Στο αρχείο metadata-providers.xml, ορίζονται οι πηγές από τις οποίες θα διαβάζει και θα εμπιστεύεται metadata ο ΙdP. Η Ομοσπονδία ΔΗΛΟΣ του ΕΔΕΤ παρέχει metadata aggregates για τα Entities της Ομοσπονδίας και για τους SP που δημοσιεύονται στο eduGAIN, αν ο Identity Provider σας συμμετέχει στο eduGAIN.
Στο αρχείο metadata-providers.xml θα πρέπει να ορίσετε τα απαραίτητα <MetadataProvider/> elements έτσι ώστε:
...
...
@@ -632,24 +638,28 @@ metadata-providers.xml
</MetadataProvider>
```
**Παραμετροποίηση αρχείων καταγραφής (Logging)**
## Παραμετροποίηση αρχείων καταγραφής
Στο αρχείο /opt/shibboleth-idp/conf/logback.xml παραμετροποιούνται τα επίπεδα των Loggers που χρησιμοποιεί ο Identity Provider. Επιγραμματικά, τα σημαντικότερα από αυτά και οι τιμές που προτείνονται:
```xml
<variablename="idp.loglevel.idp"value="INFO"/>` : Μηνύματα σχετικά με τον IdP. Χρησιμο να γίνει DEBUG για οποιαδήποτε προσπάθεια troubleshooting.
xml:`<variablename="idp.loglevel.ldap"value="WARN"/>` : Mηνύματα σχετικα με την επικοινωνία με τον LDAP server. Χρήσιμο να γίνει DEBUG σε περιπτώσεις προβλημάτων αυθεντικοποίησης.
xml:`<variablename="idp.loglevel.messages"value="INFO"/>` : SAML μηνύματα που λαμβάνει και στέλνει ο IdP.
xml:`<variablename="idp.loglevel.encryption"value="INFO"/>` : Στο DEBUG level εμφανίζει στο idp-process.log τα SAML Assertions unencrypted. Πολύ χρήσιμο για debugging οποιουδήποτε προβλήματος καθώς μπορείτε να δείτε ακριβως το Assertion που στεέλνεται σε κάθε IdP.
xml:`<variablename="idp.loglevel.opensaml"value="INFO"/>` : Μηνύματα από την βιβλιοθήκη OpenSAML.
<variablename="idp.loglevel.ldap"value="WARN"/>` : Mηνύματα σχετικα με την επικοινωνία με τον LDAP server. Χρήσιμο να γίνει DEBUG σε περιπτώσεις προβλημάτων αυθεντικοποίησης.
<variablename="idp.loglevel.messages"value="INFO"/>` : SAML μηνύματα που λαμβάνει και στέλνει ο IdP.
<variablename="idp.loglevel.encryption"value="INFO"/>` : Στο DEBUG level εμφανίζει στο idp-process.log τα SAML Assertions unencrypted. Πολύ χρήσιμο για debugging οποιουδήποτε προβλήματος καθώς μπορείτε να δείτε ακριβως το Assertion που στεέλνεται σε κάθε IdP.
<variablename="idp.loglevel.opensaml"value="INFO"/>` : Μηνύματα από την βιβλιοθήκη OpenSAML.
```
Προτείνεται η παραμετροποίηση των παρακάτω τιμών:
Για λόγους προστασίας των προσωπικών δεδομένων των χρηστών σας, προτείνεται να διατηρούνται logs για 7 μέρες.
```
```xml
<variablename ="idp.loghistory"value="7"/>
```
Καταγραφή Client IP address για την αντιμετώπιση επιθέσεων τύπου brute force
Στο αρχείο ldap.properties θα πραγματοποιήσετε την απαιτούμενη παραμετροποίηση για να μπορέσει να
χρησιμοποιήσει τον LDAP server σας ο Identity Provider για την αυθεντικοποίηση των χρηστών και την ανάκτηση των στοιχείων τους (attributes)
/opt/shibboleth-idp/conf/ldap.properties
```
- idp.authn.LDAP.authenticator: Επιλέξτε ποιον τύπο Authenticator θα χρησιμοποιήσει Identity Provider. Οι επιλογές που έχετε για το πως θα γίνει η αυθεντικοποίηση είναι οι ακόλουθες:
-*anonSearchAuthenticator*: Ο Identity Provider Θα επιχειρήσει να κάνει anonymous search για το userDN και στη συνέχεια θα κάνει απόπειρα bind εκ μέρους του χρήστη με DN, password
-*directAuthenticator*: Σε περιπτώσεις όπου το DN των χρήστων έχει γνωστο format πχ CN=user_name,ou=accounts,dc=domain,dc=edu, δηλαδή οι χρήστες είναι όλοι κάτω από το ίδιο OU, δεν γίνεται search αλλά απευθέιας bind
-*adAuthenticator* : Παραμετροποίηση που αφορά τη χρήση Active Directory.
Οι ακόλουθες τιμές παραμετροποίησης αφορούν πρόταση της Δ.Ο. της Ομοσπονδίας ΔΗΛΟΣ του ΕΔΕΤ για την χρήση anonymous search σε OpenLDAP server που υποστηρίζει STARTTLS.
Οι ακόλουθες τιμές παραμετροποίησης αφορούν πρόταση της Δ.Ο. της Ομοσπονδίας ΔΗΛΟΣ του ΕΔΕΤ για την χρήση bind search σε OpenLDAP server που υποστηρίζει STARTTLS.
- idp.authn.LDAP.authenticator : Ορίστε την τιμή *bindSearchAuthenticator*
- idp.authn.LDAP.ldapURL : Ορίστε την τιμή ως το ldap URL που αντιστοιχει στον host και τo port στο οποίο ακούει για συνδέσεις ο LDAP Server σας. (π.χ. ldap://ldap.grnet.gr:389)
- idp.authn.LDAP.useStartTLS : Ορίστε την τιμή σε *true*
- idp.authn.LDAP.useSSL : Ορίστε την τιμή σε *false*
- idp.authn.LDAP.connectTimeout : Ορίστε την τιμή σε *3000*