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

Mule 4 HTTP Request Client to access OAuth 2 end point

有一个外部服务(比如说“https://external-service.com/service") which is secured by OAuth2. I have client ID (Lets say "123_my_client_id"), Secret ID ("324_mysecret") and the access token URL ( lets say "https://access-token.com/access-token”),returns 我是令牌。
我想用我的 Mule 4 Http 请求访问这个服务。我遵循了这个 https://docs.mulesoft.com/connectors/http/http-authentication#oauth2-client-credentials,但找不到任何可行的解决方案。

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

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

从 link 中的示例提供:

    <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 文档可能更清楚。 我最终找到了如何去做,这是 step-by-step 过程:

  1. 创建您的 HTTP 请求处理器
  2. 在“显示名称:”中选择您想要的显示名称:
  3. 在“方法:”下拉菜单中选择所需的方法(例如:GET)
  4. 在“路径:”中设置您希望到达的终点的路径:
  5. 然后创建一个HTTP_Request_Configuration,点击“基本设置”框中“配置:”右侧的“+”
  6. 在配置中 window,设置协议(HTTP 或 HTTPS)
  7. 在配置 window 中,设置端口(HTTP 为 80,HTTPS 为 443)
  8. 在配置 window 中,设置主机(例如:www.url-to-request.com
  9. 向下滚动找到“身份验证:”下拉菜单
  10. 选择“客户端凭据授予类型”
  11. 设置你client-id和client-secret
  12. 如果应用程序提供商需要,请设置范围
  13. 最后设置“Token url”(url 由应用程序提供商提供,用于检索 oauth 标识令牌)
  14. 点击确定

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