APIGEE外部OAuth 2.0授权



我试图建立一个API代理,并使用Google API令牌进行OAuth 2.0验证。我得到了一个用于验证谷歌令牌的Javascript,并切换为true,如果令牌有效,则设置流变量oauth.externel.authorification.status=true。结果总是"errorcode":"oauth.v2.InvalidAccessToken"。

问题是,如何设置flow Variable权限以跳过对内部密钥存储的client_id和secret的验证?或者我如何将tokenvalidation url设置为https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=?

编辑:

<OAuthV2 async="false" continueOnError="false" enabled="true" name="OAuth-v20-1">
<DisplayName>OAuth v2.0 1</DisplayName>
<FaultRules/>
<Properties/>
<Attributes/>
<ExternalAuthorization>true</ExternalAuthorization>
<Operation>VerifyAccessToken</Operation>
<SupportedGrantTypes/>
<GenerateResponse enabled="true"/>
<Tokens/></OAuthV2>

谢谢。

问题是,如何设置流量变量以跳过是否根据内部密钥存储从client_id和secret进行验证?

<ExternalAuthorization>用于支持外部授权,是可选的。如果已启用,则流变量的名称oauth_external_authorization_status应根据实际的外部授权状态设置为true或false。

如果<ExternalAuthorization>设置为true,oauth_external_authorization_status流变量设置为true时,将不会验证client_secret(但client_id仍然是请求中预期的,并且将被验证(。您需要将client_id作为x-www-form-urlencoded发送。这是要在client_id中发送的默认位置。

退一步说,你可能希望用Apigee的代币取代谷歌的代币。我推荐这种方法,因为通过Apigee识别的令牌,您可以利用Apigee的其余对象/功能。这些对象/功能包括开发人员、应用程序(包括client_id/secret(、自定义属性和分析。

如果您想替换Apigee的访问/刷新令牌,您可以利用Apegee的<ExternalAccessToken><ExternalRefreshToken>字段。当在Apigee上使用这些字段生成访问令牌时,您可以确保Apigee识别谷歌生产的相同访问令牌。

我在这里发布了一个相关问题的答案,你可能会觉得有帮助。

相关内容

  • 没有找到相关文章

最新更新