Jump to content
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Recommended Posts

  • 1 month later...

Das kommt darauf an, wie Du das machen willst.

 

Ich kann in dem Punkt nur auf ein Projekt verweisen, bei dem wir die Benutzerauthentifizierung für

eine Webapplikation in ASP (GetLogonUser) und JSP (getRemoteUser) gelöst haben.

 

Der in Windows eingeloggte User wurde abgefragt (Authentifizierung) und die dazu passenden Infos

per LDAP aus dem DC geladen.

 

Hier ein Beispiel in ASP mit den nötigsten Grundfunktionen (ADSI):

 

<%     
   Response.Buffer = true 
   Response.AddHeader "Pragma", "No-Cache" 

' Windows Anmeldung abfragen
 Sub GetLogonUser()

   If Session("LOGON_USER") = "" Then
     If Request.ServerVariables("LOGON_USER") = "" Then
       Response.Status = "401 Access Denied"
       Response.End 
     Else
       Session("LOGON_USER_LONG") = Request.ServerVariables("LOGON_USER")
       Session("LOGON_USER") = Request.ServerVariables("LOGON_USER")
       ' the following lines strip out an NT domain from the user name
       If InStr(Session("LOGON_USER"),"\") then
         Session("LOGON_USER") = _
           Right(Session("LOGON_USER"), _
           Len(Session("LOGON_USER")) - _
           InStr(Session("LOGON_USER"),""))
       End If
     End If
   End If

   session("LOGON_USER")=ucase(session("LOGON_USER"))
   session("LOGON_USER_LONG")=ucase(session("LOGON_USER_LONG"))
  end sub

   GetLogonUser
   if len(session("LOGON_USER"))=0 then
       Response.Redirect "err001.htm"
       session.Abandon 

       Response.End 
   end if
%>
<html>

<head>


<TITLE>LDAP Anfragen via ASP Methoden auf den ADS-DC</TITLE>

<style>
body {font-family:Tahoma;font-size:12pt;font-weight:bold;}
.code {font-family:Courier New;font-size:13pt;font-weight:bold;color:blue;}
</style>
</head>

<body>

<h3>LDAP Anfragen auf das Windows 2000 ActiveDirectory</h3>
<hr size=1><p>
<u>Angemeldeter Benutzer dieser Sitzung</u>:<p>
LOGON_USER = <font class=code><%=session("LOGON_USER")%></font>
<p>
<u>LOGON_USER an ADS übergeben, Informationen dazu abfragen und ausgeben</u>:
<p>
<%
' LDAP ADSI Abfragen
Set con = CreateObject("ADODB.Connection")
Set rec = CreateObject("adodb.recordset")
con.Open "provider=ADsDSOObject", "lesekonto@domain.de","password"
lu=session("LOGON_USER")
' Verbindungsdaten
s="<LDAP://dcmuc01/DC=domain,DC=de>;(samAccountName=" & lu & ");ADsPath, objectclass, samAccountName, objectCategory, cn, sn, Name, GivenName;subTree"
rec.Open s, con
if not rec.EOF then
 Response.Write "ADS object 'samAccountName' = <font class=code>" & rec.Fields("samAccountName") & "</font><p>"
 Response.Write "ADS object 'sn' (Surname) = <font class=code>" & rec.Fields("sn") & "</font><br>"
   Response.Write "ADS object 'GivenName' = <font class=code>" & rec.Fields("GivenName") & "</font><br>"
   Response.Write "ADS object 'Name' = <font class=code>" & rec.Fields("Name") & "</font><p>"
'    Response.Write "ADS object 'cn' = <font class=code>" & rec.Fields("cn") & "</font><br>"
 Response.Write "ADS object 'objectCategory' =<br>  <font class=code>" & rec.Fields("objectCategory") & "</font><br>"
   Response.Write "ADS Path =<br>  <font class=code>" & rec.Fields("ADsPath") & "</font><br>"
end if
rec.Close
con.Close 

%>
<p>
<hr size=1>

</body>
</html>

(ist natürlich asp)

Sieht nach viel aus, ist auch viel gedöns dabei ;) am wichtigsten für die Funktionalität sind die Zeilen ab

' Windows Anmeldung abfragen & ' LDAP ADSI Abfragen.

 

Hier noch ein Lesekonto eintragen, irgendein neutraler Account, der überhaupt an die ADS darf:

con.Open "provider=ADsDSOObject", "lesekonto@domain.de","password"

 

und hier noch die Daten zum ADS-Server:

s="<LDAP://dcmuc01/DC=domain,DC=de>;(samAccountName=" & lu & ");ADsPath, objectclass, samAccountName, objectCategory, cn, sn, Name, GivenName;subTree"

 

 

Das ganze geht natürlich auch in einer .vbs-Datei auf dem Desktop, denke aber, das Du da noch was ändern müsstest...

 

Für das Java/JSP Lösung haben wir ein fertiges (OpenSource) Bean verwendet, wenn's Dich interessieren würde,

