标签: apim

导出/导入 Azure API 管理开发人员门户配置

Microsoft 发布了一个新的Azure API管理开发人员门户。

我正在寻找一种从API开发人员门户导出所有文件和配置并能够将其导入另一个的方法。因此,我可以将相同的自定义应用于我的所有APIM实例。

有没有办法做到这一点?

azure-api-management apim

6
推荐指数
1
解决办法
1073
查看次数

azure apim中的JWT验证失败错误

我目前正在尝试使用以下文档实施 Oauth2.0 来保护 API

https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-protect-backend-with-aad

目前使用azure apim提供的DEMO CONFERENCE API来测试实现。

目前在开发者门户测试期间收到错误:

“message”:“JWT 验证失败:声明值不匹配:aud=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx..”

通过解码及其匹配来将传递的令牌与声明值进行比较。

我的 jwt 令牌验证策略如下

<inbound>
        <base />
        <validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid." require-expiration-time="false" require-signed-tokens="false">
            <openid-config url="https://login.microsoftonline.com/xxxxxxxxx-07c8-xxxxx-xxxx-xxxxxxxxx/.well-known/openid-configuration" />
            <required-claims>
                <claim name="aud" match="all" separator="-">
                    <value>xxxxxxxx-xxxxx-489e-a26e-xxxxxxxx</value>
                </claim>
            </required-claims>
        </validate-jwt>
</inbound>
Run Code Online (Sandbox Code Playgroud)

api azure oauth-2.0 jwt apim

6
推荐指数
1
解决办法
7400
查看次数

将函数定义作为 CI 流程的一部分导入 API 管理

我们希望在每次部署 azure 函数时自动化将函数定义导入 CD 流程的过程。在 azure 门户中,有一种非常简单的方法可以通过 UI 导入函数定义,但它们似乎没有任何 api/cli/powershell 库来自动化此过程。

Azure Portal Function 应用导入

我们已经成功创建了一个解决方法,其中涉及使用 C# OpenApi 库使我们的函数应用程序定义保持最新,然后使用az apim importcli 命令作为部署管道的一部分,但感觉需要额外的工作来保持 OpenApi 定义的最新和准确我们函数的每个端点,当您导入函数应用程序时,最好自动化门户在后台执行的操作(这不需要在源代码中保持最新的 openapi 定义)。任何帮助将不胜感激。

我们正在使用 Azure DevOps 进行 CI/CD 管道和发布。

c# azure azure-devops azure-functions apim

6
推荐指数
1
解决办法
722
查看次数

使用 az apim api 更新 apim 中的 api

在我的 azure devops 管道中,我有一个任务 AzureCLI@2,它将 api 部署到 apim。如何使用 az apim api执行相同的任务来更新 api?我知道有一个操作可以做到这一点,但文档没有显示如何操作,而且我没有找到任何示例。我正在使用管道中生成的开放 api 文件来创建,并且我想用它来更新 api。

azure azure-api-management azure-cli azure-devops apim

5
推荐指数
1
解决办法
5326
查看次数

如何重用 Azure API 管理策略中的响应上下文变量?

我正在利用 Azure API 管理解决方案编写概念验证。

我正在尝试编写一项<inbound>执行以下操作的策略:

  • 用于<send-request>向 API 的身份验证端点发出请求。
  • 身份验证 API 返回两个密钥,必须将其作为 http 标头包含在内,以便能够向其他端点发出后续请求。
  • 我正在将身份验证 API 的响应解析为 json 使用JObject
  • 然后我尝试从 json 对象的两个属性中读取值(它们是字符串)
  • 然后,我将向不同的 API 端点发出后续请求,并设置两个 http 标头。标头的值必须是第一个(身份验证)响应中的两个变量。

这就是我目前的政策:

<inbound>
  <base />

  <!-- Authenticate with the API and get authentication tokens for subsequent calls -->
  <send-request mode="new" response-variable-name="auth" timeout="20" ignore-error="true">
    <set-url>https://www.service.com/api/authenticate</set-url>
    <set-method>POST</set-method>
    <set-header name="Content-Type" exists-action="override">
      <value>application/json</value>
    </set-header>
    <set-body>
      @{
        var credentials = new JObject(); 

        credentials.Add(new JProperty("logonId", "{{API_LOGON_USERNAME}}")); 
        credentials.Add(new JProperty("logonPassword", "{{API_LOGON_PASSWORD}}")); 

        return credentials.ToString(); 
      }
    </set-body>
  </send-request>

  <!-- Make …
Run Code Online (Sandbox Code Playgroud)

c# azure-api-management ibm-api-management apim

4
推荐指数
1
解决办法
8382
查看次数

Azure APIM 睡眠或延迟策略

azure apim中是否有睡眠策略或任何替代方案,以便我可以延迟 5 秒特定响应?在此处输入图像描述 在所附图像中,我需要为突出显示的条件提供 5 秒的延迟或睡眠条件。

api azure policies azure-api-management apim

3
推荐指数
1
解决办法
2251
查看次数

Azure APIM | Liquid 模板 - 无需集成帐户即可将 JSON 转换为 XML

我正在构建一个逻辑应用程序,从我的本地 SQL 数据库中提取数据 -> 将其转换为 XML -> 将其发送到 SOAP API。

以下是我从本地数据库获取到 Logic App 的示例数据:

{
    "ResultSets": {
        "Table1": [
            {
                "ID": "VM001",
                "FirstName": "TestFirstName",
                "LastName": "TestLastName",
                "Email": "test1@company.com",
                "DOB": "1990-05-05"
            },
            {
                "ID": "VM002",
                "FirstName": "TestFirstName2",
                "LastName": "TestLastName2",
                "Email": "test2@company.com",
                "DOB": "1990-06-06"
            }
        ]
    },
    "OutputParameters": {}
}
Run Code Online (Sandbox Code Playgroud)

...然后我的计划是调用内部 API 并应用某种策略(我相信我们可以在入站/出站策略中使用 Liquid 模板,而不使用集成帐户或 Azure 函数)将上面的数据转换为下面的 XML,但我与之斗争:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Header/>
   <soapenv:Body>
      <userRequest>
         <extMessageId>12345</extMessageId>
         <users>
            <!--1 or more repetitions:-->
            <user>
               <ID> ID from JSON data </ID>
               <!--Optional:-->
               <FirstName> FirstName from …
Run Code Online (Sandbox Code Playgroud)

liquid azure-api-management azure-logic-apps apim

1
推荐指数
1
解决办法
2046
查看次数