【问题标题】:Setting up authentication for Oracle ORDS RESTful API - Can't retrieve access token - HTTP status 401 "Unauthorized"为 Oracle ORDS RESTful API 设置身份验证 - 无法检索访问令牌 - HTTP 状态 401“未授权”
【发布时间】:2020-10-19 19:04:50
【问题描述】:

我正在尝试遵循 Oracle-Base Oracle Rest Data Service (ORDS) Authentication tutorial 为示例 ORDS API 设置基于 OAuth2 客户端凭据的身份验证。我已经尝试在 OAuth : Client Credentials 下检索访问令牌,但在示例中我得到“401 Unauthorized”而不是预期的“200 OK”。

我正在使用下面的 cURL 命令来检索访问令牌。请注意,我已经替换了 OAuth 客户端 ID 和客户端密码; schemaalias 也不同。否则,该命令尽可能与教程中的示例相同。

curl -i -k --user clientIdEtc..:clientSecretEtc.. --data "grant_type=client_credentials" http://localhost:8080/ords/schemaalias/oauth/token

我已测试该 API 在未配置身份验证时有效。

在示例环境中工作时,我通过 HTTP 而不是 HTTPS 进行连接。我按照教程开始时的说明允许 OAuth over HTTP,如果我没有这样做,我预计会出现 403 Forbidden 错误。

我已经仔细检查了各种人工制品,包括 ORDS 角色、权限、权限到角色关联、权限映射、客户端、客户端权限和客户端角色,据我所知它们匹配。

我正在使用 ORDS 版本 18.1.1.95.1251,它与 WebLogic Server 12c 一起部署。

取决于问题的原因在哪里:

  • 如何连接才能使访问令牌的请求获得授权,或者
  • 教程中是否缺少某些内容或我可能遗漏了什么?

【问题讨论】:

  • 您使用的是什么版本的 curl?您可以使用命令curl -V 进行检查
  • @EJEgyed 我使用的是 7.73.0 版
  • 有点相关 - 你知道如何使用用户名和密码进行身份验证吗?我正在发送带有 curl -ks -u "user:pass" https://##resource##.adb.uk-london-1.oraclecloudapps.com/ords/orders/orders/?q={"id": {"$eq":"1"} 的 GET,但也得到了未经授权的 401。
  • @DavidMin 您使用哪种 ORDS 身份验证?您可能想将此作为一个新问题提出。

标签: oracle oauth access-token oracle-rest-data-services


【解决方案1】:

我发现我使用了错误的端口号(即 http://localhost:8080 而不是 http://localhost:7002)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    • 2021-02-23
    • 2018-09-23
    相关资源
    最近更新 更多