Реализация схемы реестра с базовой аутентификацией в слитной кафке - PullRequest
0 голосов
/ 15 октября 2019

Я новичок в Confluent Kafka и могу запускать Confluent kafka, его производителя и потребителя с Avro. Я зарегистрировал мою новую схему с этими командами с помощью этого руководства .:

D:\ApachKafka\confluent>python register_Scehma.py http://localhost:8081 playerTopic messageFormat.avsc

Вот мой код Python для реестра:

import os
import sys

import requests

schema_registry_url = sys.argv[1]
topic = sys.argv[2]
schema_file = sys.argv[3]

aboslute_path_to_schema = os.path.join(os.getcwd(), schema_file)

print("Schema Registry URL: " + schema_registry_url)
print("Topic: " + topic)
print("Schema file: " + schema_file)
print

with open(aboslute_path_to_schema, 'r') as content_file:
    schema = content_file.read()

payload = "{ \"schema\": \"" \
          + schema.replace("\"", "\\\"").replace("\t", "").replace("\n", "") \
          + "\" }"

url = schema_registry_url + "/subjects/" + topic + "-value/versions"
headers = {"Content-Type": "application/vnd.schemaregistry.v1+json"}

r = requests.post(url, headers=headers, data=payload)
if r.status_code == requests.codes.ok:
    print("Success")
else:
    r.raise_for_status()

Всеработает нормально, мой производитель отправляет avro данные, и я получаю их на моем клиенте с помощью C #. Но теперь я хочу реализовать реестр реестра с базовыми учетными данными аутентификации. По этой причине я гуглил и нашел эту ссылку , что меня очень смущает. Например, он заявил, что использование следующих параметров позволяет настроить реестр реестра для запроса аутентификации:

authentication.method=BASIC
authentication.roles=<user-role1>,<user-role2>,...
authentication.realm=<section-in-jaas_config.file>

где я должен добавить эти строки? Документация сбивает с толку, поэтому я ищу способ реализации реестра схемы с базовой аутентификацией?

1 Ответ

0 голосов
/ 17 октября 2019

Я думаю, что базовая аутентификация будет работать только тогда, когда вы поставите, например, nginx перед ним и прокси-запрос к реестру схемы. Затем используйте nginx для настройки базовой аутентификации.

На упомянутой странице есть глава Аутентификация , но это только от реестра схемы к брокерам.

Для защиты схемыКонечная точка реестра Confluent предлагает платный плагин:

Плагин безопасности реестра схемы
Это коммерческий компонент платформы Confluent.

I 'Я тоже ищу решение, поэтому попал на ваш вопрос. Вы также можете использовать брандмауэр для ограничения IP-адресов, которые могут получить доступ к портам реестра схемы. Кроме того, ваши производители и потребители должны иметь возможность обрабатывать базовый механизм аутентификации, в общем, не идеальный. Не уверен, почему реестр схемы не может использовать пользователей SCRAM zookeeper, например, это будет самый простой способ.

РЕДАКТИРОВАТЬ: Кроме того, вы также можете использовать URL-адрес, как это:

https://username:password@registry.example.com/

Не идеально, но это работает, я думаю ...

...