问题标签 [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.

0 投票
1 回答
3178 浏览

api - 使用客户端凭据流以编程方式在 Azure AD 中添加应用程序

为了与 Azure API 管理一起使用,我尝试以编程方式将应用程序添加到 Azure Active Directory (AAD),在我的例子中是使用 Graph API。

我的场景如下:为了保护我想使用 Azure API 管理管理的 Web API,我想利用 AAD 的 OAuth 功能来完成有关身份验证和颁发 JWT 令牌的繁重工作,然后只使用 validate-jwt 策略验证 Azure API 管理中的一切正常。这样做的好处是我可以或多或少地在后端服务中省略身份验证。

只要我在 Azure AD 中为使用 Web 应用程序创建了一个应用程序,就可以正常工作,但这必须从 Azure 门户手动完成;Azure APIm 不会自动执行此操作。

现在我要尝试自动完成任务:我想将 APIm 中的 API 订阅委托给我正在编写的其他一些 Web 应用程序,然后我想利用 Graph API 在 Azure 中创建一个应用程序AD 并授予 API 应用程序的权限。

我尝试做的第一件事是让第三个应用程序(我的服务应用程序)对 Azure AD 中的 Windows Azure Active Directory 应用程序拥有完整的应用程序权限;这让我的应用程序可以使用 Graph REST API 访问 AAD。我设法使用 client_credentials 授权(来自 login.microsoft.com)获得访问令牌,但是这个令牌不允许我做一个POSTon https://graph.windows.net/(my AAD ID)/applications?api-version=1.5

我发现(https://msdn.microsoft.com/Library/Azure/Ad/Graph/howto/azure-ad-graph-api-permission-scopes)即使我授予Directory.ReadWrite.All权限,应用程序(仅限应用程序)将无法创建或更新应用程序:

注意:特别不包括上面未列出的实体的创建或更新。这包括:Application、Oauth2PermissionGrant、AppRoleAssignment、Device、ServicePrincipal、TenantDetail、域等。

我尝试的下一件事是资源所有者密码授予 ( grant_type=password),另外传递我自己的凭据,以便我可以在 Graph API 中模拟自己。现在,我POSTapplications终点成功了。

我的底线问题是:我是否可以向我的应用程序授予足够的权限,以便我可以使用客户端凭据流以编程方式添加应用程序,而不是代表用户的任何流?如果是这样,它是如何完成的?

0 投票
0 回答
55 浏览

azure - 如何将 azure api 管理 api 挂钩到底层服务?

我通过我的 API 管理实例为现有服务添加了 API 映射。我通过为服务导入 swagger json 来做到这一点。这似乎提供了一个额外的映射层,用作底层服务的接口。

现在我需要弄清楚如何配置 APIM API 来调用底层服务,以便 API 为底层服务实现提供一个有用的钩子,供开发人员使用。配置完成后,开发人员使用服务操作的步骤是什么?

0 投票
3 回答
407 浏览

javascript - 在 javascript 中保护 Azure API 休息调用

我们正在使用映射到 python flask api 的 Azure API 管理。我们正在进行 javascript ajax 调用(Azure API)。我们现在将订阅密钥直接放在 ajax 调用的查询参数中。

现在任何有权访问此密钥的人(通过按开发人员工具或查看源代码)也可以访问 api。

有没有办法在 ajax 调用中隐藏订阅密钥?

0 投票
1 回答
744 浏览

javascript - 通过 Azure API 管理流式传输

我正在使用流式方法来模拟服务器和客户端之间的实时通信。当我直接从 web api 获取流时它工作正常。但是当我尝试通过 azure api 管理接收消息时,它会返回最后约 20 分钟的消息包。这是web api方法:

为了获得流,我从 google chrome 控制台发送 XMLHttpRequest:

那么是否可以以某种方式配置 azure API 管理以在流 Flush() 上返回消息?

0 投票
1 回答
4950 浏览

azure - azure api 管理中的日志记录选项是什么?

Azure API 管理中有哪些日志记录选项?据我了解,Azure API 管理可以生成其中发生的错误的日志记录(例如无效的订阅密钥、无效的端点等)。如何在 APIM 中识别和配置可记录事件?如何将该日志输出连接到通过 APIM 托管的自定义日志服务?

0 投票
2 回答
60 浏览

azure - is azure diagnostics only available through code?

Is Azure diagnostics only implemented through code? Windows has the Event Viewer where various types of information can be accessed. ASP.Net websites have a Trace.axd file at the root that can viewed for trace information.

I was thinking that something similar might exist in Azure. However, based on the following url, Azure Diagnostics appears to require a custom code implementation:

https://azure.microsoft.com/en-us/documentation/articles/cloud-services-dotnet-diagnostics/#overview

Is there an easier, more built-in way to access Azure diagnostics like I described for other systems above? Or does a custom Worker role need to be created to capture and process this information?

0 投票
2 回答
905 浏览

azure - Azure Api Management 从 swagger 导入 API

我使用 swashbuckle nuget 在 asp.net web api 项目中为 API 生成 swagger.json。生成的 json 具有称为“标签”的字段。Swagger ui 使用这些“标签”对 api 方法进行分组。是否可以在api管理中进行类似的分组?或者我可以使用标签以某种方式自动设置 Web API URL 后缀吗?

0 投票
0 回答
41 浏览

azure - 天蓝色的内部服务器名称是如何映射的?

我正在查看一些已连接到 Azure 日志记录的 Loggly 日志,我看到了对以下 url 的引用:

我假设 rd000d3a305ece 是某种类型的服务器名称或某种其他类型的指针。这是如何映射的,如何通过 Azure 门户导航以验证此参考?看起来上面的 url 引用已输出到日志,但输入很可能是正确的名称,例如:

0 投票
1 回答
64 浏览

azure - 我可以使用 apim 事件中心捕获无效的请求信息吗?

建议使用 APIM 事件中心通过 APIM 进行日志记录。您知道这种方法是否可以捕获无效的请求信息吗?我知道可以通过 Azure 诊断捕获无效请求信息,但我想知道是否可以通过仅限 EventHubs 的解决方案捕获此信息,或者我是否需要通过 Azure 诊断实施其他解决方案来捕获无效请求信息?

0 投票
1 回答
610 浏览

azure - azure api 管理通过 put rest 请求返回 internalservererror

我目前正在尝试通过 Postman 的 REST 请求添加 Logger。这是我的测试请求:

上面的请求返回以下错误对象:

知道问题是什么或如何调试吗?我可以通过不同的 Postman 请求毫无问题地获取 /loggers。