2016-09-08 5 views
1

Ich habe seit einiger Zeit an diesem Problem gearbeitet und hätte gerne Antworten und Vorschläge von euch zu dem Thema, vor dem ich stehe. Ich versuche, meine Nifi-Standalone-Instanz auf meiner VM, die sich im Netzwerk meines Unternehmens befindet, mithilfe des LDAP-Providers unter login-identity-providers.xml zu authentifizieren. Ich gebe alle erforderlichen Werte ein, mit Ausnahme der Truststores und Keystores, da das Unternehmen über LDAP und nicht LDAPS verfügt. Also dachte ich, ich würde diese Zertifikate nicht brauchen. Ich habe die ursprüngliche Admin-Identität in der authorizers.xml auch gesetzt. Stellen Sie natürlich den https-Port und den Host (0.0.0.0) ein. Aber, wenn ich versuche, den Server von dem Browser mit der URL aufrufen und aufrufen, kann die Website nicht erreicht werden, ERR_CONNECTION_REFUSED erscheint. Grundsätzlich kann der Server nicht erreicht werden. Ich habe überprüft, die DN, LDAP-URL und andere Eigenschaften korrekt und funktionierend, wenn ich durch ldapsearch abgefragt habe.LDAP-Authentifizierung mit Apache Nifi funktioniert nicht

Also, ist es, weil ich den Truststore und Keystore in der Konfiguration nicht angeben? Wenn ja, muss ich diese Zertifikate manuell für jeden Client erstellen, der auf Nifi zugreifen möchte. Ich dachte, das LDAP-Zertifikat würde ausreichen, damit sich eine Person bei Nifi authentifizieren kann. Bitte teilen Sie mir mit, wie Sie die Zertifizierungsstelle für Truststore-, Server- und Client-Zertifikate für die Mitarbeiter dazu bringen können, Nifi über LDAP zu verwenden.

Mein ldap-Anbieter sieht wie folgt aus (geschrubbt):

<provider> 
    <identifier>ldap-provider</identifier> 
    <class>org.apache.nifi.ldap.LdapProvider</class> 
    <property name="Authentication Strategy">SIMPLE</property> 

    <property name="Manager DN">cn=user-name,ou=Accounts,dc=domain,dc=company-name,dc=com</property> 
    <property name="Manager Password">My-account-password</property> 

    <property name="TLS - Keystore"></property> 
    <property name="TLS - Keystore Password"></property> 
    <property name="TLS - Keystore Type"></property> 
    <property name="TLS - Truststore"></property> 
    <property name="TLS - Truststore Password"></property> 
    <property name="TLS - Truststore Type"></property> 
    <property name="TLS - Client Auth"></property> 
    <property name="TLS - Protocol">TLS</property> 
    <property name="TLS - Shutdown Gracefully"></property> 

    <property name="Referral Strategy">IGNORE</property> 
    <property name="Connect Timeout">10 secs</property> 
    <property name="Read Timeout">10 secs</property> 

    <property name="Url">the-ldap-url-of-company</property> 
    <property name="User Search Base">cn=Users,ou=Accounts,dc=corp,dc=company-name,dc=com</property> 
    <property name="User Search Filter">sAMAccountName={0}</property> 

    <property name="Authentication Expiration">12 hours</property> 
</provider> 

Nifi Version - 1.0.0 Laufen in einer Ubuntu Trusty VM.

+0

Sie konnten NIFI mit LDAP-Benutzer und Passwort verbinden, ohne Keystore und Truststore etc. zu generieren. Wie ich will einfache Benutzer/Passwort-Authentifizierung und immer gleiche Fehler .. –

+0

Folgen Sie der Antwort und die zugehörigen Kommentare thread. Sie müssten einen Keystore und Truststore erstellen. Nutzen Sie das Nifi-Toolkit, um diese zu generieren. – MoDrags

Antwort

4

Wenn Sie die LDAP-Authentifizierung verwenden, sollten Sie eine Anmeldeseite für NiFi erreichen, auf der Sie den Benutzernamen und das Passwort für die Authentifizierung mit LDAP angeben. Da Sie diese Seite nicht einmal erreichen, ist etwas anderes falsch, bevor es überhaupt zum LDAP-Teil gelangt.

Einige Dinge zu überprüfen ...

In Nifi Eigenschaften der aktive Identitätsanbieter sollte mit folgenden Eigenschaft festgelegt werden:

nifi.security.user.login.identity.provider=ldap-provider 

Wenn Sie jede Art von Authentifizierung Nifi verwenden, muß so konfiguriert werden, https verwenden, die die folgende Konfiguration erfordert die Bereitstellung:

nifi.web.https.host= 
nifi.web.https.port= 

nifi.security.keystore= 
nifi.security.keystoreType= 
nifi.security.keystorePasswd= 
nifi.security.keyPasswd= 
nifi.security.truststore= 
nifi.security.truststoreType= 
nifi.security.trustStorePassword= 

Der Hostname, den Sie in nifi.web.https.host set auch mit th Line-up sollte Der Hostname des Zertifikats, das für den nifi.security.keystore verwendet wird. Ich habe das Gefühl, dass das Einstellen des https-Hosts auf 0.0.0.0 nicht das ist, was Sie wollen, aber ich bin mir nicht ganz sicher, was das tut.

Sobald Sie die https-Konfiguration korrekt eingegeben haben, sollten Sie die Anmeldeseite erreichen, wenn Sie zu https://yourhost:post/nifi gehen und danach wird Ihre LDAP-Konfiguration ins Spiel kommen.

+0

Also, wenn ich den Keystore und Truststore einstellen muss, erstelle ich meine eigenen oder da ich LDAP-Konfiguration meiner Firma verwende, müsste ich die CA-Zertifikate meiner Firma oder etwas von dieser Art bekommen? Wenn ich mein eigenes Truststore- und Keystore-Zertifikat erstelle, sollte der DN mit meinem DN aus dem LDAP übereinstimmen? Ich bin in diesem Punkt irgendwie verwirrt. – MoDrags

+1

Dieser Keystore und Truststore ist in keiner Weise mit LDAP verbunden, es ist also so, dass wenn Ihr Browser eine HTTPS-Verbindung zu NiFi herstellt, die Kommunikation verschlüsselt wird und NiFi identifiziert wird. Der DN wäre typischerweise der Hostname des NiFi-Hosts. Die NiFi-Community hat vor kurzem ein Toolkit veröffentlicht, um die Erstellung von Zertifikaten zu unterstützen. Schauen Sie sich die Dokumentation hier an: https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#tls-generation-toolkit steht auf der Hauptdownloadseite zum Download bereit. –

+0

Tut mir leid, dass ich eine andere Frage gestellt habe, weil ich ziemlich neu bin. Nehmen wir an, ich erzeuge Zertifikate und setze den Truststore und Keystore in 'nifi.properties'. Wenn andere Benutzer auf die Nifi-Instanz zugreifen möchten, muss ich dann auch ein Clientzertifikat für sie erstellen? Oder kümmert sich LDAP darum, wenn ich den Keystore und den Truststore nur auf den Host setze? Danke – MoDrags