Azure API Powershell

Azure API Powershell

我正在为我的网站设置自动部署管道,作为其中的一部分,我必须使用 VSTS RM 自动执行 Api 导入。我在 VSTS 任务中使用自定义 PS 脚本实现了这一点。我已经使用 swagger url 导入

Import-AzureRmApiManagementApi –Context $apimContext –SpecificationFormat 'swagger' –SpecificationUrl 'http://mywebapp.com/swagger/docs/v1' –Path 'apis'

为了提高安全性,我们实施了重定向受客户端证书保护的 http 请求 https。问题来了。

现在我们无法使用上面的命令导入,因为 API 经理没有绕过证书验证的选项,它返回 403 禁止错误。可以做些什么来解决这个问题?

我什至尝试使用特定证书调用网络请求 url 并导入 API,这在我的本地机器上运行良好。

$招摇url="https://mywebapp.org/swagger/docs/1" $cert=新对象 System.Security.Cryptography.X509Certificates.X509Certificate2("xyz.cer") $test=Invoke-WebRequest -Uri "$swaggerurl" -证书 $cert $test.statuscode

Import-AzureRmApiManagementApi –Context $apimContext –SpecificationFormat 'swagger' –SpecificationUrl 'http://mywebapp.com/swagger/docs/v1' –Path 'apis'

但不在 VSTS 内联电源中 shell。它不接受证书值并返回 403 禁止错误。

请告诉我如何解决这个问题?

问题:

1.Unable 导入到 API 管理器,因为在 swagger url 上进行了 https 客户端证书验证。

  1. VSTS 内联电源 shell 即使我使用了正确的证书,也不接受证书参数详细信息。同样的情况适用于本地机器。 VSTS 在线电源是否有任何限制 shell。

提前致谢。

改用Azure PowerShell step/task。 (包括在部署类别中)

为此,API 管理服务需要代表您向 url 发出 WebRequest,并在请求中包含 ClientCertificate。 我们目前不提供使用客户端证书调用 Import-AzureRmApiManagementApi 的选项。

唯一可用的选项是使用 Powershell 进行 WebRequest (Invoke-RestMethod), download the swagger to a local file and use the -SpecificationPath parameter in the cmdlet

此问题已通过将私人代理更改为 运行 作为管理员帐户得到解决。现在一切都按预期工作:)

使用 VSTS 专用代理

导入 API