WinFuture-Forum.de: Windows-username Mit Apache Auslesen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Windows-username Mit Apache Auslesen ich kriegs mit mod_auth_sspi nicht hin....


#1 Mitglied ist offline   m4rkus 

  • Gruppe: aktive Mitglieder
  • Beiträge: 316
  • Beigetreten: 28. Juni 06
  • Reputation: 0

geschrieben 05. Juli 2007 - 19:01

Hallo miteinander,

ich hab in der Arbeit ne php seite geschrieben, die als active desktop element eingesetzt werden soll.

Das Problem: Es sind mehrere User, für die natürlich alle verschiedene Inhalte angezeigt werden sollen.
Die Daten die angezeigt werden, stammen aus ner MSSQL Datenbank, und der Webserver is n Apache.

Um jetzt die Daten dynamisch anzeigen zu können, benötige ich den Windows Usernamen.

Daran scheitere ich aber.....

Ich hab schon ein Modul (mod_auth_sspi, habas als anhang hochgeladen) für den Apache gefunden, mit dem der Name dann in $_SERVER['REMOTE_USER'] geschrieben wird.
Nur leider werd ich aus den 2 Installationsanleitungen (my_cnfg.txt und INSTALL), die dabei sind nicht ganz schlau. Ehrlich gesagt weiß ich nicht was von den beiden wo in der httdp.conf hinzuschreiben hab, weil beide Konfigurationen fast gleich ausschaun.

