我们使用 API 管理来公开几个 API。我们公开的 API 之一被配置为 SOAP-passthrough API,但我们面临一些关于 APIM 身份验证的问题。
当我们使用Ocp-Apim-Subscription-Key
标头传递查询字符串时,一切正常,API 返回的内容正确。
当我们使用subscription-key
查询字符串参数时,API 返回 401 Unauthorized。我在 Postman 中测试了这种行为,改变发送订阅密钥的方式会导致这种行为。
此 API 的一个实现细节是它公开现有的 WSDL 并通过策略将此 SOAPAction 路由到 Azure 函数。在该函数的 Application Insights 中,我可以验证该函数在我得到 401 时从未被调用,但在我成功调用时被调用(使用标头)。
这是正常行为吗?我做错了吗?还是 APIM 中的错误?