我使用Azure API Management为某些API提供API网关。要为特定Api设置策略,我使用了属性(命名值)来恢复用户元数据,然后将其分配给传入请求正文中的变量。添加新用户时,我需要将新用户的元数据添加到json中。现在属性值已经增长并超过了限制,我无法再添加更多信息。我想知道恢复大型元数据的最佳方法是什么才能在API管理策略中访问?
UPDATE1 :
我已将身份验证过程从Azure切换到Auth0,因此我可以将用户元数据添加到Auth0 app_metadata,然后在Azure策略中我从Auth0验证JWT并获取this article中解释的令牌声明(app_metadata)。通过这样做,我可以解决大型用户元数据(json)问题,但是这并不能解决存储在其他属性(命名值)中的其他非相关用户元数据,而且API网关入站策略正在增长并成为一大堆逻辑不容易管理和维护。
在这个阶段,我正在寻找一种解决方案,以更好的方式处理所有API网关入站策略,以及更易于管理的环境,即C#。因此,我的两个方面是在新的.net Api中实现API网关入站策略,并在现有API网关入站策略中调用此新API,以便它可以在Azure API网关和现有API之间起桥接作用。我还不确定这是否可以实现,是否可以直接通过新API调用现有的API,或者应该通过Azure API网关以某种方式调用它!
答案 0 :(得分:0)
此时,您必须将其存储在多个变量中,或直接在策略中对其进行硬编码。
答案 1 :(得分:0)
经过更多研究后,我最终得到了this solution,它基本上建议在Azure Cosmos DB中恢复用户元数据,并在API管理策略中调用Cosmos API来访问元数据,并且Cosmos API调用也可以缓存在政策。