XML-конфигурация сервера JanusGraph

Кто-нибудь знает, как настроить имя пользователя и пароль для сервера janusgraph. Таким образом, любая отправка http/socket на этот сервер janusgraph требует аутентификации.

Благодарю вас


person martin    schedule 02.04.2018    source источник


Ответы (1)


JanusGraph упаковывает сервер Gremlin от TinkerPop, поэтому для настройки аутентификации вы можете просто следовать инструкциям сервера Gremlin. Основные шаги заключаются в том, чтобы изменить файл yaml сервера, включив в него следующее:

authentication: {
  authenticator: org.apache.tinkerpop.gremlin.server.auth.SimpleAuthenticator,
  config: {
    credentialsDb: conf/credentials.properties}}

который устанавливает «простую» систему аутентификации, которая использует локальный Graph экземпляр, настроенный conf/credentials.properties для хранения имени пользователя/пароля. Очевидно, вы могли бы написать более продвинутую Authenticator, если хотите, и использовать ее вместо нее - SimpleAuthenticator на самом деле просто эталонная реализация, чтобы люди могли начать. Вот пример, в котором TinkerGraph используется в качестве целевой базы данных для учетных данных:

gremlin.graph=org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph
gremlin.tinkergraph.vertexIdManager=LONG
gremlin.tinkergraph.graphLocation=data/credentials.kryo
gremlin.tinkergraph.graphFormat=gryo

но, очевидно, это может быть любой Graph, который вы захотите использовать.

Чтобы настроить имена пользователей и пароли в этом графе, вам нужно будет использовать Credentials DSL, обычно выполняемую как задача администрирования через консоль Gremlin. Вы бы сделали что-то вроде:

gremlin> :plugin use tinkerpop.credentials
==>tinkerpop.credentials activated
gremlin> graph = ... // create your graph instance for usernames/passwords
...
gremlin> credentials = credentials(graph)
==>CredentialGraph{graph=tinkergraph[vertices:0 edges:0]}
gremlin> credentials.createUser("stephen","password")
==>v[0]
gremlin> credentials.createUser("daniel","better-password")
==>v[3]
gremlin> credentials.createUser("marko","rainbow-dash")
==>v[6]
gremlin> credentials.findUser("marko").properties()
==>vp[password->$2a$04$lBXMnKWtLB...]
==>vp[username->marko]
gremlin> credentials.countUsers()
==>3
gremlin> credentials.removeUser("daniel")
==>1
gremlin> credentials.countUsers()
==>2

Запустите Gremlin Server с этой конфигурацией и аутентификацией.

Эти шаги более подробно описаны в справочной документации TinkerPop. Я предлагаю вам загрузить сервер Gremlin отдельно и изучить предварительно настроенную "безопасную" конфигурацию. с уже построенным «графом учетных данных», который пользователи TinkerGraph. Вы можете запустить этот пример с помощью:

$ bin/gremlin-server.sh conf/gremlin-server-secure.yaml

Внимательно посмотрите, что находится в conf/gremlin-server-secure.yaml и как оно связано с conf/tinkergraph-credentials.properties, а затем внесите аналогичные изменения в конфигурацию вашего сервера JanusGraph. Это должно заставить вас начать.

person stephen mallette    schedule 05.04.2018