问题标签 [azure-api-management]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
220 浏览

azure-api-management - Azure API 管理 REST API 用户

我正在尝试以编程方式邀请用户访问 Azure API 管理开发人员门户。有创建用户的 API 。是否有可供邀请用户使用的 API?

0 投票
3 回答
10344 浏览

azure - Azure API 管理导入 API 总是说:指定名称的 API 已经存在

我正在尝试使用 swagger 将我拥有的 API 导入 Azure API 管理,应该相当简单,但我总是遇到同样的错误:

一个或多个字段包含错误值:指定名称的 API 已存在

我还没有在 Azure API 管理中进行任何设置,非常令人沮丧。

更新

我正在使用 Swashbuckle ( https://github.com/domaindrivendev/Swashbuckle ) 将 Swagger 添加到我的 WebAPI 项目中。

它正在生成 Swagger 2.0 文档。

这是 Swagger Doc 的 info 元素:

不管我把它改成什么,我仍然总是得到:

一个或多个字段包含错误值:指定名称的 API 已存在

0 投票
2 回答
6272 浏览

azure - CORS 预检请求不适用于 Azure API 管理

我有 2 个 Azure 网站(ASP.NET MVC 5 和 ASP.NET WebApi 2)。MVC 网站有一些 jQuery 尝试将 CORS 请求发布到 WebApi。如果它直接连接到 WebApi,它就可以正常工作。但是,当尝试通过 API 管理进行连接时,它不起作用。

我在 Chrome 中遇到的错误是:

XMLHttpRequest 无法加载https://XXXXXX.azure-api.net/api/search。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源“ https://YYYYYY.azurewebsites.net ”。

我排除了 WebApi 配置的问题,因为正如我所说,它可以直接工作。

以下是我的政策:

有任何想法吗?

0 投票
1 回答
1715 浏览

azure - Azure API 管理:带有考虑接受标头的 json-to-xml 策略

如果请求包含 Accept=application/xml,我正在尝试将 json 响应转换为 xml。否则,应返回 json 响应。

这是我的政策:

当我在没有 Accept 标头的情况下对此进行测试时,一切都很好(200 OK 并且正确返回了 json)。

但是,添加接受标头,我得到 406 Not Acceptable。

可在https://gist.github.com/jhgbrt/9df92cb0a140804ea01c获得已编辑的跟踪(添加标头 Ocp-Apim-Trace:true 后)。在该跟踪中,您将看到以下内容:

  • 在“入站”部分确认存在具有值“应用程序/xml”的请求标头“接受”。该request-executor块包含一条消息,说明“请求正在转发到后端服务”。
  • 在“出站”块中,您已经看到 406 不可接受并删除了 Accept 标头,之后 json-to-xml 块因此而失败。

我错过了什么?

0 投票
1 回答
2353 浏览

swagger - 使用 swagger 时,如何让 Azure API 管理记录请求的正文?

我们正在使用 swagger 2.0 来记录我们在 Azure API 管理后面托管在 Azure 中的 .Net Web API。我在获取文档以详细说明作为正文的一部分发布的复杂对象时遇到了麻烦。Azure 根本没有显示有关该对象的任何细节,这让我不得不自己记录它们。下面是我导入 Azure API 管理的 json 文件。

Azure API 管理操作画面

有人可以帮助我如何从 swagger 文档中自动记录身体吗?

0 投票
1 回答
19796 浏览

authentication - 使用用户/密码将基本身份验证添加到 web.config 的最简单方法

我正在使用 ASP.NET WebApi 2 应用程序设置 Azure API 管理。API 管理建议在 API 管理代理和 ASP.NET WebApi 之间设置基本身份验证,以确保 WebApi 只能通过 API 管理代理访问。

(当然 OAuth 令牌仍将与“真实”身份验证请求一起发送,但我稍后会添加。)

考虑到这一点,我真的不想在应用程序中实现基本身份验证,我希望通过 Web.config 由 IIS 专门处理它。

问题如何设置我的 Web.config 以使用存储在 Web.config 中的用户名/密码进行基本身份验证?

我试过的

我尝试按照这篇文章使用 IIS 7.0 的集成管道功能将 ASP.NET 身份验证和授权规则应用于静态内容,但运气不佳。

这个问题没有答案,但他们可能会要求类似的东西:web.config single user basic auth

我在这里找到的其他答案包括在我不想做的应用程序中添加身份验证。

这是我的 Web.config:

我使用 PostMan 发送带有以下标头的请求:

但我得到的只是 IIS 的 401.1 页面。

IIS 屏幕截图

我错过了什么?

0 投票
3 回答
8318 浏览

azure - 从 Azure API 管理调用时,X-ARR-ClientCert 标头中没有证书

我已经使用此处提供的说明配置了一个 Azure 网站(带有一个ApiController)以使用客户端证书身份验证。总结:您在网站上设置标志并从那时起开始要求客户端身份验证证书。clientCertEnabledtrue

效果很好,但是,现在我想访问发送到服务器的客户端证书。根据 MSDN 文章,它应该在X-ARR-ClientCert请求标头中可用,但它不是!

这意味着任何拥有客户端身份验证证书的人都可以访问我的 API,这在我的情况下是不可取的。

那么如何检索客户端发送到我的 Web API 的客户端身份验证证书呢?

更新 1:我实际上是通过Azure API Management调用我的 API 。我用我的客户端身份验证证书配置了 APIM,APIM 调用我的 API 没有问题。但是,当从 APIM 调用 API 时,不会设置 X-ARR-ClientCert 标头。当通过 Fiddler 直接调用时,我确实看到了标题。所以 APIM 以某种不同的方式调用我的 API?!?

更新 2:我再次检查了所有内容并生成了一些日志记录。DelegatingHandler首先是我正在登录的课程的相关部分:

结果日志输出:

所以没有客户端证书,也没有X-ARR-ClientCert标题。

更新 3:这是当我使用客户端身份验证证书直接访问我的实际 API 时产生的日志:

直接来自请求的客户端证书和预期的X-ARR-ClientCert标头。

更新4:最后这恰好是我自己的错误(当然)。我确信后端的 urlhttps实际上是http. 客户端证书身份验证仅适用于 https,因此事后看来,在后端没有找到证书是完全合理的......

0 投票
0 回答
441 浏览

c# - 从 X509Certificate2 获取密码或安全存储密码

我有一个 wpf 应用程序,它能够按需创建和启动 Azure 服务。对于 API 调用,客户端需要有一个有效的证书。作为一种身份验证方法,应用程序在启动时要求提供 .pfx 证书和密码。使用密码和 pfx 文件,我创建了一个 X509Certificate2,然后使用此证书发送所有 api 调用。我不存储密码本身。现在,在创建 Azure 服务时,我想上传 .pfx 格式的证书(这是我的辅助角色所必需的),为此我还需要发送密码。现在,由于一开始就已经要求用户输入密码,所以我不想在创建服务时再次询问。有没有办法从已经存在的 X509Certificate2 对象中获取密码,或者我真的需要将密码保存在某处。

0 投票
1 回答
29 浏览

c# - 制作接收 Azure 订阅数据的应用

我需要制作一个允许登录特定 azure 帐户的应用程序,然后查看有哪些订阅以及它们的状态。

我不知道从什么开始做。我想我必须使用 azure API,但我不明白在哪里可以获得 Azure API 密钥等。

有人可以给我一些建议吗?

感谢任何形式的帮助;)

