Mule 4 HTTP请求客户端访问OAuth 2端点



有一个外部服务(比如"https://external-service.com/service"),由OAuth2提供担保。我有客户端ID(比如"123_my_client_ID")、机密ID("324_mysecret")和访问令牌URL(比如"https://access-token.com/access-token")返回令牌。
我想用我的Mule 4 Http请求访问此服务。我遵循了https://docs.mulesoft.com/connectors/http/http-authentication#oauth2-客户端凭据,但找不到任何可行的解决方案。

这可以在Mule 3.9中完成。但仍在努力为Mule 4设置这个http请求配置。请任何人帮助设置此请求配置。

为了将请求身份验证迁移到Mule 4,配置现在属于http:request-connection组件,HTTP身份验证配置必须放在http:authentication组件中。这适用于支持的所有身份验证类型:基本、摘要、NTLM和OAuth2。

从提供的链接中的示例来看:

<http:request-config name="HTTP_Request_Configuration"
host="some.api.com" port="80" basePath="/api/1.0">
<oauth:client-credentials-grant-type
clientId="your_client_id" clientSecret="your_client_secret"
tokenUrl="http://some.api.com/api/1.0/oauth/token"
scopes="access_user_details, read_user_files">
</oauth:client-credentials-grant-type>
</http:request-config>

更改为:

<http:request-config name="HTTP_Request_Configuration">
<http:request-connection host="some.api.com" port="80">
<http:authentication>
<oauth:client-credentials-grant-type
clientId="your_client_id" clientSecret="your_client_secret"
tokenUrl="http://some.api.com/api/1.0/oauth/token" scopes="access_user_details, read_user_files" />
</http:authentication>
</http:request-connection>
</http:request-config>

Studio可能会抱怨oauth元素,但它应该可以正常启动。忽略它。

对于那些想知道如何通过用户界面做到这一点的人来说,这很容易,但mulesoft文档可能更清晰。我最终找到了如何做到这一点,以下是循序渐进的过程:

  1. 创建HTTP请求处理器
  2. 在";显示名称:">
  3. 在";方法:";下拉菜单(例如:GET)
  4. 在"中设置到您希望到达的端点的路径;路径:">
  5. 然后通过点击"HTTP_+"在";配置:";在";基本设置";箱子
  6. 在配置窗口中,设置协议(HTTP或HTTPS)
  7. 在配置窗口中,设置端口(80用于HTTP,443用于HTTPS)
  8. 在配置窗口中,设置主机(例如:www.url-to-request.com)
  9. 向下滚动以找到";身份验证:";下拉菜单
  10. 选择";客户端证书授予类型">
  11. 设置客户端id和客户端机密
  12. 如果应用程序提供程序需要,请设置作用域
  13. 并最终建立了";令牌url";(应用程序提供程序提供的用于检索oauth标识令牌的url)
  14. 单击"确定">

完成此操作后,oauth2请求应该可以工作。正如mulesoft文档中所说,每次运行项目时,都会自动生成一个令牌。然后,您可以执行任意数量的请求,而无需再担心身份验证。

最新更新