0

Ich lese durch die Kafka-Dokumentation (Version 0.11.0) und ich möchte Authentifizierung und Autorisierung für Themen für Verbraucher und Publisher basierend auf seinem Client-Zertifikat.Kafka ACL zum Thema basierend auf Client-Zertifikat DN, oder sein Teil

Es sollte in einer Weise funktionieren, dass die Autorisierung basierend auf DN oder nur sein Teil, wie CN, E-Mail oder etwas anderes gewährt wird.

Ich sehe, dass die Kafka-Broker für sichere Kommunikation über TLS konfiguriert werden können und eingehende Verbindung basierend auf Clientzertifikat authentifizieren können. Aber aus meiner Sicht ist es das. Das ist alles, was der Kafka-Broker mit dem Client-Zertifikat tun kann. ACL for topic sollte SASL verwenden, wo wir PLAIN, Kerberos oder SCRAM verwenden können.

So ist es möglich, Client-Verbindung basierend auf CN-Namen im SSL-Zertifikat zu authentifizieren und ACL-Einstellungen für das Thema basierend darauf in Kafka (kafka_2.11-0.11.0.1)?

Antwort

2

Ja, es ist mit den Standardwerkzeugen möglich, ACLs basierend auf dem SSL-Benutzernamen festzulegen, aber der Standard-Principal-Builder verwendet mehr als nur den kürzeren CN-Wert als Benutzernamen.

Vom Confluent Online-Dokumentation unter https://docs.confluent.io/current/kafka/authorization.html

Standardmäßig werden die SSL-Benutzername der

CN = writeuser, OU = Unbekannt, O = Unbekannt, L = Unbekannt, ST

Form = Unbekannte, C = Unknown

One dass durch Setzen eines maßgeschneiderten PrincipalBuilder in server.properties wie folgt ändern:

principal.builder.class = BenutzerdefiniertPrincipalBuilderClass