授权请求

除非在服务器上禁用了认证,否则所有请求都必须使用有效用户的登录凭据进行授权。

请求通过 Authorization 请求头进行授权。支持基本持有者认证。

如果在服务器上禁用了认证,则可以不带 Authorization 请求头发送请求。

基本认证

基本认证的请求头格式遵循标准格式 (RFC 7617)

Authorization: Basic <base64(username:password)>
示例 1. 基本认证

要以用户 neo4j 和密码 verysecret 进行认证,首先用冒号连接它们

neo4j:verysecret

然后对该值进行 base64 编码

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

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

echo -n "neo4j:verysecret" | base64

要获取最终请求头,请在凭据的 base64 编码前加上 Basic

Authorization: Basic bmVvNGo6dmVyeXNlY3JldA==

持有者认证

使用持有者令牌进行认证的请求头格式为

Authorization: Bearer <base64(token)>
示例 2. 持有者认证

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

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

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

echo -n "xbhkjnlvianztghqwawxqfe" | base64

要获取最终请求头,请在凭据的 base64 编码前加上 Bearer

Authorization: Bearer eGJoa2pubHZpYW56dGdocXdhd3hxZmUK
您的应用程序需要通过 SSO 提供商生成持有者令牌。Neo4j 服务器也应配置为支持 SSO。欲了解更多信息,请参阅配置 Neo4j 单点登录 (SSO)

错误

缺少授权

如果未提供 Authorization 请求头(且未禁用认证),服务器将回复状态 401 Forbidden 和一个错误。

请求示例

POST http://localhost: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 http://localhost: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 http://localhost: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."
  } ]
}
© . All rights reserved.