Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:howto:personalized_search

====== Unterschiede ====== Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
de:howto:personalized_search [2009/03/05 20:59]
127.0.0.1 Externe Bearbeitung
de:howto:personalized_search [2024/09/18 08:32] (aktuell)
Zeile 1: Zeile 1:
-personalisierte ​Suche =+====== Idee: Personalisierte ​Suche ======
  
-;​Zusatzfeaturein der Trefferliste einer Intranet-Suche erscheinen nur Dokumente, für die der Suchende zumindest Leserechte ​hat+FIXMEDiese Seite hat einen sehr ähnlichen Inhalt wie [[de:​howto:​enterprisesearchaccesscontroller]]. Die beiden Seiten sollten zusammengefasst werden.
  
-;Ziel: in [[Zugriffsrechte-Management]] definierte Funktionalität für ein Netzwerk mit Microsoft Active Directory Service (ADS) zu konzipieren und zu programmieren+===== Zusatzfeature =====
  
-;Vorteile: zeitsparende automatisierte Indexerstellung und Generierung von personalisierten Trefferlisten ​für angemeldete User+In der Trefferliste einer Intranet-Suche erscheinen nur Dokumente, ​für die der Suchende zumindest Leserechte hat.
  
-;​Schlüsselwörter:​ Portal, Access-Controller,​ crawlerAccessController,​ SearchAccessController,​ Kerberos, TGT,  Dateifreigaben,​ Single Sign On(SSO), JAAS, DocumentFactory.java,​ RegainToolkit.java(checkGroupArray),​ ADS (Active Directory Service), RBAC (Role Based Access Control), CMS, Dokumentenmanagement,​ Wissensmanagement  ​ 
  
-==Quellen== +===== Ziel ===== 
-Klasse net.sf.regain.''​RegainToolkit.java''​ + 
-  /** +Die in [[:​de:​features:​access rights management]] definierte Funktionalität für ein Netzwerk mit Microsoft Active Directory Service (ADS) zu konzipieren und zu programmieren. 
-   * Checks an array of group names. + 
-   *  + 
-   * @param accessController The access controller that returned the array of +===== Vorteile ===== 
-   ​* ​       group names. + 
-   * @param groupArr The array of group names to check. +Zeitsparende automatisierte Indexerstellung und Generierung von Trefferlisten passend zum angemeldeten User. 
-   * @throws RegainException If the array of group names is not valid. + 
-   */ + 
-  ​public static void checkGroupArray(Object accessController,​ String[] groupArr) +===== Quellen ​===== 
-    throws RegainException + 
-  +Klasse ​''​net.sf.regain.RegainToolkit''​: 
-    if (groupArr == null) { + 
-      // Check for null +<code java> 
-      throw new RegainException("​Access controller " + +public static void checkGroupArray(Object accessController,​ String[] groupArr) 
-          accessController.getClass().getName() + " returned illegal " + +  throws RegainException 
-          "group array: null"​);​ +
-    } else { +  if (groupArr == null) { 
-      // Check for whitespace +    // Check for null 
-      for (int i = 0; i < groupArr.length;​ i++) { +    throw new RegainException("​Access controller " + 
-        if (RegainToolkit.containsWhitespace(groupArr[i])) { +        accessController.getClass().getName() + " returned illegal " + 
-          throw new RegainException("​Access controller " + +        "group array: null"​);​ 
-              accessController.getClass().getName() + " returned illegal " + +  } else { 
-              "group name containing whitespace: '"​ + groupArr[i] + "'"​);​ +    // Check for whitespace 
-        }+    for (int i = 0; i < groupArr.length;​ i++) { 
 +      if (RegainToolkit.containsWhitespace(groupArr[i])) { 
 +        throw new RegainException("​Access controller " + 
 +            accessController.getClass().getName() + " returned illegal " + 
 +                "group name containing whitespace: '"​ + groupArr[i] + "'"​);​
       }       }
     }     }
   }   }
