代码之家  ›  专栏  ›  技术社区  ›  Hugo Barona

使用Azure API管理和功能应用程序作为后端管理授权

  •  1
  • Hugo Barona  · 技术社区  · 8 年前

    目前,我正在一个项目中实现一些托管在Azure上的API,并通过azureapi管理服务将它们公开。目前,APIM服务与Function App(API)通信,Function App具有与Function相同的授权级别。因此,只要有对APIM服务的请求,这个请求就会被转发到函数App,并且代码被注入到请求中,以获得授权。但是,目前我们正在管理XML文件上的策略,因此授权代码是硬编码在这些文件上的。所以我想知道你是否有任何关于动态管理这些代码的建议,而不把它们硬编码到这些文件中,因为这些文件保存在azuredevops repos中。。。目前,我们在Azure DevOps上设置了一个管道来管理策略更改,因此只要有更改,它就会将新策略文件上载到存储帐户,然后我们部署一个ARM模板来配置所有APIM服务,并使用新策略。

    有没有办法不用硬代码来管理这些代码?

    谢谢。

    2 回复  |  直到 8 年前
        1
  •  2
  •   Vitaliy Kurokhtin    8 年前

    https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-properties

    此外,您还可以检查功能应用程序导入如何在APIM中工作。导入后,您有:

    1. 函数应用程序的API
    2. 后端实体- https://docs.microsoft.com/en-us/rest/api/apimanagement/apimanagementrest/azure-api-management-rest-api-backend-entity -指向函数应用程序并用函数的键引用命名值
    3. 保存函数键并标记为机密的命名值。

    所有这些都允许您简化策略代码,以调用函数app:

    <set-backend-service id="my-function-app" />
    
        2
  •  1
  •   Hugo Barona    8 年前

    在对不同的选项进行了一些研究和分析之后,我最终在ARM模板中使用了函数资源中的listSecrets函数。因此,我将函数调用的结果(函数键)存储在一个变量中,然后使用该变量组成函数的URL,并将其与API管理API策略的后端服务相关联。有关此中listSecrets函数的更多信息 link