Herausforderung
Single Sign-On an einem durch Basic Authentication geschützten Apache Tomcat / JBoss AS mithilfe einer Identity Injection Policy schlägt fehl, wenn Sonderzeichen im Benutzernamen oder Passwort vorkommen. Die Ursache für dieses Problem liegt in einem unterschiedlichen Character Encoding. Während Tomcat gemäß der Servlet-Spezifikation standardmäßig ISO-8859-1 erwartet, verwendet der NetIQ Access Manager (NAM) UTF-8. Ein anderes Encoding ist auf NAM-Seite nicht konfigurierbar.
An einem beispielhaften Ablauf erläutert bedeutet dies:
- Der Benutzer „testuser“ mit dem Passwort „passwörd“ meldet sich am NAM an, um auf eine dahinter liegende durch Basic Authentication geschützte Seite zuzugreifen
- Gemäß der definierten Richtlinie „Inject into Authentication Header“ bereitet der NAM das Single Sign-On vor. Er …
- erstellt eine UTF-8-Zeichenkette mit den Anmeldeinformationen nach dem Schema Benutzername:Passwort. Ergebnis: testuser:passwörd
- kodiert die Zeichenkette in Base64. Ergebnis: dGVzdHVzZXI6cGFzc3fDtnJk
- Erstellt den Authentication Header: Ergebnis: Authentication: Basic dGVzdHVzZXI6cGFzc3fDtnJk
- Der Header wird an Tomcat gesendet. Dieser beginnt mit der Auswertung. Er …
- erkennt den Authentication Header von Typ Basic. Ergebnis Authentication: Basic dGVzdHVzZXI6cGFzc3fDtnJk
- dekodiert die Base64-kodierte Zeichenkette in Erwartung von Benutzername und Passwort, durch einen Doppelpunkt getrennt und ISO-8859-1 kodiert. Ergebnis: testuser:passwörd
- Aufgrund des falsch kodierten Sonderzeichens schlägt die Anmeldung fehl.
Die Kenoxa-Lösung
Das Problem wurde durch eine eigen entwickelte NAM-Extension gelöst. Diese bereitet die Zeichenkette zur Authentifizierung auf und ermöglicht das Single Sign-On in Verbindung mit der Richtlinie: „Inject Into Custom Header“. Ein Target Encoding kann dabei durch den iManager konfiguriert werden, was die Erweiterung universeller einsetzbar macht.
Ergebnisse
Mithilfe der Kenoxa Lösung können Sie Basic Authentication an jeden beliebigen Backend-Server weiterreichen, unabhängig von Typ und geforderter Zeichenkodierung. Wenn Sie mehr zu diesem Problem oder den außerordentlich flexiblen Erweiterungsmöglichkeiten des NAM erfahren möchten, nehmen Sie Kontakt mit uns auf. Wir beraten Sie gerne.
Technologien
NetIQ Access Manager, Java, Tomcat, JBoss AS