-==Aufgabenstellung==+
 +</​code>​ 
 + 
 +===== Aufgabenstellung ===== 
 + 
 +Zitat von Til im [[http://​forum.murfman.de/​de/​viewtopic.php?​t=157|Forum]]:​ 
 + 
 +> Besser wäre es, wenn dabei auf das echte Rechtesystem,​ also z.B. die Dateisystemrechte zugegriffen wird. Es wäre wünschenswert,​ dass der Login des jeweiligen Portals verwendet wird, was sich jedoch nicht allgemein lösen lässt, da dieser bei jedem Portal höchst unterschiedlich umgesetzt ist. Die einzige Möglichkeit,​ dies allgemein hinzubekommen,​ wäre, **regain mit einer eigenen Benutzerverwaltung und einer Login-Seite auszustatten,​ was jedoch relativ aufwändig wäre**. 
 + 
 + 
 +===== Lösungsansätze ===== 
 + 
 +''​CrawlerAccessController'':​ Mit der Anweisung in der Kommandozeile 
 + 
 +  cacls X:/​pfad/​dateiname.txt  
 + 
 +kann man in einem Microsoft Active Directory (ADS) für jede im regain-Index erfasste Datei ermitteln, welche Gruppen Vollzugriff(''​F''​) oder Leserechte(''​R''​) für diese Datei haben. Also wird zur Laufzeit für jede gerade gecrawlte Datei  
 + 
 +  Runtime.getRuntime().exec("​cacls",​ "​X:/​pfad/​dateiname.txt"​);​ 
 + 
 +ausgeführt,​ das Ergebnis wird in den ''​crawlerAccessController''​ [[http://​www.dpunkt.de/​java/​Programmieren_mit_Java/​Die_Umgebung_eines_Java_Programms/​2.html|eingelesen]] und die Liste von Gruppen, die Leserechte für dieses Dokument haben, wird zurückzugegeben . 
 + 
 +''​SearchAccessController'':​ Als Login des jeweiligen Portals wird ein Login im ADS genutzt. Die mit diesem Login initiierte Session wird vom Kerberos-Protokoll gehalten. An regain adressierte Anfrage wird im ''​SearchAccessController''​ mit der Kerberos-Schlüssel verglichen. Falls der Nutzer im ADS angemeldet ist, wird die Gruppe zurückgegeben. 
 + 
 + 
 +===== Diskussion zur Idee im Forum ===== 
 + 
 +  * [[http://​forum.murfman.de/​de/​viewtopic.php?​t=347|personalisierte Suche im internen ADS-Windows-Netzwerk]] 
 +  * [[http://​forum.murfman.de/​de/​viewtopic.php?​t=130|Nutzerberechtigungen mit dem Access-Controller administrieren]] 
 +  * [[http://​forum.murfman.de/​de/​viewtopic.php?​t=157|Mehrere Instanzen oder nutzerabhängiger Index bzw. Suche?]] 
 + 
 + 
 +===== Alternative Lösungen ===== 
 + 
 +**Mehrere Instanzen von Regain mittels Tomcat laufen lassen** 
 + 
 +URL-abhängige Lösung. Dabei lässt sich Usermanagement/​[[http://​ms2.alien.de/​0410/​content/​view/​80/​55/​|Authentifizierung über Tomcat in der web.xml]] realisieren. Voraussetzung dabei ist, dass man händisch die im Index zu erfassende Dokumente mittels White-List und Black-List pflegt. Akzeptable Lösung, wenn die für unterschiedliche Nutzergruppen zugängliche Daten sauber in unterschiedlichen Verzeichnissen abgelegt sind. 
 + 
 +**Mit [[http://​gertranssmb3.berlios.de/​output/​smbcacls.1.html|smbcacls]] eine Liste von [[http://​de.wikipedia.org/​wiki/​Access_Control_List|ACL'​s]] erstellen**
  
-Besser wäre es, wenn dabei auf das echte Rechtesystem,​ also z.Bdie Dateisystemrechte zugegriffen wirdEs wäre wünschenswert,​ dass der Login des jeweiligen Portals verwendet wird, was sich jedoch nicht allgemein lösen lässt, da dieser bei jedem Portal höchst unterschiedlich umgesetzt ist. Die einzige Möglichkeit,​ dies allgemein hinzubekommen,​ wäre, **regain mit einer eigenen Benutzerverwaltung ​und einer Login-Seite auszustatten,​ was jedoch relativ aufwändig wäre**. (Zitat von Til im [http://forum.murfman.de/de/viewtopic.php?​t=157 Forum])+... und diese dann in das [[http://ms2.alien.de/0410/content/​view/​80/​55/​|security-constraint-Format]] überführen. Also was im Absatz oben beschrieben ist, zu automatisieren. Wäre wahrscheinlich nur für User, die Linux haben, machbar. Aber hier kenne ich mich zu wenig aus.
  
-==Lösungsansätze== 
-;​crawlerAccessController:​ mit der Anweisung in der Kommandozeile 
- cacls X:/​pfad/​dateiname.txt ​ 
-kann man in einem Microsoft Active Directory (ADS) für jede im regain-Index erfasste Datei ermitteln, welche Gruppen Vollzugriff(''​F''​) oder Leserechte(''​R''​) für diese Datei haben. Also wird zur Laufzeit für jede g'rade gecrawlte Datei  
  
-''​Runtime.getRuntime().exec(cacls X:/​pfad/​dateiname.txt)''​ausgeführt,​ das Ergebnis wird in den ''​crawlerAccessController''​ [http://​www.dpunkt.de/​java/​Programmieren_mit_Java/​Die_Umgebung_eines_Java_Programms/​2.html eingelesen] und die Liste von Gruppen, die Leserechte für dieses Dokument haben, wird zurückzugegeben ​+===== Einschränkungen =====
  
-;​SearchAccessController:​als Login des jeweiligen Portals wird ein Login im ADS genutztDie mit diesem Login initiierte Session ​wird vom Kerberos-Protokoll gehaltenAn regain adressierte Anfrage wird im SearchAccessController mit der Kerberos-Schlüssel verglichenFalls der Nutzer im ADS angemeldet ist, wird dir Gruppe zurückgegeben+Einschränkungen sind hier wörtlich zu verstehenDa eine Suche mit Rücksicht auf die Zugangsrechte des Suchenden nur dann möglich ist, wenn er bei der Suche angemeldet ist. Also entweder muss man sich für die Suche bei Tomcat wie oben beschrieben anmelden und dann darf das Browser-Fenster nicht geschlossen werden, bis alle Suchvorgänge durchgeführt sind oder im Intranet ​wird eine intelligente Lösung realisiert, die dafür sorgt, dass die Anmeldung am Arbeitsplatz-Rechner gleichzeitig als Anmeldung bei der Suche/​Tomcat giltSo eine Lösung ist von der jeweiligen Intranet-Konfiguration abhängig.
  
-==Diskussion zum Hack== 
-  * [http://​forum.murfman.de/​de/​viewtopic.php?​t=347 personalisierte Suche im internen ADS-Windows-Netzwerk ] 
-  * [http://​forum.murfman.de/​de/​viewtopic.php?​t=130 Nutzerberechtigungen mit dem Access-Controller administrieren] 
-  * [http://​forum.murfman.de/​de/​viewtopic.php?​t=157 Mehrere Instanzen oder nutzerabhängiger Index bzw. Suche ?] 
  
-==alternative Lösungen== +===== Wiederverwendung ​der Lösung ​=====
-;mehrere Instanzen von Regain mittels Tomcat laufen lassen: URL-abhängige Lösung. Dabei lässt sich Usermanagement/​ [http://​ms2.alien.de/​0410/​content/​view/​80/​55/​ Authentifizierung ​ über Tomcat in der web.xml] realisieren. Voraussetzung dabei ist, dass man händisch die im Index zu erfassende Dokumente mittels whitelist und blacklist pflegt. Akzeptable ​Lösung, wenn die für unterschiedliche Nutzergruppen zugängliche Daten sauber in unterschiedlichen Verzeichnissen abgelegt sind. +
-;mit [http://​gertranssmb3.berlios.de/​output/​smbcacls.1.html smbcacls] eine Liste von  [http://​de.wikipedia.org/​wiki/​Access_Control_List ACL's] erstellen: ...und diese dann in das [http://​ms2.alien.de/​0410/​content/​view/​80/​55/​ security-constraint-Format] überführen. Also was im Absatz oben beschrieben ist, zu automatisieren. Wäre wahrscheinlich nur für User, die Linux haben, machbar. Aber hier kenne ich mich zu wenig aus.+
  
-==Einschränkungen== +Da die Crawler-Authentifizierung gegenüber einer Ressource (Netzlaufwerk) für das im Forum-Posting [[http://​forum.murfman.de/​de/​viewtopic.php?​t=350|Wie kann ich eine Seite Login crawlen?]] gewünschtes Feature vermutlich ähnlich umzusetzen ​ist, wie die in dieser Idee anvisierte Funktionalitätwäre es sinnvoll, die Kräfte zu bündeln.
-... sind hier wörtlich zu verstehen. Da eine Suche mit Rücksicht auf die Zugangsrechte des Suchenden nur dann möglich ​ist, wenn er bei der Suche angemeldet ist. Also entweder muss man sich für die Suche bei Tomcat wie oben beschrieben anmelden und dann darf das Browser-Fenster nicht geschlossen werdenbis alle Suchvorgänge durchgeführt sind oder im Intranet wird eine intelligente Lösung realisiert, die dafür sorgt, dass die Anmeldung am Arbeitsplatz-Rechner gleichzeitig als Anmeldung bei der Suche/ Tomcat gilt. So eine Lösung ist von der jeweiligen Intranet-Konfiguration abhängig.+
  
-==Wiederverwendung der Lösung== 
-da die Crawler-Authentifizierung gegenüber einer Ressource (Netzlaufwerk) für das im Posting [http://​forum.murfman.de/​de/​viewtopic.php?​t=350 wie kann ich eine Seite Login crawlen?​] ​ gewünschtes Feature vermutlich ähnlich umzusetzen ist, wie im Hack '​personalisierte Suche' anvisierte Funktionalität,​ wäre es sinnvoll, die Kräfte zu bündeln ​ 
  
-==Weblinks==+===== Siehe auch =====
  
-  * [http://​de.wikipedia.org/​wiki/​OpenID OpenID] ist ein Single-Sign-On-System,​ welches die übliche Anmeldung mit Benutzername und Passwort ersetzt. +  * [[http://​de.wikipedia.org/​wiki/​OpenID|OpenID]] ist ein Single-Sign-On-System,​ welches die übliche Anmeldung mit Benutzername und Passwort ersetzt. 
-  * [http://​www.science-computing.de/​downloads/​s+c-fachartikel_sso_2006.pdf Eintrittskarte ins Internet Single-Sign-On mit Kerberos und LDAP] +  * [[http://​www.science-computing.de/​downloads/​s+c-fachartikel_sso_2006.pdf|Eintrittskarte ins Internet Single-Sign-On mit Kerberos und LDAP]
-  * [http://​www.fertig-consulting.de/​Linux/​pdf/​samba.pdf Bestandteile von Samba] +  * [[http://​www.fertig-consulting.de/​Linux/​pdf/​samba.pdf|Bestandteile von Samba]
-  * [http://​www-i4.informatik.rwth-aachen.de/​content/​staff/​homes/​thissen/​DatKom/​Heise%20-%20sambaSkript.pdf Netzwerkprotokoll zum Filesharing zwischen Linuxservern und Windowsclients] +  * [[http://​www-i4.informatik.rwth-aachen.de/​content/​staff/​homes/​thissen/​DatKom/​Heise%20-%20sambaSkript.pdf|Netzwerkprotokoll zum Filesharing zwischen Linuxservern und Windowsclients]
-  * [http://​www.oio.de/​public/​java/​jaas/​sso-jaas-kerberos-tutorial.htm JAAS Tutorial] (Single Sign-On mit Kerberos) In diesem Artikel wird der Einsatz eines Moduls für Kerberos beschrieben. Das Modul "​Krb5LoginModule"​ bietet die Möglichkeit,​ Benutzer über deren Windows2000 oder Solaris-Systemlogin zu authentifizieren. +  * [[http://​www.oio.de/​public/​java/​jaas/​sso-jaas-kerberos-tutorial.htm|JAAS Tutorial]] (Single Sign-On mit Kerberos) In diesem Artikel wird der Einsatz eines Moduls für Kerberos beschrieben. Das Modul "​Krb5LoginModule"​ bietet die Möglichkeit,​ Benutzer über deren Windows2000 oder Solaris-Systemlogin zu authentifizieren. 
-  * [http://​transportbroker.vce.de/​ressources/​documents/​Evaluierung_der_JAAS-AP.pdf Java Authentication and Authorization Service(JAAS) 1.0] +  * [[http://​transportbroker.vce.de/​ressources/​documents/​Evaluierung_der_JAAS-AP.pdf|Java Authentication and Authorization Service(JAAS) 1.0]
-  * [http://​wwwmnmteam.informatik.uni-muenchen.de/​pub/​Diplomarbeiten/​fack01/​HTML-Version/​main.html Rechtekonzept für die Mobile Agent System Architecture (MASA)] 2.9.1 Die Java Sicherheitsarchitektur +  * [[http://​wwwmnmteam.informatik.uni-muenchen.de/​pub/​Diplomarbeiten/​fack01/​HTML-Version/​main.html|Rechtekonzept für die Mobile Agent System Architecture (MASA)]] 2.9.1 Die Java Sicherheitsarchitektur 
-  * [http://​archiv.tu-chemnitz.de/​pub/​2006/​0034/​data/​html/​node44.html Windows mit externem Kerberos] +  * [[http://​archiv.tu-chemnitz.de/​pub/​2006/​0034/​data/​html/​node44.html|Windows mit externem Kerberos]
-  * weitere [http://​del.icio.us/​itebob/​ACL Lesezeichen,​ die bei der Lösungssuche gesammelt wurden] +  * weitere ​[[http://​del.icio.us/​itebob/​ACL|Lesezeichen,​ die bei der Lösungssuche gesammelt wurden]
-  * [http://​dmoz.org/​World/​Deutsch/​Wissen/​Wissensmanagement/​ Wissensmanagement] (u.a. Auflistung der Software zum Content- und Dokumentenmanagement) +  * [[http://​dmoz.org/​World/​Deutsch/​Wissen/​Wissensmanagement/​|Wissensmanagement]] (u.a. Auflistung der Software zum Content- und Dokumentenmanagement) 
-  * [http://​de.wikipedia.org/​wiki/​RBAC Role Based Access Control] (RBAC) +  * [[http://​de.wikipedia.org/​wiki/​RBAC|Role Based Access Control]] (RBAC) 
-  * [http://​www11.in.tum.de/​publications/​pdf/​da-strunck2006.pdf Erweiterung einer Lösung zum Identity und Access Management um eine Berechtigungsverwaltung] eine Diplomarbeit vom 15.06.2006, TU München, Fakultät für Informatik +  * [[http://​www11.in.tum.de/​publications/​pdf/​da-strunck2006.pdf|Erweiterung einer Lösung zum Identity und Access Management um eine Berechtigungsverwaltung]] eine Diplomarbeit vom 15.06.2006, TU München, Fakultät für Informatik 
-  * RBAC ist wichtig und LDAP ist nützlich. In einer konkreten Situation hat Schnedermann Software-Consulting GmbH festgestellt,​ dass die Mischung von beidem zu Verwicklungen führt. Wie man den Widerspruch auflöst, steht im [http://​www.schnedermann.de/​RBAC_LDAP.shtml IT-Security Whitepaper: RBAC und LDAP] +  * RBAC ist wichtig und LDAP ist nützlich. In einer konkreten Situation hat Schnedermann Software-Consulting GmbH festgestellt,​ dass die Mischung von beidem zu Verwicklungen führt. Wie man den Widerspruch auflöst, steht im [[http://​www.schnedermann.de/​RBAC_LDAP.shtml|IT-Security Whitepaper: RBAC und LDAP]
-  * [http://​www.telematik.uni-freiburg.de/​foliendownload.php?​id=381 Policies für dynamische Systeme] Sommersemester 2006, Prof. Dr. Günter Müller +  * [[http://​www.telematik.uni-freiburg.de/​foliendownload.php?​id=381|Policies für dynamische Systeme]] Sommersemester 2006, Prof. Dr. Günter Müller 
-  * [http://​www.die.informatik.uni-siegen.de/​DIE_BIB/​Gestaltungspraktikum/​gp_gesamt/​home/​modulMIP/​ch03.html Stategien der Zugriffskontrolle] Die hier vorgestellten Lerneinheiten sind im Rahmen von Gestaltungspraktika ​ in der Medieninformatik-Lehre der Universität Siegen entstanden. 11.08.2006. +  * [[http://​www.die.informatik.uni-siegen.de/​DIE_BIB/​Gestaltungspraktikum/​gp_gesamt/​home/​modulMIP/​ch03.html|Stategien der Zugriffskontrolle]] Die hier vorgestellten Lerneinheiten sind im Rahmen von Gestaltungspraktika ​ in der Medieninformatik-Lehre der Universität Siegen entstanden. 11.08.2006. 
-  * [http://​www.oo-services.com/​en/​articles/​sso.aspx Single-Sign-On on Linux using LDAP with Active Directory] +  * [[http://​www.oo-services.com/​en/​articles/​sso.aspx|Single-Sign-On on Linux using LDAP with Active Directory]
-  * [http://​del.icio.us/​breeen/​sso Linkssammlung zum Thema '​Single-Sign-On(SSO)'​] +  * [[http://​del.icio.us/​breeen/​sso|Linkssammlung zum Thema '​Single-Sign-On(SSO)'​]
-  * [http://​www.computerwoche.de/​index.cfm?​pid=381&​pk=567617 Portale: Open Source im Anmarsch] +  * [[http://​www.computerwoche.de/​index.cfm?​pid=381&​pk=567617|Portale: Open Source im Anmarsch]
-  * [http://​www.computerwoche.de/​knowledge_center/​software/​589211/​ Portale: Open Source nur mit Augenmaß] +  * [[http://​www.computerwoche.de/​knowledge_center/​software/​589211/​|Portale: Open Source nur mit Augenmaß]
-  * [http://​www.oio.de/​open-source-portale.htm Open Source Portale]+  * [[http://​www.oio.de/​open-source-portale.htm|Open Source Portale]]
  
 +**Autor:** itebob
de/howto/personalized_search.1236283176.txt.gz · Zuletzt geändert: 2024/09/18 08:32 (Externe Bearbeitung)