Bekomme SSO einfach nicht zum laufen

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Fauk
Beiträge: 4
Registriert: 04.12.2012 13:39:59

Bekomme SSO einfach nicht zum laufen

Beitrag von Fauk » 11.03.2014 15:23:43

Hallo werte Community,

momentan mühe ich mich ungemein ab mein Intranet über Singe Sign On zum laufen zu bringen. Folgendes ist momentan im Einsatz:

Apache 2.2.22
Linux version 3.2.0-38-generic
PHP Version => 5.3.10-1ubuntu3.10

Dazu kommt das der Webserver auf dem alles läuft in einer funktionierenden Domäne ist und Zugang zum Netzwerk besitzt, ebenso also ein Domain Controller unter Windows Server 2012 R2 besteht und dem dazugehörigen DNS Serverdienst.

Ich habe mich bisher an folgender Anleitung orientiert:

[spoiler]
Single Sign-On with Apache and Active Directory on Ubuntu Linux
Single Sign-On with Apache and Active Directory on Ubuntu Linux

Hello Guys,

Simple tutorial how to setup SSO on Ubuntu with Active Directory
Tested with: Ubuntu 10.10 AD running on Server 2003 R2, users running windows 7/XP, IE7/8

1. So, first of all you must install Apache and Php.
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
sudo /etc/init.d/apache2 restart
2. Next we need to install the Apache2:AuthenNTLM module

run:
apt-get install libapache2-authenntlm-perl


3. To configure apache module, modify apache config:

Add text below to /etc/apache2/apache2.conf

<Directory "/var/www/">
PerlSetVar debug ntlmdebug
PerlAuthenHandler Apache2::AuthenNTLM
AuthType ntlm,basic
AuthName Basic
require valid-user
PerlAddVar ntdomain "YOUR.DOMAIN.FQDN DomainControllerHostname DomainControllerHostname"
# Change YOUR.DOMAIN.FQDN to the netbios name of your domain. Change DomainControllerHostname to the hostnames of the domain controllers for your domain. second DomainControllerHostname is not required if your setup does not have a second domain controller.
PerlSetVar defaultdomain YOUR.DOMAIN.FQDN
# Change YOUR.DOMAIN.FQDN to the netbios name of your domain Exmpl: test.local.com
#PerlSetVar ntlmdebug 2
PerlSetVar splitdomainprefix 1
PerlSetVar ntlmsemtimeout 2
</Directory>
4. Check /etc/apache2/apache2.conf for ‘KeepAlive Off’ and change it to ‘KeepAlive On’

5. Now we need to modify /etc/resolv.conf
vi /etc/resolv.conf
Example how it should look:
Nameserver 192.168.0.2
nameserver 192.168.0.3
domain test.local.com
search test.local.com


Where test.local.com is your Active Directory domain name and the nameservers are the name servers for your Active Directory.

Restart Apache

[/spoiler]

Wer nicht alles lesen will, es geht kurzerhand um libapache2-authenntlm-perl. Ich habe die Schritte im Tutorial befolgt, jedoch zeigt mir mein Intranet jetzt beim aufrufen nur noch den Fehler 500 an. Schaue ich in die error.log Datei des Apaches findet sich dort folgendes:

[spoiler]
[1257] AuthenNTLM: Config Domain = My-domain.com pdc = DC bdc =
[1257] AuthenNTLM: Config Default Domain = My-domain.com
[1257] AuthenNTLM: Config Fallback Domain =
[1257] AuthenNTLM: Config AuthType = ntlm,basic AuthName = Basic
[1257] AuthenNTLM: Config Auth NTLM = 1 Auth Basic = 1
[1257] AuthenNTLM: Config NTLMAuthoritative = on BasicAuthoritative = on
[1257] AuthenNTLM: Config Semaphore key = 23754 timeout = 2
[1257] AuthenNTLM: Config SplitDomainPrefix = 1
[1257] AuthenNTLM: Authorization Header <not given>
[Tue Mar 11 14:11:23 2014] [error] Bad/Missing NTLM/Basic Authorization Header for /index.php
[1257] AuthenNTLM: Start NTLM Authen handler pid = 1257, connection = 139737029100176 conn_http_hdr = keep-alive main = cuser = remote_ip = Meine Ip remote_port = 13624 remote_host = <> version = 0.02 smbhandle =
[1257] AuthenNTLM: Object exists user = \
[1257] AuthenNTLM: Authorization Header NTLM TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAGA4AlAAAADw==
[1257] AuthenNTLM: Got: 78 84 76 77 83 83 80 0 1 0 0 0 7 130 8 162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 3 128 37 0 0 0 15
[1257] AuthenNTLM: protocol=NTLMSSP, type=1, flags1=7(NEGOTIATE_UNICODE,NEGOTIATE_OEM,REQUEST_TARGET), flags2=130(NEGOTIATE_ALWAYS_SIGN,NEGOTIATE_NTLM), domain length=0, domain offset=0, host length=0, host offset=0, host=, domain=
[1257] handler type == 1
[1257] AuthenNTLM: Connect to pdc = RAM bdc = domain = mjr-pharmjet.com
[1257] AuthenNTLM: enter lock
[1257] AuthenNTLM: verify handle smbhandle == 0
[Tue Mar 11 14:11:23 2014] [error] Connect to SMB Server failed (pdc = RAM bdc = domain = mjr-pharmjet.com error = -11/0) for /index.php
[1257] AuthenNTLM: leave lock
[Tue Mar 11 14:11:23 2014] [error] Cannot get nonce

[/spoiler]

Wenn ich diese Meldung richtig deute gibt es zwei Hauptprobleme einmal: Connect to SMB Server failed und Bad/Missing NTLM/Basic Authorization Header. Allerdings komme ich mit diesen Fehlermeldungen nicht mehr wirklich weiter, da ich die dazu entsprechenden Google Seiten schon abgegrast hab und die dort vorgeschlagenen Lösungsansätze bestmöglich umgesetzt habe.

So habe ich den Domain Controller mit vollem Domain Namen angegeben und ohne.
Die hosts Datei habe ich schon nachgeschaut, genau so wie die resolv.conf.
Auch die "KeepAlive" Einstellung in Apache ist eingeschaltet.

Jetzt weiß ich mittlerweile nicht mehr weiter und wäre über jede Hilfe dankbar.

Antworten