问题标签 [azure-api-management]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
api - Azure API 管理不会在 4xx 上发送 CORS 标头
在我的 Azure API 管理中,我为整个 API 定义了 CORS 策略。使用 OPTIONS 命令一切正常,每个成功的请求和 500 个响应都会返回允许的来源。
出于某种奇怪的原因,当 API 返回 401 或 403 时,allowed-origin 标头不会随响应一起发回。我从这里的前端团队了解到,这会导致麻烦,因为浏览器和/或 Angular 无法处理 XHR 响应,因为它不知道是否允许...
有谁知道为什么 API 管理会有这样的行为以及如何防止这种情况发生?
非常感谢!
彼得
azure - API 管理服务 - 管理员组
我已经为客户端设置了 API 管理服务。我们在他们的订阅下有一个共同管理员帐户。
如果我们单击 Azure 中的链接,我们可以访问发布者和开发者门户,但如果我们直接转到 URL 并输入与我们的 Azure 订阅相关联的电子邮件/密码,我们会得到:
电子邮件或密码无效。请更正错误并重试。
我错过了什么?
api - Azure API 管理 - API 端点域与实际 API URL
我已经设置了 Azure API 管理服务并将其配置在自定义域上。在 Azure 门户的 API 管理服务的配置部分下,我设置了以下内容:
因为这是一个客户端系统,所以我必须排除细节,但这里是基础知识:
- API 端点域:api.example.com
- 开发者门户域:apiportal.example.com
- 两者都上传了 SSL。
因为我将类型设置为自定义,所以我需要输入 API ENDPOINT 和 DEV PORTAL。
当我进入发布门户并设置 API 时,我得到以下信息:
我需要能够运行单个开发人员门户,但有 2 个不同的 API 服务器(1-Sandbox,2-Production),但它们将具有不同的子域(api-sandbox.example.com 和 api.example.com)
这可能吗?为什么 API 设置会用我在 API 管理配置中输入的内容覆盖 Web 服务 URL/URL 后缀?
api - Azure API 管理 - 更新 Swagger 架构
我已经导入了我的招摇模式,并且管理服务已经为我的 API 构建了所有文档。我现在进行了更改并重新部署了更改。我是否已从 API 管理中删除 API 并重新导入,还是有办法“更新”现有的?
django - Azure API 网关前端的 Django API
我有一个 Django 应用程序,它当前存储用户凭据并执行授权和身份验证。我正在将前端分解为 Angular SPA 并将后端转换为 REST API。我的 Django API 将作为受 Azure API 网关保护的 Azure API 应用程序存在。我想从 Django 中删除身份验证部分,并允许用户通过 Google 或 Microsoft 帐户使用 OpenID Connect 登录。我想要发生的是这样的:
当用户访问该网站时,假设他们从未注册过我的应用程序,他们将可以选择使用他们的 Google 帐户或 Microsoft 帐户登录。如果用户决定使用他们的 Google 或 Microsoft 帐户登录,(这是我感到困惑的地方,也是我在这里发帖的原因......)我认为会发生什么是 API 网关执行身份验证,生成 JSON Web 令牌(JWT),并将该令牌发送回 Django API。Django 接收 JWT,对其进行解密,并检查是否存在与 JWT 中的电子邮件地址匹配的用户帐户。如果没有用户帐户,Django 会将用户添加到用户帐户表(不存储密码)。如果有与该电子邮件地址匹配的用户,则 Django 允许该用户进入。
说了这么多,我想我的问题是:
我应该在 API 管理网关上进行身份验证,还是应该在 Azure Web API 上进行身份验证?
我可以使用 Django 的内置身份验证系统来做我想做的事还是不需要做的事?
我是不是把这一切都复杂化了?有没有更简单的方法来做到这一点?这一切似乎需要做很多工作。
我应该使用 OpenID Connect(而不是 Oauth2)吗?我也没有经验。
security - Azure API 管理是否包含 WAF 功能?
我试图了解 Azure API 管理套件是否在其安全或策略设置中包含任何 WAF 功能(例如 OWASP 所述)。
如果“不”或“不”知道将面向公众的 API(处理 PII)、通过带有 Web 应用程序防火墙 (WAF) 的 Azure API 管理或云中的任何其他位置公开的 API 是否有意义 -> APIM -> VPN -> 防火墙 -> 本地服务拓扑?
提前致谢
azure - 是否可以匿名调用 API App 并自动将浏览器重定向到 AD 登录页面?
在最近在伦敦举行的 Microsoft Cloud 路演期间,关于应用服务的一次会谈中出现了使用 AAD B2C 进行身份验证的内容。
目前可以将 Azure AD 添加为 API 应用的身份验证:
从没有授权标头的基于浏览器的 Web 应用程序调用此 API 应用程序会立即导致 302 重定向,然后是 401 响应。
在云事件中提到,可以从 Web 应用程序匿名调用 API 应用程序,并让 azure 应用程序服务处理重定向到 AAD 登录页面,在成功登录时获取令牌,然后传递调用到 API 应用程序并返回数据。
但是,我很难看到如何在调用 Web 应用程序不负责处理重定向的情况下实现这一点。通常,您将通过在客户端通过 AAD 获取不记名令牌并将其作为授权标头与 api 请求一起发送来处理来自 API 的 401 响应。
我在 Azure 站点和其他站点上经历了许多示例,所有示例都在客户端 Web 应用程序中处理登录/获取令牌。
这甚至可能吗?
azure - Azure API 管理订阅到期
我正在使用 2 种不同的产品设置 Azure API 管理,这些产品对底层 API 提供不同的访问和限制。
理想情况下,我希望每个产品的订阅有不同的时间长度,用户可以在需要更新之前访问它们。当我批准订阅时,我没有找到任何类型的订阅自动到期日期。
有没有办法做到这一点,我错过了?
azure - Azure API 管理密钥
我正在使用 Azure API 管理,想知道主订阅密钥和辅助订阅密钥有什么区别。我可以同时使用这两种方式访问 API,那么到底有什么区别?