0 投票
1 回答
867 浏览

microservices - 带有微服务的移动应用程序(在 Microsoft Azure 服务结构上)

我正计划构建一个需要完整离线功能的企业级移动应用程序。它将在全球范围内使用。对于后端应用程序,我打算使用 Azure 服务结构将其实现为微服务。Web 管理 UI 以及上述移动应用程序都将利用后端应用程序。对于移动应用程序,我打算使用 Azure App 服务的新移动应用程序服务。这将使我能够进行离线数据同步,并在网络可达性存在时执行这些功能。

MobileApp --> Azure MobileApp 服务 --> Azure API 应用程序服务 --> Azure Service Fabric(托管微服务的节点集群)。

以下是一些我需要建议的问题和意见:

  1. 我将 Azure API 服务放在中间的原因是因为我打算进行 API 管理(我了解 Azure 有一个单独的 API 管理产品——任何关于我如何在上述架构中进行真正的 API 管理的指针都会非常有帮助。 API 管理会取代 API 应用服务吗?)

  2. 我打算使用 Swagger 从 API 应用程序服务生成的代码,以便 Web 管理 UI 层和 Azure 移动应用程序服务层都可以利用。你的意见 ?

  3. 在这里,我使用了 2 个范例 - 应用服务(用于移动和 API)和应用服务结构。我相信这是唯一的选择,因为我有一个需要重型离线功能的移动应用程序。

  4. 来自移动设备的数据同步:您认为我可以如何在移动应用服务和微服务特定数据存储之间同步数据?我需要通过 API 还是可以轻松地与各个微服务的数据存储进行数据同步。请问你的想法?