授权请求

除非服务器上已禁用身份验证,否则所有请求必须使用有效用户的登录凭证进行授权。

请求通过 Authorization 头进行授权。支持 basicbearer 两种身份验证。

如果服务器上已禁用身份验证,请求可以在没有 Authorization 头的情况下发送。

基本身份验证

Basic 身份验证的头格式遵循标准格式(RFC 7617),使用 UTF-8 编码

Authorization: Basic <base64(<username>:<password>)>
示例 1:Basic 身份验证

要以用户 neo4j 和密码 verysecret 进行身份验证,首先用冒号将它们连接起来

neo4j:verysecret

然后对该值进行 base64 编码

bmVvNGo6dmVyeXNlY3JldA==
如何对字符串进行 base64 编码

在 Linux 或 Mac 机器上对字符串进行 base64 编码,请使用内置的 base64 命令

echo -n "neo4j:verysecret" | base64

要获取最终的头部,在凭证的 base64 编码前加上 Basic 前缀

Authorization: Basic bmVvNGo6dmVyeXNlY3JldA==

Bearer 身份验证

使用 bearer 令牌进行身份验证的头格式为

Authorization: Bearer <base64(<token>)>
示例 2:Bearer 身份验证

要使用令牌 xbhkjnlvianztghqwawxqfe 进行身份验证,首先对其进行 base64 编码

eGJoa2pubHZpYW56dGdocXdhd3hxZmUK
如何对字符串进行 base64 编码

在 Linux 或 Mac 机器上对字符串进行 base64 编码,请使用内置的 base64 命令

echo -n "xbhkjnlvianztghqwawxqfe" | base64

要获取最终的头部,在凭证的 base64 编码前加上 Bearer 前缀

Authorization: Bearer eGJoa2pubHZpYW56dGdocXdhd3hxZmUK
生成 bearer 令牌的方式由您的应用程序通过 SSO 提供商决定。Neo4j 服务器也应配置为使用 SSO。有关更多信息,请参阅 配置 Neo4j 单点登录 (SSO)

错误

缺少授权

如果未提供 Authorization 头(且未禁用身份验证),服务器将返回状态 401 Forbidden 并返回错误。

请求示例

POST https://:7474/db/neo4j/query/v2

示例响应

401: Unauthorized
Content-Type: application/json
{
  "errors" : [ {
    "code" : "Neo.ClientError.Security.Unauthorized",
    "message" : "No authentication header supplied."
  } ]
}

身份验证错误

如果提供了错误的用户名或密码,服务器将返回状态 401 Forbidden 并返回错误。

请求示例

POST https://:7474/db/neo4j/query/v2
Authorization: Basic bmVvNGo6aW5jb3JyZWN0

示例响应

401: Unauthorized
Content-Type: application/json
{
  "errors" : [ {
    "code" : "Neo.ClientError.Security.Unauthorized",
    "message" : "Invalid username or password."
  } ]
}

无效的身份验证

如果 Authorization 头的内容没有正确进行 base64 编码,服务器将返回状态 401 Forbidden 并返回错误。

请求示例

POST https://:7474/db/neo4j/query/v2
Authorization: Basic not-proper-base64

示例响应

401: Unauthorized
Content-Type: application/json
{
  "errors" : [ {
    "code": "Neo.ClientError.Request.InvalidFormat",
    "message": "Invalid authentication header."
  } ]
}