php LDAP script einfügen

  • hoobeN hoobeN
    T3PO
    0 x
    13 Beiträge
    0 Hilfreiche Beiträge
    17. 07. 2012, 16:44

    Servus,

    ich baue im Moment einen neuen Internen Bereich über TYPO3 auf. Ich habe allerdings ein Paar Anforderungen an dieses Intranet, was ich so ohne weiteres im Moment noch nicht umsetzen kann.
    Und zwar: es dürfen nur Leute rein, die sich durch das LDAP Authentifizieren. Die Logik hatte ich in php bereits erfolgreich realisiert und getestet. Jetzt lag es für mich nahe diese Logik einfach weiterzuverwenden, quasi eine "externe" Login-Page zu bauen, wo sich der User gegen das LDAP authentifiziert und ich dann mittels POST methoden an das Intranet weiterleite.
    Jetzt stellt sich mir allerdings die Frage, wie ich der Seite im TYPO3 beibringen kann diese POSTs entgegenzunehmen und vorallem einfach zurückzuweisen, wenn jemand einfach nur die URL ansteuert. Die Inhalte sollten möglichst gut geschützt sein.

    Ich bin für jeden Tipp dankbar.

    LG


  • 1
  • theis theis
    Jedi-Meister
    0 x
    268 Beiträge
    0 Hilfreiche Beiträge
    18. 07. 2012, 09:35

    Hallo,

    Typo3 besitzt einige Extensions, welche die FrontEnd-User und/oder BackEnd-User via LDAP authentifizieren (siehe [url=http://typo3.org/extensions/repository/?id=23&L=0&q=ldaps]http://typo3.org/extensions/[/url]).
    Ich verwende für unser Intranet die Extension [b]eu_ldap[/b] und bin sehr zufrieden damit.

    Falls du noch einen Schritt weitergehen möchtest und der Mitarbeiter automatisch eingeloggt werden soll anhand des aktuell eingeloggten Benutzers, kannst du hierzu folgende Extension verwenden: [b]wwsc_sso_intranet[/b].
    Jedoch benötigst du die Servervariable REMOTE_USER, welche z.B. mit AuthenNTLM (siehe unten) gesetzt werden kann.
    Gute Artikel hierzu sind:
    - [url=http://search.cpan.org/~speeves/Apache2-AuthenNTLM-0.02/AuthenNTLM.pm]Apache2-AuthenNTLM[/url]
    - [url=http://adldap.sourceforge.net/wiki/doku.php?id=seamless_authentication]seamless_authentication[/url]
    Aber Achtung, aus persönlicher Erfahrung weiss ich, dass man hierbei viiiiiel Zeit verlieren kann.

    Gruss
    Theis

  • hoobeN hoobeN
    T3PO
    0 x
    13 Beiträge
    0 Hilfreiche Beiträge
    18. 07. 2012, 09:47

    Hey,

    erst mal danke für die Antwort. Allerdings wird das bei der Authentifizierung etwas komplizierter. Ich kenne mich leider noch nicht wirklich mit TypoScript aus und ich schätze mal dort muss ich aber ansetzen.
    Ich erkläre mal kurz die Problematik:
    Die Benutzer werden sich nicht der vollen Netzwerkkennung anmelden (hat sich leider irgendwann mal so etabliert und das sollte dann auch jetzt so beibehalten werden), sondern die ersten beiden Stellen werden aus dem Land berechnet, welches sie beim Login mitangeben müssen (stelle dir eine Login-Maske vor mit "Benutzer";"Passwort";"Land" - als dropdown). Das heißt jeder Benutzer gibt seinen Benutzernamen erst ab der dritten Stelle ein, die ersten beiden werden von dem ausgewählten Land bestimmt.
    Sollte ich das zu umständlich formuliert haben, sag es mir bitte.
    Hast Du da vielleicht auch eine idee, wie ich das bewerkstelligen kann?
    Zumal dann die wirkliche Hürde erst kommt. Wir haben User in der Schweiz, Frankreich, Tschechien, Rumänien, Deutschland, Österreich und Italien.
    Jeder darf den jeweils anderen Content nicht zu gesicht bekommen. Und in der Schweiz z.B. muss es französischen, italienischen & deutschen Content geben, der aber eben NUR für die User aus der Schweiz sichtbar ist.

    Wenn Du mir jetzt dafür noch den einen oder anderen Tip geben könntest, wäre ich extrem begeistert!

    LG

  • theis theis
    Jedi-Meister
    0 x
    268 Beiträge
    0 Hilfreiche Beiträge
    19. 07. 2012, 14:40

    eu_ldap importiert nur die User aus Active Directory, wie du aber den Loginnamen zusammensetzt, ist deine Sache.
    So wie ich dich verstehe, setzt sich der Benutzernamen aus Land + der Benutzereingabe zusammen.
    Hm, da musst du wohl eine eigene Login-Extension erstellen, oder eine vorgegebene anpassen, zum Beispiel "loginbox_macmade", du müsstest also nur ein paar Zeilen ändern, also das Dropdown im HTML einfügen und schauen, dass bei der weiteren Verarbeitung das Land+Benutzereingabe zusammengesetzt wird und so zur weiteren Verarbeitung in der Extension loginbox_macmade verwendet wird.

    Die Unterscheidung der verschiedenen Berechtigungen der Inhaltsanzeige machst du am besten mit FrontEnd-Groups. In eu_ldap kannst du angeben, welche Active Directory-Gruppen übernommen werden sollen.

    Gruss
    Theis

  • 1