azure-api-management 相关问题

Azure API Management是一种云托管服务,可以在任何平台上为现有HTTP API添加许多功能。这包括与安全性,API密钥管理,缓存,文档和许多其他交叉策略相关的功能。有关详细信息,请参阅:http://azure.microsoft.com/apim

Azure API 管理 - OAuth2.0 客户端凭证授权问题

我正在尝试设置一个 API,该 API 将使用 Azure API 管理来获取 Azure AD B2C 目录中的用户列表。通过 Postman,我可以提出以下请求来获取不记名令牌,...

回答 1 投票 0

托管服务身份必须配置为使用身份验证令牌策略

我正在尝试让我的后端 API 验证请求来自使用托管身份的 Azure APIM,以前这是通过证书身份验证完成的,但由于各种原因我很...

回答 2 投票 0

在 azure apim 中使用用户/密码进行身份验证

我们目前有一组使用 ws-security 用户名/密码的本地 .net WCF SOAP 服务,因此用户名和密码在 soap 标头中提供,wcf 框架处理

回答 0 投票 0

开源 Azure API 管理开发人员门户设置

我正在安装 Azure API 管理开发人员门户的开源版本。 我按照 wiki 链接中提到的步骤进行操作,除了 wiki 链接中的第 3 点,作为 org.enterprise github d...

回答 1 投票 0

使用 bicep 将 xml 策略部署到 apim

我想将以下策略部署到 azure api 管理: 我想将以下策略部署到 azure api 管理: <policies> <inbound> <base /> <choose> <when condition="@(!context.Variables.ContainsKey(''cachedAccessToken'') || DateTime.UtcNow >= (DateTime)context.Variables[''tokenExpiry''])"> <set-backend-service id="apim-generated-policy" backend-id="{0}" /> <send-request mode="new" response-variable-name="tokenResponse" timeout="20" ignore-error="false"> <set-url>{1}/token</set-url> <set-method>POST</set-method> <set-header name="Content-Type" exists-action="override"> <value>application/x-www-form-urlencoded</value> </set-header> <set-body>@("grant_type=password&username={2}&password=thisShouldRefThe-AmxPassword-NamedValue")</set-body> </send-request> <set-variable name="tokenResponseJson" value="@{{ return JsonConvert.DeserializeObject((string)context.Variables[''tokenResponse''].Body.As<string>()); }}" /> <set-variable name="cachedAccessToken" value="@{{(string)context.Variables[''tokenResponseJson''][''access_token'']}}" /> <set-variable name="tokenExpiry" value="@{{ return DateTime.UtcNow.AddSeconds((int)context.Variables[''tokenResponseJson''][''expires_in''] - 60); }}" /> <cache-store-value key="cachedAccessToken" value="@{{context.Variables[''cachedAccessToken'']}}" duration="@{{(new TimeSpan(0, (int)context.Variables[''tokenResponseJson''][''expires_in''], 0))}}" /> <cache-store-value key="tokenExpiry" value="@{{context.Variables[''tokenExpiry'']}}" duration="@{{(new TimeSpan(0, (int)context.Variables[''tokenResponseJson''][''expires_in''], 0))}}" /> </when> <otherwise> <cache-lookup-value key="cachedAccessToken" variable-name="cachedAccessToken" /> <cache-lookup-value key="tokenExpiry" variable-name="tokenExpiry" /> </otherwise> </choose> <set-header name="Authorization" exists-action="override"> <value>@{{$"Bearer {{context.Variables[''cachedAccessToken'']}}"}}</value> </set-header> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies> 这是由 devops 管道运行的二头肌: resource apim 'Microsoft.ApiManagement/service@2022-04-01-preview' existing = { name: apimName resource apiVersionSet 'api-version-sets@2018-06-01-preview' = if (enableApiVersioning) { name: apiName properties: { displayName: displayName versioningScheme: versionScheme versionHeaderName: 'X-Api-Version' versionQueryName: 'api-version' } } resource api 'apis' = { name: enableApiVersioning ? apiNameVersioned : apiName properties: { displayName: displayName path: '${pathPrefix}${apiName}' format: definitionFormat protocols: [ 'https' ] subscriptionRequired: true value: definition apiVersion: enableApiVersioning ? version : null apiVersionSetId: enableApiVersioning ? apiVersionSet.id : null subscriptionKeyParameterNames: { header: 'Ocp-Apim-Subscription-Key' query: 'subscription-key' } } resource apiPolicy 'policies' = if (!empty(policy)) { name: 'policy' properties: { value: policy } } } } 我收到以下错误: '=' 是一个意外的标记。预期的标记是“;”。 13 号线,位置 58. 经验教训 - 多注意 chatgpt 输出的内容! 主要问题是 C# 代码块的语法。这是工作方针: <policies> <inbound> <base /> <choose> <when condition="@(!context.Variables.ContainsKey("cachedAccessToken") || DateTime.UtcNow >= (DateTime)context.Variables["tokenExpiry"])"> <set-backend-service id="apim-generated-policy" backend-id="func-amx-api-dev-001" /> <send-request mode="new" response-variable-name="tokenResponse" timeout="20" ignore-error="false"> <set-url>{{baseurl}}.azurewebsites.net/token</set-url> <set-method>POST</set-method> <set-header name="Content-Type" exists-action="override"> <value>application/x-www-form-urlencoded</value> </set-header> <set-body>@("grant_type=password&username={{user}}&password={{AmxPassword}}")</set-body> </send-request> <set-variable name="cachedAccessToken" value="@((String)((IResponse)context.Variables["jwt"]).Body.As<JObject>()["access_token"])" /> <set-variable name="tokenExpiry" value="@((String)((IResponse)context.Variables["jwt"]).Body.As<JObject>()["expires_in"])" /> <cache-store-value key="cachedAccessToken" value="@((String)context.Variables["cachedAccessToken"])" duration="3600" caching-type="internal" /> <cache-store-value key="tokenExpiry" value="@((String)context.Variables["tokenExpiry"])" duration="3600" caching-type="internal" /> </when> <otherwise> <cache-lookup-value key="cachedAccessToken" variable-name="cachedAccessToken" /> <cache-lookup-value key="tokenExpiry" variable-name="tokenExpiry" /> </otherwise> </choose> <set-header name="Authorization" exists-action="override"> <value>@{ return $"Bearer {(String)context.Variables["cachedAccessToken"]}"; }</value> </set-header> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies> 我还将策略移动到一个单独的文件,并使用以下二头肌在 apim 操作级别部署: resource apiPolicy 'Microsoft.ApiManagement/service/apis/operations/policies@2022-09-01-preview' = { name: '${apimName}/amxapi_v1_0_0/entity/policy' properties: { value: loadTextContent('./createEntityPolicy.xml') } }

