簡體   English   中英

使用Azure API Management和Function App作為后端管理授權

[英]Manage authorization with Azure API Management and Function App as back-end

目前,我一直在開展一個項目,以實現Azure上托管的少量API,並通過Azure API Management服務公開提供這些API。 目前,APIM服務與功能應用程序(API)通信,功能應用程序具有授權級別作為功能。 因此,只要有對APIM服務的請求,該請求就會轉發到功能應用程序,並將代碼注入到授權的請求中。 但是,目前我們正在管理XML文件的策略,因此授權代碼在這些文件上進行了硬編碼。 所以我想知道你是否有動態管理這些代碼的任何建議,而不是將它們硬編碼到這些文件,因為文件保存在Azure DevOps repos中...目前,我們有一個管道設置Azure DevOps用於管理策略更改,因此只要有更改,它就會將新策略文件上載到存儲帳戶,然后我們部署ARM模板以使用新策略配置所有APIM服務。

任何想法如何管理這些代碼而不用硬編碼?

謝謝。

請參閱此處有關如何在策略中使用命名值的信息: https//docs.microsoft.com/en-us/azure/api-management/api-management-howto-properties 它們專門用於從策略代碼中抽象出一些常見參數和/或秘密。

此外,您現在可以檢查功能應用程序導入在APIM中的工作方式。 導入后你有:

  1. 功能應用程序的API
  2. 功能應用程序中所選功能的操作
  3. 后端實體 - https://docs.microsoft.com/en-us/rest/api/apimanagement/apimanagementrest/azure-api-management-rest-api-backend-entity - 指向您的功能應用和參考命名值帶有功能鍵
  4. 保存功能鍵的命名值,並標記為機密。

所有這些都允許您將政策代碼歸結為調用功能應用程序:

<set-backend-service id="my-function-app" />

在對不同選項進行一些研究和分析之后,我最終使用了來自函數資源的listSecrets函數,在ARM模板中。 因此,我將函數調用的結果(函數鍵)存儲在變量中,然后使用該變量組成函數的URL並將其與API Management API策略上的后端服務相關聯。 有關此鏈接中 listSecrets函數的更多信息。

謝謝Vitaliy的幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM