Кто-нибудь знает, как настроить имя пользователя и пароль для сервера janusgraph. Таким образом, любая отправка http/socket на этот сервер janusgraph требует аутентификации.
Благодарю вас
Кто-нибудь знает, как настроить имя пользователя и пароль для сервера janusgraph. Таким образом, любая отправка http/socket на этот сервер janusgraph требует аутентификации.
Благодарю вас
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. Это должно заставить вас начать.