授权请求Aura 上不可用在 5.26 中已弃用
|
对 Neo4j HTTP API 的请求授权过程并未被弃用,仍将继续工作。然而,所有示例自 Neo4j 5.26 起已被弃用。请使用相同的原则来授权对 HTTP Query API 的请求,具体请参考 查询 API → 授权请求。 |
除非服务器禁用了身份验证,否则所有请求必须使用有效用户的登录凭据进行授权。
请求通过 Authorization 头进行授权。支持 basic(基本)和 bearer(持有者)身份验证。
如果服务器禁用了身份验证,则请求可以在没有 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==
Bearer 身份验证
使用持有者令牌进行身份验证的头格式为
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 https://:7474/db/neo4j/tx/commit
Accept: application/json;charset=UTF-8
Content-Type: application/json
示例响应
401: Unauthorized
Content-Type: application/json;charset=utf-8
{
"errors" : [ {
"code" : "Neo.ClientError.Security.Unauthorized",
"message" : "No authentication header supplied."
} ]
}
身份验证错误
如果提供了错误的用户名或密码,或它们未被正确进行 base64 编码,服务器将返回状态码 401 Forbidden 并给出错误信息。
请求示例
POST https://:7474/db/neo4j/tx/commit
Accept: application/json;charset=UTF-8
Authorization: Basic bmVvNGo6aW5jb3JyZWN0
Content-Type: application/json
示例响应
401: Unauthorized
Content-Type: application/json;charset=utf-8
{
"errors" : [ {
"code" : "Neo.ClientError.Security.Unauthorized",
"message" : "Invalid username or password."
} ]
}
无效的身份验证
如果 Authorization 头的内容未能正确进行 base64 编码,服务器将返回状态码 401 Forbidden 并给出错误信息。
请求示例
POST https://:7474/db/neo4j/tx/commit
Accept: application/json;charset=UTF-8
Authorization: Basic not-proper-base64
Content-Type: application/json
示例响应
401: Unauthorized
Content-Type: application/json;charset=utf-8
{
"errors" : [ {
"code": "Neo.ClientError.Request.InvalidFormat",
"message": "Invalid authentication header."
} ]
}