Kann sich das bitte mal jemand anschaun der davon Ahnung hat?
Ich muss auch wissen, wo ich welche Pfade entsprechend anpassen muss. (z. b. steht bei einem doc "a protected place drin", ich weiß aber gar nicht welchen pfad ich jetztz da angeben muss.

Eins vorweg: Ich möchte das Verzeichnis in dem mein Skript liegt nicht mit einem Passwort schützen, sondern nur vom Benutzer, der das Script aufruft den Usernamen herausfinden.

Wer hat Ahnung davon?

Danke im Voraus!

Gruß,
markus

Angehängte Datei(en)


Dieser Beitrag wurde von m4rkus bearbeitet: 05. Juli 2007 - 19:02

2*3=4
0

Anzeige



#2 Mitglied ist offline   m4rkus 

  • Gruppe: aktive Mitglieder
  • Beiträge: 316
  • Beigetreten: 28. Juni 06
  • Reputation: 0

  geschrieben 09. Juli 2007 - 06:35

Könnte denn bitte jemand mal testen ob mit dem Modul wirklich die Variable $_SERVER['remote_user'] gessetzt wird?

gruß
markus
2*3=4
0

#3 Mitglied ist offline   dblay 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.246
  • Beigetreten: 18. März 07
  • Reputation: 1

geschrieben 09. Juli 2007 - 14:19

Ich glaube nicht, dass das was bringt, denn es wird wohl kaum einen Browser geben, der den Benutzernamen des aktiven Benutzer-Accounts an eine Website übermittelt!! Wo kämen wir dann da hin (respektive Datenschutz?)

Mach es lieber so, dass jeder sich einmal einloggen muss, und dann speicherst du das in einem Cookie.

Dieser Beitrag wurde von dblay bearbeitet: 09. Juli 2007 - 14:20

Zeit ist, was verhindert, dass alles gleichzeitig passiert.
0

#4 Mitglied ist offline   m4rkus 

  • Gruppe: aktive Mitglieder
  • Beiträge: 316
  • Beigetreten: 28. Juni 06
  • Reputation: 0

geschrieben 09. Juli 2007 - 16:11

Das ganze is nur fürs Intranet, und auch nur für einen sehr beschränkten Personenkreis.
Der IE übermittelt den Usernamen bei intranet webseiten. Also vom Prinzip her muss dass schon so klappen, denn der dient ja afaik als engine für den active desktop.

Kanns denn bitte jemand schnell mal bei sich aufm apache einbinden und mir sagen wo ich was zu konfigurieren habe?
Ihr würdet mir echt wahnsinnig weiterhelfen.

gruß,
markus
2*3=4
0

#5 _Fenix_

  • Gruppe: Gäste

geschrieben 09. Juli 2007 - 16:26

Du könntest probieren bei den Clients die Adresse der Active Desktop Seite wie folgt anzugeben:
http://lokalerserver...name=%USERNAME%
und dann
activedesktopseite.php:
<?
...
$username = $_GET['name'];
...
?>


Aber nicht getestet und ka ob das funktioniert.
PS.: Ich würde meinen Arbeitgeber hassen, wenn ich Active Desktop Elemente vorgesetzt bekäme...

Falls das nicht gehen sollte, könntest du es mit Ident probieren: http://identd.dyndns.org/identd.php
- dabei müsstest du allerdings mit ne Netzwerkverbindung zum Client öffnen und ne entsprechende Anfrage schicken.

Dieser Beitrag wurde von Fenix bearbeitet: 09. Juli 2007 - 17:22

0

#6 Mitglied ist offline   m4rkus 

  • Gruppe: aktive Mitglieder
  • Beiträge: 316
  • Beigetreten: 28. Juni 06
  • Reputation: 0

geschrieben 09. Juli 2007 - 21:07

Warum hassen?
Das Ding soll dann so in etwa aussehen wie son Gadget, und ich find das echt super, wenn man alle wichtigen Aufgaben und Links aufm Desktop hat.

Über GET hab ichs natürlich probiert, aber das funzt nicht, beim active desktop darf man keine GET Variablen Übergeben, weiß der Teufel warum.

Über ein simples Dropdownmenü gehts auch ned, weil ich die Seite alle 2 min neu laden lass, und dann müsste man das ja jedes mal auswählen, das wär nix.

Ich wür am liebsten das mit dem Modul hinkriegen, dass geht auch, ich hab in diversen Foren gelesen, dass es mit dem Modul funktioniert, hab aber keine ordentliche Anleitung gefuden.


Bitte installiert doch jemand das Ding mal bei sich und schaut ob $_SERVER['REMOTE_USER'] dann belegt is.
2*3=4
0

#7 Mitglied ist offline   m4rkus 

  • Gruppe: aktive Mitglieder
  • Beiträge: 316
  • Beigetreten: 28. Juni 06
  • Reputation: 0

geschrieben 11. Juli 2007 - 06:44

puuuuhuuuush

is echt wichtig für mich......
2*3=4
0

#8 Mitglied ist offline   K050V4 

  • Gruppe: aktive Mitglieder
  • Beiträge: 788
  • Beigetreten: 13. August 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart
  • Interessen:(X)HTML<br />CSS2+<br />PHP 4/5<br />MySQL 5<br />Symfony 1.2+<br />JavaScript / AJAX<br />jQuery<br />C++<br />C#<br />Java<br />...

geschrieben 12. Juli 2007 - 11:12

also ic würde ein kleines programm in c++ oder delphi schreiben was den usernamen aus der registry uaslist und eine html seite generiert ...

fals GET-methode nicht geht versuchst du es mit POST-methode...

so könnte die html-seite dann aussehen:

<html>
<head>
<title>Active Desktop</title>
</head>
<body>
<form method="post" action="http://www.weissichnicht.de/">
<input type="hidden" name="user" value="USERNAME">
<input type="submit" value="hier einmal klicken ....">
</form>
</body>
</html>


du könntest da noch javascript mit ins spiel bringen: das formular automatisch absenden :blush:

Zitat

"In der Welt des Erkennbaren ist die Idee des Guten die höchste." - Platon

Spritify! Easy CSS-Sprite-Generator | Albanisch Deutsch Wörterbuch
0

#9 Mitglied ist offline   m4rkus 

  • Gruppe: aktive Mitglieder
  • Beiträge: 316
  • Beigetreten: 28. Juni 06
  • Reputation: 0

geschrieben 12. Juli 2007 - 20:57

Post kommt schon gar nicht in Frage, weil wie schon gesagt die siete regelmäßig neu lädt, dabei gehen aber die post daten verloren. darum würde jedesmal wieder das formular angezeigt werden.

wie solln das eigentlich gehen mit einem verstecketen eingabefeld? wenns verstecktg is wie soll man dann des usernamen eintragen?

dieses modul ist wirklich die einzige vernünftige löusng. ich hab da schon überlegt.


nur bin ich beim apache eben nich so fit, darum brauch ich jemanden, der das bei sich kurz einbindet, testet und dann hier seine httpd.conf postet.
(jemand der sich auskennt wird warscheinlich lachen, weil da sogar ne kleine anleitung zum einbinden dabei ist, die bin ich aber durchgegangen, und es hat nicht funktioneirt)

bitte nimmt sich doch jemand mal 10 min zeit und testet das dingens...#


gruß,
m4rkus

Dieser Beitrag wurde von m4rkus bearbeitet: 12. Juli 2007 - 20:59

2*3=4
0

#10 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 12. Juli 2007 - 23:20

Hi,

also so gesehen ist alles ganz leicht. Zu Beginn wählst du erstmal das richtige Paket von http://sourceforge.n...group_id=162518
mod_auth_sspi-1.0.4-2.0.58.zip - für Apache 2.0.*
mod_auth_sspi-1.0.4-2.2.2.zip - für Apache 2.2.*

Nun kopierst du die mod_auth_sspi.so und die sspipkgs.exe in dein Apache Modul Verzeichnis (modules, erkennst du daran, dass die ganzen .so Dateien darin sind).

Danach fügst du in deiner httpd.conf folgendes ein:

Hinter, unter oder vor den ganzen LoadModules
LoadModule sspi_auth_module modules/mod_auth_sspi.so


Falls du keine vhosts eingerichtet hast, von dem ich jetzt mal ausgehe, gehst du dann zu der Directory-Direktive von deinem DocumentRoot und fügst folgendes darin ein:
	AuthName "My Intranet"
	AuthType SSPI
	SSPIAuth On
	SSPIAuthoritative On

	require valid-user


Danach speicherst du und lädst den Apache neu. Und schon läuft es. Jetzt dürfte der Username auch in PHP in $_SERVER['REMOTE_USER'] vorkommen.

Im Anhang meine httpd.conf, damit du dir das ansehen kannst, was ich meine.

Falls das nicht hinhauen sollte, dann könntest du es doch mit jeweils persönlichen GET Variablen probieren. Dafür einfach eine URL wie http://server/skriptpfad/max (bzw. sepp, usw.) per Apache mod_rewrite in eine "normale" GET Variable umschreiben (http://server/skript...kt.php?user=max).

Gruß,
Stefan

Angehängte Datei(en)


0

#11 Mitglied ist offline   m4rkus 

  • Gruppe: aktive Mitglieder
  • Beiträge: 316
  • Beigetreten: 28. Juni 06
  • Reputation: 0

geschrieben 13. Juli 2007 - 08:20

Bei mir gibts mehere <directory> tags.
Was sind vhosts?

#

##ALSO VON HIER#######################
DocumentRoot "C:/Programme/Apache Group/Apache2/htdocs"



<Directory />
	Options FollowSymLinks
	AllowOverride None
</Directory>




<Directory "C:/Programme/Apache Group/Apache2/htdocs">


	Options Indexes FollowSymLinks

	AllowOverride None

	Order allow,deny
	Allow from all

</Directory>
#####BIS HIER#########################
UserDir "My Documents/My Website"

#
#<Directory "C:/Documents and Settings/*/My Documents/My Website">
#	AllowOverride FileInfo AuthConfig Limit
#	Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#	<Limit GET POST OPTIONS PROPFIND>
#		Order allow,deny
#		Allow from all
#	</Limit>
#	<LimitExcept GET POST OPTIONS PROPFIND>
#		Order deny,allow
#		Deny from all
#	</LimitExcept>
#</Directory>


DirectoryIndex index.html index.html.var


AccessFileName .htaccess


<FilesMatch "^\.ht">
	Order allow,deny
	Deny from all
</FilesMatch>


TypesConfig conf/mime.types


DefaultType text/plain


<IfModule mod_mime_magic.c>
	MIMEMagicFile conf/magic
</IfModule>


HostnameLookups Off

#EnableMMAP off

#EnableSendfile off

ErrorLog logs/error.log

LogLevel warn

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

# You need to enable mod_logio.c to use %I and %O
#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

#

CustomLog logs/access.log common


#CustomLog logs/referer.log referer
#CustomLog logs/agent.log agent


#CustomLog logs/access.log combined


ServerTokens Full

ServerSignature On


Alias /icons/ "C:/Programme/Apache Group/Apache2/icons/"

<Directory "C:/Programme/Apache Group/Apache2/icons">
	Options Indexes MultiViews
	AllowOverride None
	Order allow,deny
	Allow from all
</Directory>

AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|ru))?(/.*)?$ "C:/Programme/Apache Group/Apache2/manual$1"

