apigee使用apigee作为身份提供者访问令牌

时间:2015-02-15 13:11:12

标签: oauth apigee apigee-baas

我最近一直在使用apigee的baas,也看着边缘。我知道如果我使用用户名和密码调用我的baas / token端点,我显然可以为用户获取有效的访问令牌。但是,这没有刷新令牌,用户必须再次登录,具体取决于TTL是什么。 现在我注意到在apigee边缘设置和oauth策略中你可以访问刷新令牌,但我无法弄清楚如何用apigee BAAS作为我的身份提供者来设置它。我已经成功创建了一个新的oauth代理。首先,我从请求中提取用户名和密码。然后我将这些分配给新的服务标注,这些标注会触及我的BAAS。这成功传回了正确的用户详细信息和有效的BAAS访问令牌。

此时我使用标准的GenerateAccessToken政策

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<OAuthV2 async="false" continueOnError="false" enabled="true" name="OAuth-v20-1">
<DisplayName>OAuth v2.0 1</DisplayName>
<FaultRules/>
<Properties/>
<Attributes/>
<Operation>GenerateAccessToken</Operation>
<ExpiresIn>8640000</ExpiresIn>
<SupportedGrantTypes>
  <GrantType>password</GrantType>
</SupportedGrantTypes>

<GrantType>grant_type</GrantType>
<UserName>username</UserName>
<PassWord>password</PassWord>
<GenerateResponse enabled="true"/>

</OAuthV2>

此处的所有变量都已正确设置。但我还必须设置一个基本的授权标题。此标头基于base64编码的client_id和与我的应用程序边缘关联的客户端字符串。然而,如果我尝试调用BAAS端点(即使通过边缘代理)并且返回的“用户”详细信息与提供的client_id相关联的用户相关,则从此处返回的访问令牌不起作用。不是提交用户名和密码的用户(我知道我可以将我的服务标注中的响应混搭,但这更多是关于access_tokens而不是用户数据)。我知道这是为什么,显然access_tokens是针对不同的资源发布的,但我认为这种设置几乎可以在幕后“管理”它。当使用apigee BAAS作为身份提供者时,有没有人设法获得刷新令牌设置?还是我在错误的树上吠叫?

由于

1 个答案:

答案 0 :(得分:0)

查看https://github.com/apigee/api-platform-samples/tree/master/sample-proxies/advanced-api-services处的示例代理,看看是否有帮助...示例将BaaS密钥/机密作为属性存储在Apigee Edge Developer对象上(对于样本来说很好,但不可否认伟大的生产实践)但你可以轻松地将它们存储在Apigee的Secure Vault(http://apigee.com/docs/api-reference/api/vaults)中

此时BaaS不支持刷新令牌。