Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
de:shibidp:config-advanced:config-azure [2024/03/14 14:09] – czerner@leuphana.de | de:shibidp:config-advanced:config-azure [2024/12/10 12:32] (aktuell) – czerner@leuphana.de | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== IDP als Saml-Proxy zum Entra-ID ====== | ====== IDP als Saml-Proxy zum Entra-ID ====== | ||
- | + | {{ :de: | |
- | * Status: Entwurf | + | |
====== Vorwort ====== | ====== Vorwort ====== | ||
Zeile 9: | Zeile 8: | ||
- Nach dem Authentifizierungsprozess hat der Benutzer eine gültige Shibboleth-Session gegen den IDP und eine gültige OAuth2-Session gegen das Entra-ID. | - Nach dem Authentifizierungsprozess hat der Benutzer eine gültige Shibboleth-Session gegen den IDP und eine gültige OAuth2-Session gegen das Entra-ID. | ||
- Man benötigt zur Implementierung einer MFA-Umgebung jetzt nur noch die Token-Konfiguration im Azure. Man spart sich also den PrivacyIdea-Server plus eine zweimalige Einrichtung der Token. | - Man benötigt zur Implementierung einer MFA-Umgebung jetzt nur noch die Token-Konfiguration im Azure. Man spart sich also den PrivacyIdea-Server plus eine zweimalige Einrichtung der Token. | ||
- | - Die Attribute die dem SP übergeben werden, können sowohl aus der lokaeln | + | - Die Attribute die dem SP übergeben werden, können sowohl aus der lokalen |
===== Wie muss ich mir das vorstellen? | ===== Wie muss ich mir das vorstellen? | ||
Zeile 25: | Zeile 24: | ||
getestet. | getestet. | ||
- | Weiter bildet die Basis zur Umkonfiguration | + | Weiter bildet die Basis zur Umkonfiguration |
===== Konfiguration ===== | ===== Konfiguration ===== | ||
Zeile 51: | Zeile 50: | ||
idp.persistentId.sourceAttribute = uid | idp.persistentId.sourceAttribute = uid | ||
</ | </ | ||
- | Jetzt Tomcat neustarten und Anmeldung probieren, im zweitenschritt | + | Jetzt den Tomcat neustarten und Anmeldung probieren, im zweiten Schritt |
+ | ==== Konfiguration Azure ==== | ||
+ | |||
+ | |||
+ | === Eine Enterprise-Applikation erstellen === | ||
+ | |||
+ | |||
+ | Enterpriese applications | All Applications -> New Application -> Create your own application -> Namen eingeben und den Punkt " | ||
+ | |||
+ | === SAML konfigurieren: | ||
+ | |||
+ | In der Konfiguration der neuen Applikation auf Overview -> “2. Setup Single sign on” -> SAML | ||
+ | |||
+ | * Dann unter Entity-ID: https:// | ||
+ | * und unter Reply-Url: https:// | ||
+ | |||
+ | eintragen: | ||
+ | |||
+ | === Benutzer konfigurieren: | ||
+ | |||
+ | Unter “Users and Groups” einen ersten Benutzer hinzufügen. | ||
+ | |||
+ | === Zertifikat und Tenant-ID === | ||
+ | |||
+ | Unter Single-Sign-On -> mittig bei “SAML Certificates” die “Federation Metadata XML” herunterladen. Die Konfiguration auf dem Azure ist damit abgeschlossen. | ||
+ | ==== IDP ==== | ||
+ | === Metadaten === | ||
+ | Aus dem Zertifikat und der Tenant-ID und der {{ : | ||
+ | |||
+ | Die Metadaten aus dem Azure habe ich nicht ans Laufen bekommen. Aus diesem Grunde muss manuell eine Metadatei erstellt werden. | ||
+ | |||
+ | Hierzu steht ein {{ : | ||
+ | |||
+ | Die Metadaten aus dem Azure erst mal formatieren, | ||
+ | < | ||
+ | xmllint idp01-test.xml --format > idp01-test-format.xml | ||
+ | </ | ||
+ | Nun das Template öffnen und dort die Tenant-ID und das Zertifikat mit dem Daten aus der gerade formatierten Datei ersetzen. | ||
+ | |||
+ | Das Zertifikat muss zwischen die “< | ||
+ | |||
+ | Die Metadaten-Datein dann unter metadata/ | ||
+ | < | ||
+ | < | ||
+ | xsi: | ||
+ | metadataFile=" | ||
+ | </ | ||
+ | |||
+ | |||
+ | Nun sollte der IDP neugestartet werden, zeigt das Log keine Fehler, so war dies vermutlich erfolgreich. Ggf. das Log unter conf/ | ||
+ | === SAML-Auth konfigurieren === | ||
+ | Die Konfiguration einiger Attribute ist aus der Datei “conf/ | ||
+ | |||
+ | Wir edititieren die Datei “conf/ | ||
+ | < | ||
+ | Den Wert im Attribut von: idp.authn.flows = Password | ||
+ | |||
+ | In: idp.authn.flows = SAML | ||
+ | </ | ||
+ | ändern. Dann weiter unten in der Kategorie SAML: (TENANT-ID nicht vergessen zu ändern) | ||
+ | < | ||
+ | idp.authn.SAML.nonBrowserSupported = false | ||
+ | idp.authn.SAML.proxyEntityID = https:// | ||
+ | idp.authn.SAML.supportedPrincipals = \ | ||
+ | saml2/ | ||
+ | saml2/ | ||
+ | saml1/ | ||
+ | </ | ||
+ | |||
+ | Nun einmal den Tomcat neustarten und es sollte der Azure-Anmeldedialog kommen. | ||
+ | |||
+ | === c14n Flow === | ||
+ | Wir editieren die Datei conf/ | ||
+ | < | ||
+ | idp.c14n.attribute.attributeSourceIds = azureName | ||
+ | # Allows direct use of attributes via SAML proxy authn, bypasses resolver | ||
+ | idp.c14n.attribute.resolveFromSubject = true | ||
+ | idp.c14n.attribute.resolutionCondition = shibboleth.Conditions.FALSE | ||
+ | </ | ||
+ | |||
+ | |||
+ | Conf/ | ||
+ | |||
+ | Folgende Zeile einkommentieren: | ||
+ | < | ||
+ | <bean id=" | ||
+ | </ | ||
+ | |||
+ | In der v5 scheint das Subject zur ID Bestimmung anders zu funktionieren. | ||
+ | |||
+ | **Nur für v4.1.x und früher, v5 braucht diese Einstellungen NICHT** | ||
+ | |||
+ | |||
+ | |||
+ | nano conf/ | ||
+ | < | ||
+ | < | ||
+ | forCanonicalization=" | ||
+ | id=" | ||
+ | principalAttributeName=" | ||
+ | </ | ||
+ | nano conf/ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | <!-- | ||
+ | A list of attributes to search for a value to produce as the normalized subject name. | ||
+ | This will normally be something you resolve above. | ||
+ | --> | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | **ENDE Konfig v4.x -->** | ||
+ | === Daten === | ||
+ | Im ersten Schritt die Attribute des Azure definieren, dazu wird unter conf/ | ||
+ | |||
+ | Dann müssen die Werte geladen werden, dazu einen neuen < | ||
+ | |||
+ | Conf/ | ||
+ | < | ||
+ | <import resource=" | ||
+ | </ | ||
+ | Einen neuen Connector im attribute-resolver.xml definieren. | ||
+ | < | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | Dann im attribute-filter.xml die Werte für die interne Verarbeitung freigeben. ACHTUNG, die TENANT-ID wieder ersetzen! | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | **Achtung V4.1.x und früher** | ||
+ | |||
+ | Die “Conf/ | ||
+ | |||
+ | **Es wird nur der AzureClaims.xml geladen damit, sollten die Attribute noch im Resolver definiert sein, nichts kaputt geht.** | ||
+ | |||
+ | Nano “conf/ | ||
+ | < | ||
+ | <!-- | ||
+ | This is suitable for new installs but will usually produce duplicate Attribute | ||
+ | output if a legacy resolver file is used that contains AttributeEncoders. | ||
+ | --> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | **ENDE Konfig v4.x --->** | ||
+ | |||
+ | Nun noch die Attribute zum SP freigeben, Beispiel: | ||
+ | |||
+ | nano conf/ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <Rule xsi: | ||
+ | <Rule xsi: | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Nun den Tomcat neustarten und es sollte die Anmeldung gelingen und die Daten an den SP übergeben werden. ENDE :) |