问题标签 [apigee]
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.
javascript - 如何保护 JavaScript/Ajax 客户端 [apigee] 中使用的 API?
我使用 Apigee 作为私有 REST API 的代理,它允许对我的数据库进行基本的 CRUD 操作。前端开发人员想直接从 JavaScript/Ajax 调用我的 API,所以我不能使用基本的 API 密钥身份验证,因为任何人都可以查看 JS 的源代码并在我的 API 上调用可能具有破坏性的方法(我是一个远离起源的人)浏览器中的策略,但这不会阻止某人在浏览器之外执行 curl 并调用我的 API)。
最好的方法是什么?一旦用户通过身份验证并在他的 Ajax 调用中使用它,UI 开发人员能否以某种方式使用 OAUTH 为每个会话获取访问令牌?但即便如此,该用户不能查看 JS 源代码并通过 curl 做一些讨厌的事情吗?
提前致谢!
apigee - 如何阻止访问 Apigee 上的某些 API 资源
我有一个现有的后端 API,其方法如下:
(GET) /user/{id}
(GET) /user/delete/{id}
(GET) /user/create/firstName={firstName},lastName={lastName}
(是的,不完全是 RESTful,因为一切都是 GET)
我想将我的 Apigee 代理配置为拒绝“/delete/”和“/create/”路径,使我的代理只读。我不确定是否为此使用某种条件流。它是如何完成的?
谢谢!
apigee - Apigee - 如何阻止对未明确定义为资源的路径的访问
我有一个后端 API 的 Apigee 代理。如果我没有为 API 定义任何资源,我的代理只是充当传递。我如何才能在默认情况下阻止所有路径,除了那些我通过定义为资源明确允许的路径?
例如,我有 20 个域对象和 4 个 CRUD 方法。那是80个潜在资源。我只想让我的开发人员访问其中的 10 个资源。如何轻松阻止对其他 70 人的访问?
我想我要问的是如何采取最小权限的方法将我的后端服务暴露给我的开发人员?
apigee - Apigee 控制台运行失败,401 Apigee 平台代理配置为使用 Oauth 2.0
我们正在使用 Apigee 平台来托管我们的 api。我们在 Apigee 中的 Api 代理配置为使用 Oauth 2.0 client_credentials 和隐式授权类型。
我们正在创建 Console To Go,为我们的 API 提供测试控制台给开发人员,并将控制台配置为使用 Oauth 2.0 Implicit Grant Flow。
当我们测试实际调用时,我们总是从 Apigee 得到 401。这是回复
发送到我们 API 的实际请求是:
Apigee 的 ValidateAccessToken 策略在Authorization: Bearer {token}
标头中查找令牌值,我怀疑它因 401 而失败,因为控制台发出的实际请求 go contains Authorization: Oauth {token}
。
有什么办法 1. 使用 Oauth 隐式授予流时控制授权标头值,以便在进行 API 调用时使用控制台Authorization: Bearer M********N
而不是Authorization: OAuth M********N
- 在 Apigee 代理的 ValidateAccessToken 政策中添加一条规则以解释
Authorization: OAuth M********N (Masked for security)
wcf - Apigee - 配置 API 代理时出现问题
我正在寻找一种将客户的 WCF 服务公开为 REST 服务的方法(并创建所有安全堆栈以支持声明/oauth 身份验证和授权)我正在研究两种不同的方法:
- 创建一个新的 REST 服务,它将充当代理,将我的 WCF 服务公开为 REST 服务(11 个服务/130 个要迁移的 Web 方法......)并使用 IP STS / RS STS 保护它
- 使用像 Apigee 这样的现有产品,它将为我完成所有这些工作,甚至比最初计划的功能更多。
我首先尝试使用 Apigee,但在创建 API 代理时遇到了问题。
我在 basicHttp 中公开的 Windows Azure VM 上部署了一个简单的 WCF 服务(只有 2 种方法)(按预期工作 - 意味着我在控制台应用程序中成功测试它,即使客户端应用程序位于我的 Azure 的 VM 之外 - )。
当我按照 Apigee 工作流程将其公开为 REST 服务时,问题就来了。我尝试在 Apigee 门户上获取服务的 wsdl 并收到以下错误:
错误:无法在空对象上调用方法 getOperation()
有人知道问题出在哪里吗?我没有来自 Apigee 门户的太多信息。我已经通过http://www.wsdl-analyzer.com/验证了我的 wsdl,但一切看起来都很好......同时,Amazone 网络服务在 Apigee 上运行良好并生成 REST 服务,所以问题似乎来自我的服务的 WSDL
api - 在 Apigee 中托管自定义 API - howto
我为我正在与我的团队开发的应用程序创建了一个自定义 API。API 是 PHP 的,实际上使用的是 CakePHP 框架。
我可以为我的 API 托管和使用 Apigee 的资源吗?或者我可以通过 API 仪表板简单地管理 API,这意味着我必须在另一台服务器(例如 Rackspace)中托管我的 API?
先感谢您
javascript - Sencha Touch、Apigee JS SDK 和 Phonegap 在浏览器中工作但在 IOS 中工作
使用 - Sencha Touch 2.3、Apigee Usergrid JS SDK 和 PhoneGap 3.2。
我能够在浏览器中运行我的应用程序并完美访问 Apigee。
索引.html:
这是我直接来自 Apigee Javascript SDK 的代码(同样在 index.html 中):
所以在我看来测试“client.URI”给了我“ https://api.usergrid.com ”的预期。那里一切都好。
按钮中“client.URI”的图像。 http://minus.com/i/BtmXiuVxljsV
当我跑
这是我遇到问题的地方。一切都很好,除了当我尝试配合 Apigee 时。当我这样做时,该应用程序不会加载到 IOS 模拟器中。在我的 phonegap 配置或“白名单”中,我使用“*”通配符打开了对所有内容的访问权限。我很确定这是可行的,因为 Google 地图 API 运行良好。我试图将“client.URI”测试放在警报中,所以当我单击一个按钮时,它会显示 URI。这同样适用于浏览器,但不适用于模拟器。该应用程序加载正常,但是当我单击按钮时没有任何反应。我希望这是有道理的。我想确保应用程序能够加载,并且我可以尽可能独立地测试“client.URI”测试。同样,如果我尝试在加载时渲染它,那么应用程序甚至永远不会加载到模拟器中。
当我单击应该带有 URI 警报的按钮时,我在 system.log 中得到了这个:
我可以继续在浏览器中开发并访问我的 Usergrid 后端,但我真的很想修复这个错误并确保我不会处理更大的架构问题。
谢谢大家。
apigee - APIGEE 是否支持 MQTT 物联网协议?
APIGEE 框架是否支持与 MQTT 协议的双向通信?
我们正在寻求通过 APIGEE 管理设备。
http-status-code-405 - 如何使 Apigee 4.23 (OPDK) 允许来自没有 ALLOW 标头的后端的 HTTP 405 响应?
我的后端服务器针对特定请求将 HTTP 405 返回到 Apigee 4.23 (OPDK)。但是,后端未能设置标准规定的 405 响应应包含的“ALLOW”标头。
而不是修复我的后端(由于接触长时间运行的代码库的一些限制),我想在我的代理 TargetEndpoint 响应流中处理这种情况并添加 ALLOW 标头。但是,看起来 Apigee 4.23 (OPK) 不允许我这样做,它会将以下响应发送回客户端:
我遵循了有关在 TargetEndpoint 上设置“success.codes”属性的文档:
仍然得到同样的错误。我该如何解决这个问题?我正在使用 Apigee 4.23(本地部署工具包)
proxy - Apigee - 如何重定向到其他资源
我有一个使用 Apigee 创建的 API 代理,它可以正常工作。但是,我想更改资源名称。
目前,我有以下资源:
<proxy>/collection/{Id}/product
s 重定向到<myService>/collection/{Id}/products
我想像这样重命名代理资源:
<proxy>/collection/{Id}/apps
重定向到<myService>/collection/{Id}/products
Apigee 实现这一目标的最佳方法是什么?
干杯,查夫达尔