<Directory "C:/Programme/Apache Group/Apache2/manual">
	Options Indexes
	AllowOverride None
	Order allow,deny
	Allow from all

	<Files *.html>
		SetHandler type-map
	</Files>

	SetEnvIf Request_URI ^/manual/(de|en|es|fr|ja|ko|ru)/ prefer-language=$1
	RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|ru)){2,}(/.*)?$ /manual/$1$2
</Directory>


#
ScriptAlias /cgi-bin/ "C:/Programme/Apache Group/Apache2/cgi-bin/"


<Directory "C:/Programme/Apache Group/Apache2/cgi-bin">
	AllowOverride None
	Options None
	Order allow,deny
	Allow from all
</Directory>

#


das ist der auszug aus meiner cofing. das was ich markiert habe ist dann der document root tag oder? da muss ich dann das einfügen, dass ich dann den tag hier hab:

DocumentRoot "C:/Programme/Apache Group/Apache2/htdocs"



<Directory />
	Options FollowSymLinks
	AllowOverride None
</Directory>

<Directory "C:/Programme/Apache Group/Apache2/htdocs">


	Options Indexes FollowSymLinks

	AllowOverride None

	Order allow,deny
	Allow from all

	# Hier SSPIAuth Optionen setzen
	AuthName "My Intranet"
	AuthType SSPI
	SSPIAuth On
	SSPIAuthoritative On

	require valid-user


