LoginSignup
8
7

More than 5 years have passed since last update.

Neo4jをBasic認証とSSLで外部からアクセス可能にする

Posted at

はじめに

Neo4jのデフォルト設定では、同一ホストからのアクセスのみ許可されているだけです。これだと、クラウド上にNeo4jを配置した場合など、外部からアクセスする際にちょっと扱いづらいので、Neo4jにBasic認証とSSLを有効にして外部からアクセス可能な設定にしてみます。

Neo4jの公式マニュアルにもセキュリティに関するページがありますが、ちょっとややこしい感があったのでもう少し簡易な方法です。

外部からのアクセスを許可する

まず、Neo4jに外部からアクセスできるよう、org.neo4j.server.webserver.address=0.0.0.0の部分のコメントを外します。

conf/neo4j-server.properties
#let the webserver only listen on the specified IP. Default
#is localhost (only accept local connections). Uncomment to allow
#any connection.
org.neo4j.server.webserver.address=0.0.0.0

HTTPSを有効にする

以下の設定をtrueにしてHTTPSを有効にします。

conf/neo4j-server.properties
# Turn https-support on/off
org.neo4j.server.webserver.https.enabled=true

これだけだと、オレオレ証明書によるHTTPSです。ちゃんとした証明書を使いたい場合は、公式マニュアルに方法が書いてあるのでそちらを参照してください。

Basic認証を設定する

今回は、Neo4jにBasic認証機能を追加してくれるプラグインを使ってみます。

プラグインのダウンロード

こちらのページにアクセスしてページの一番下にあるjarファイルをダウンロードします。
今回は、DBがNeo4j community 2.1.6だったので、
authentication-extension/authentication-extension-2.1.5-1.0-SNAPSHOT.jar
というのを使ってみました。微妙にバージョンが違うようですが気にしない。

プラグインの保存

ダウンロードしたjarファイルをNeo4jがインストールされている場所下のpluginsフォルダ配下に保存します。

設定ファイルの編集

設定ファイルに以下の行を追記します。
usernamepasswordの部分は、Basic認証で使用するユーザ名とパスワードです。

conf/neo4j-server.properties
org.neo4j.server.credentials=username:password
org.neo4j.server.thirdparty_jaxrs_classes=org.neo4j.server.extension.auth=/auth

最後にNeo4jを再起動して設定完了です。
これで、ブラウザおよびAPIからのアクセスなどからアクセスした際、Basic認証を求められるようになります。

https://neo4j.hoge:7473/
8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7