Hallo zusammen,
ich benötige mal wieder Hilfe...
Ich habe eine SSO-Infrastruktur und zwei Server. Das eine ist ein HTTPD (mit SSO-Modul), das andere ein Tomcat (ohne SSO-Modul).
Nun sollen meine User auf eine Applikation auf dem Tomcat zugreifen, sich dabei aber per SOO authentifizieren. Nachdem das wegen dem fehlenden SSO-Modul nicht möglich ist, muss ich ein Workaround schaffen, das aber nicht unbeding sehr sicher ist. Es sollte nur nicht allzuleicht auszuhebeln sein - also basic auth würde es tun.
Die Lösung die mir vorschwebt, sieht folgendermaßen aus:
- User greift auf PHP- oder Perl (CGI)-Skript auf HTTPD zu, authentifiziert sich dabei über SSO - so wie er das normalerweise auch macht.
- Das Skript leitet den User auf die Tomcat-Webapp (welche HTTP Basic AUTH mit einem generischen user implementiert hat) und übergibt dabei base64_encoded Username & Passwort an den Basic AUTH weiter, sodass der User das Authentifizierungsfenster gar nicht mitbekommt.
Hier ist der Coding-Ansatz (in PHP), welcher aber leider nicht funktioniert:
Ich hab's auch aus Verzweiflung mit "Location" im Anschluss an den restlichen header versucht - aber ohne Erfolg - daher auskommentiert.
Wäre auch für eien Lösung in Perl dankbar, wobei es aber glaub ich eher an meiner Unkenntniss von HTTP-Headern hakt...
Wenn es was einfacheres gibt: HER DAMIT! Bin für jeden Vorschlag sehr dankbar.
ich benötige mal wieder Hilfe...
Ich habe eine SSO-Infrastruktur und zwei Server. Das eine ist ein HTTPD (mit SSO-Modul), das andere ein Tomcat (ohne SSO-Modul).
Nun sollen meine User auf eine Applikation auf dem Tomcat zugreifen, sich dabei aber per SOO authentifizieren. Nachdem das wegen dem fehlenden SSO-Modul nicht möglich ist, muss ich ein Workaround schaffen, das aber nicht unbeding sehr sicher ist. Es sollte nur nicht allzuleicht auszuhebeln sein - also basic auth würde es tun.
Die Lösung die mir vorschwebt, sieht folgendermaßen aus:
- User greift auf PHP- oder Perl (CGI)-Skript auf HTTPD zu, authentifiziert sich dabei über SSO - so wie er das normalerweise auch macht.
- Das Skript leitet den User auf die Tomcat-Webapp (welche HTTP Basic AUTH mit einem generischen user implementiert hat) und übergibt dabei base64_encoded Username & Passwort an den Basic AUTH weiter, sodass der User das Authentifizierungsfenster gar nicht mitbekommt.
Hier ist der Coding-Ansatz (in PHP), welcher aber leider nicht funktioniert:
PHP:
<?php
$user = "theuser";
$pass = "secretpassword"; $host = "lntcv1";
$path_uri = "http://tomcatappserver:8080/thewebapp";
header("POST $path_uri HTTP/1.1\r\n");
header("Authorization: Basic user-pass=".base64_encode("$user:$pass")."\r\n"); header("Host: $host\r\n");
//header("Location: $path_uri");
?>
Ich hab's auch aus Verzweiflung mit "Location" im Anschluss an den restlichen header versucht - aber ohne Erfolg - daher auskommentiert.
Wäre auch für eien Lösung in Perl dankbar, wobei es aber glaub ich eher an meiner Unkenntniss von HTTP-Headern hakt...
Wenn es was einfacheres gibt: HER DAMIT! Bin für jeden Vorschlag sehr dankbar.