kann ich gerne den Link heraussuchen.

Link to comment

mhmmm, das wär ja schon einmal ein Anfang :-)

 

Aber bei mir sieht diese Abfrage dann so aus:

 

 

########################################

LDAP Anfragen auf das Windows 2000 ActiveDirectory

 

--------------------------------------------------------------------------------

 

Angemeldeter Benutzer dieser Sitzung:

 

LOGON_USER =

 

LOGON_USER an ADS übergeben, Informationen dazu abfragen und ausgeben:

########################################

 

 

Mhmmmmm, ich will Dich aber hiermit nicht nerven. Denn ein wenig spielen muss ich mich ja auch noch können. Nur noch eine allgemeine Frage: Gibt man unter Start/Ausführen z.B

 

LDAP://server/DC=domäne,DC=suffix ein, erhält man:

 

Kein Eintrag im Verzeichnisdienst entspricht ihren Suchkriterien. Allerdings habe ich doch die Möglichkeit über das Active Directory zu suchen. Gebe ich z.B nur

"ldap://server" ein öffnet sich eine entsprechende Maske, als würde ich das AD durchsuchen wollen.... Leider funzt das aber nicht. Ist es denn generell nicht möglich über "ldap://****" zu suchen, oder nicht? :-)

 

Antwort:

 

ja nein vielleicht

[ ] [ ] [ ]

 

:-))

Link to comment
Original geschrieben von wean

mhmmm, das wär ja schon einmal ein Anfang :-)

 

Du bist lustig, dieser "Anfang" hat uns viel Mühe & Recherchen gekostet. ;)

 

Aber bei mir sieht diese Abfrage dann so aus:

 

 

########################################

LDAP Anfragen auf das Windows 2000 ActiveDirectory

 

--------------------------------------------------------------------------------

 

Angemeldeter Benutzer dieser Sitzung:

 

LOGON_USER =

 

LOGON_USER an ADS übergeben, Informationen dazu abfragen und ausgeben:

########################################

 

 

Ich weiss nicht, was Du gemacht hast, deswegen muss ich ein wenig raten:

 

Die Datei muss eine .asp-Seite sein (keine html) und von einem IIS (am besten 5) ausgeführt werden. Ansonsten wie gesagt, ein Konto und die richtige LDAP-URI zum Server angeben.

 

Mhmmmmm, ich will Dich aber hiermit nicht nerven. Denn ein wenig spielen muss ich mich ja auch noch können. Nur noch eine allgemeine Frage: Gibt man unter Start/Ausführen z.B

 

Kein Problem :)

Aber: Was willst Du denn erreichen?

 

LDAP://server/DC=domäne,DC=suffix ein, erhält man:

 

Kein Eintrag im Verzeichnisdienst entspricht ihren Suchkriterien.

 

Bestenfalls übergibst Du dem Windows Adressbuch einen Pfad für die darauf folgende Suchmaske... da das nicht so prickelnd ist, habe ich mir das nie detaillierter angeschaut.

 

Beim Eingeben einer LDAP URI wird also ein beliebiges Programm ausgeführt, in diesem Fall das Adressbuch - das kann man theoretisch auch so konfigurieren, daß der LDAP Administrator o.ä. kommt

 

Allerdings habe ich doch die Möglichkeit über das Active Directory zu suchen. Gebe ich z.B nur

"ldap://server" ein öffnet sich eine entsprechende Maske, als würde ich das AD durchsuchen wollen.... Leider funzt das aber nicht. Ist es denn generell nicht möglich über "ldap://****" zu suchen, oder nicht? :-)

 

Antwort:

 

ja nein vielleicht

[ ] [ ] [ ]

 

:-))

 

Ein klares [Jein] :D

Wozu?

Mehr als hier (http://mitglied.lycos.de/FolkeKieseler/7-15.htm) beschrieben ist nicht drin - afaik.

 

Zum Durchsuchen eines LDAP Servers ist ldp.exe oder der LDAP Admin optimal...

 

hth :)

Link to comment

ey krass ey, da habi wohl ends den tschäcka erwischt :-)

 

Aaaalso, daß das mit der Seite nicht gegangen ist, lag daran, dass es eine *.html Seite war. Ansonsten war alles sehr aufschlussreich, was Du mir da "vor den Latz geknallt" hast :-)

 

Aber ich darf ja noch b***d fragen, ich habe ja erst 4 Prüfungen gemacht ;)

 

Trotzdem vieeelen Dank Dir

 

Bissi Bussi ;)

 

wean

Link to comment
  • 2 years later...

Na super Single Sign On....

 

Un´d wenn ich mich als Admin in der Applikation anmelden möchte, klemme ich mich mit meinem Notebook ins Netz und setze mal eben: LOGON_USER bzw USERNAME auf "Administrator" und schon bin ich als Admin angemeldet, mit allen dazugehöringen Rechten...

 

Na supi !

Daumen hoch !

Spezies... ;)

Link to comment
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...