回答 1 投票 0

登录按钮:OAuth 在登录页面以外的任何其他页面都不起作用

我想在门户首页添加登录b2c按钮。我注意到在我点击它之后,弹出窗口打开和关闭时没有显示 B2C 用户名/密码表单字段。 要复制问题去

回答 0 投票 0

在 Azure API 管理中,您如何在 3 个不同的后端上进行负载平衡和故障转移?

我正在想办法让 API 管理在多个后端上进行故障转移。 这个问题与ff非常相似: 如何使用 Azure API 管理策略来负载平衡对后端的调用

回答 1 投票 0

尝试通过 rest api 创建用户时获取“AuthenticationFailedInvalidHeader”

我正在尝试通过 azure rest api 使用 put 方法在 azure apim 中创建用户 url 看起来像这样 https://management.azure.com/subscriptions/7xxx/resourceGroups/xxx/providers/Microsoft.ApiMana...

回答 1 投票 0

Azure 警报邮件正文中的失败 API 名称

我们在 Azure API 管理上部署了多个 API,并且我们在 AppInsights 中创建了警报,当检测到失败的 API 时会触发警报。 然而,触发的邮件只有关于……的信息

回答 1 投票 0

Azure API 管理 - 500 个内部服务器错误

遵循最佳实践,我们基于此架构创建了一个类似的基础架构。 最近我们导入了几个外部 API(这些 API 公开在公共 IP 上),因此可以使用它们...

回答 2 投票 0

带有 SignalR WebSocket API 的 APIM 与 HTTP one 共享相同的端点

我正在尝试将 Azure SignalR 服务与 APIM 集成(将其用作反向代理)。它需要将相同的子路径 (/client) 路由到 SignalR 服务,但使用不同的协议 (...

回答 0 投票 0

Azure API 管理可选缓存

主要问题是我想使用 Azure APIM 进行可选缓存。使用缓存的主要原因是为了提高性能。另外,还是想控制缓存选项还有

回答 1 投票 0

函数应用 + APIM Azure 中的版本控制

我已经开始探索使用 Azure Functions Apps 进行版本控制的选项。 我已经经历了不同的 startegies - URL , headers , query string 但无法得出最好的方法......

回答 0 投票 0

前门和 API 管理 - 每个 API 的健康检查

有没有办法在 APIM 下为每个 API 设置健康检查?我们在 APIM 主机名上有 4 个 API,但 Front Door 只有 1 个 URL 的位置,如果无法访问另一个 API 怎么办? 说主机api....

回答 1 投票 0

需要帮助阅读使用 Azure APIM 策略请求中的 SOAP XML 元素列表

`大家好, 我正在尝试创建一个 Azure APIM 策略,该策略可以读取 SOAP 主体内的所有 SOAP XML 元素列表,并检查是否有任何其他元素可用...

回答 0 投票 0

Azure APIM 验证订阅密钥或 jwt 令牌

我有一个通过 Azure APIM 公开的 WebAPI。 我有 2 个客户。一个 Azure Function APP 和一个 React Web 客户端。 函数应用程序将使用 Ocp-Apim-Subscription-Key http h 中的订阅密钥授权...

回答 0 投票 0

azure APIM 中的起源策略

我正在学习 azure APIM 策略,我有一个问题。 我有一个带有 的 API,所以在 allow-origin 中我必须一个一个地设置起源。如果我在一个域中有很多子域(例如 subdomain1.

回答 0 投票 0

Azure APIM OAuth 与 Duende 身份服务器集成

我发现了类似的线程,但没有关于 APIM OAuth 与 Duende Identity Server 集成的具体内容。我们希望 APIM 的功能类似于 Postman,您可以在其中设置授权参数...

回答 0 投票 0

APIM 是否将相同的不记名令牌转发到后端 API? | OAuth 2.0 和 Azure AAD

按照 Microsoft 提供的以下文档,我已经注册了这两个应用程序,使用客户端凭据设置 OAuth 2.0 服务并添加了“validate-jwt”入站策略。我已经用

回答 2 投票 0

将 API 策略从 Broadcom CA 迁移到 Azure APIM

我目前正致力于将策略从 Broadcom CA 迁移到 Azure APIM。但我不知道从哪里开始。有没有人这样做过? 我想知道这些策略是如何通过 Azure Devops 发布的……

回答 0 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.