【问题标题】:Certificate missing when Azure API Manager calls Azure APP ServiceAzure API Manager 调用 Azure APP 服务时缺少证书
【发布时间】:2016-12-22 13:32:44
【问题描述】:

当我从 API 管理 (APIM) 调用我的 API 时,我在 RequestContext 或标头中看不到证书。


我有以下设置:

我的应用在定价层上使用服务计划:基本:1 小

我正在订阅开发者计划福利

我认为这意味着我可以使用证书


我将证书上传到: 天蓝色 | APIM 实例 |发布者门户 |安全 |客户证书

对于网站

"clientCertEnabled": true,  

对于 API 范围

<inbound>
    <base />
    <authentication-certificate thumbprint="58D06D6E3265F6AE841527ABDF721F260871B6A5" />
</inbound>

APIM 公开 API 的 HTTPS URI


我在我的 AuthorizeAttribute 类中使用此代码从请求中读取证书:

protected override bool IsAuthorized(HttpActionContext actionContext)
{
    var cert = actionContext.RequestContext.ClientCertificate;

我在控制器动作中使用它:

X509Certificate2 clientCertInRequest = RequestContext.ClientCertificate;

我相信这一切在本周早些时候都有效,但是当我尝试 Azure 时,我写下了我所做的,破坏了我的设置并从头开始测试我的理解。

现在我被卡住了。

我错过了什么/做错了什么?

【问题讨论】:

  • 您使用的是 https ServiceURL 吗?
  • 啊,就是这样。我为 Web API URL 方案勾选了 HTTPS,因此我希望 Web 服务 URL 能够检测到并更改。它没有。我想这是一个错误。
  • 我们允许前端是HTTPS,后端是HTTP,反之亦然。不过我之前也犯过同样的错误。也许我们可以确定您是否上传了需要使用 HTTPS 后端的证书。
  • 我添加了一个答案,这样我们就可以跟踪哪些问题已经解决,哪些问题没有解决:-)
  • 啊,我没明白这 2 个设置引用了不同的 URL

标签: azure-api-apps azure-api-management


【解决方案1】:

后端服务 URL 也需要是 HTTPS URL。

【讨论】:

    猜你喜欢
    • 2021-03-07
    • 2017-12-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    相关资源
    最近更新 更多