</Directory>


das muss so passen oder? is es egal ob bei "AllowOverride None" jetzt all oder none steht?
was hätte das denn für auswirkungen, denn die beiden werte sind bei deriner und bei meiner config unterschiedliche.

Danke schon mal du hast mir seeeeeehr viel weiter geholfen!!

gruß,
markus

Dieser Beitrag wurde von m4rkus bearbeitet: 13. Juli 2007 - 08:22

2*3=4
0

#12 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 13. Juli 2007 - 09:15

Hi,

ja die Config sieht gut aus, dürfte normalerweise alles passen und es ist die richitge Directory-Direktive.

AllowOverride ist egal. Wenn es auf All steht kann man halt in .htaccess Dateien in den jeweiligen Verzeichnissen alle Einstellungen anpassen wie man will. Aber das wirst du in deinem Fall normalerweise nicht brauchen, also kann es getrost auf None stehen.

Und wie siehts aus? Läuft es jetzt eigentlich? Falls nicht, schreibt der Apache Fehler in die error.log?

Gruß,
Stefan

Dieser Beitrag wurde von Diewie bearbeitet: 13. Juli 2007 - 09:17

0

#13 Mitglied ist offline   m4rkus 

  • Gruppe: aktive Mitglieder
  • Beiträge: 316
  • Beigetreten: 28. Juni 06
  • Reputation: 0

geschrieben 13. Juli 2007 - 10:01

LoadModule access_module modules/mod_access.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_module modules/mod_auth.so
#LoadModule auth_anon_module modules/mod_auth_anon.so
#LoadModule auth_dbm_module modules/mod_auth_dbm.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule headers_module modules/mod_headers.so
LoadModule imap_module modules/mod_imap.so
LoadModule include_module modules/mod_include.so
#LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule status_module modules/mod_status.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so

LoadModule sspi_auth_module modules/mod_auth_sspi.so

.
.
.
.


DocumentRoot "C:/Programme/Apache Group/Apache2/htdocs"


<Directory />
	Options FollowSymLinks
	AllowOverride None
</Directory>



<Directory "C:/Programme/Apache Group/Apache2/htdocs">


	Options Indexes FollowSymLinks


	AllowOverride None

	Order allow,deny
	Allow from all

# Hier SSPIAuth Optionen setzen
	AuthName "My Intranet"
	AuthType SSPI
	SSPIAuth On
	SSPIAuthoritative On

  #  require valid-user 


</Directory>

#


das ist jetzt meine komplette konfig.

require valid-user hab ich auskommentiert, weil ich den zugang nichgt beschränken will.

ich kann zwar jetzt auf die seiete zugreifen, ohne dass ich gleich ein "forbidden" "authorisation dingsbums" fehler bekomme, aber die Variable bleibt nach wie for leer.

"Notice: Undefined index: REMOTE_USER in C:\Programme\Apache Group\Apache2\htdocs\i.php on line 3"

echt seltsam....

auch das whoami.php script das dabei war funzt nich.

im error.log steht keine fehler drin.

<_<

wird denn bei dir die Variable belegt? funktioniert whoami.php?

ideen?

gruß,
markus

Dieser Beitrag wurde von m4rkus bearbeitet: 13. Juli 2007 - 10:27

2*3=4
0

#14 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 13. Juli 2007 - 11:01

Hi,

also bei mir gehts alles ohne Probleme, auch die whoami.php läuft.
Gehts bei dir wenn du require valid-user drin lässt und dich mit deinem Domäne/Benutzer/Passwort anmeldest (also bei dem Anmelde Dialog der erscheinen sollte)? Wenn nein, dann ist wahrscheinlich die Einstellung im IE nicht richtig gesetzt, so das nicht angemeldet wird bzw. man sich nicht manuell anmelden kann.

Dazu musst du im IE unter:
  • auf Extras -> Internetoptionen
  • Sicherheit -> Lokales Intranet -> Sites -> Erweitert und dort deinen Servername bzw. Adresse vom Server hinzufügen
  • dann noch bei Lokales Intranet -> Stufe anpassen und dort Automatisches Anmelden nur in der Intranetzone auswählen

Gruß,
Stefan
0

#15 Mitglied ist offline   m4rkus 

  • Gruppe: aktive Mitglieder
  • Beiträge: 316
  • Beigetreten: 28. Juni 06
  • Reputation: 0

geschrieben 13. Juli 2007 - 11:35

Ok, das werd ich versuchen. :blink:

geht z. Zt. leider nicht. der Server kann grad nich mehr gebootet werdenl.... vermutl bis nächste woche.
vllt probier ichs aber daheim mal.

Danke nochmal!!
2*3=4
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0