Apigee-在成功的oauth2身份验证后检索应用程序自定义属性
我使用Apigee和oauth2授权配置了一个简单的API。在我的API中,我使用自定义ID来分隔不同的客户端。为了能够在我的API中检索这个自定义id,我在开发者应用程序中创建了一个名为“租户”的自定义属性 我的oauth策略非常简单:Apigee-在成功的oauth2身份验证后检索应用程序自定义属性,api,oauth,apigee,Api,Oauth,Apigee,我使用Apigee和oauth2授权配置了一个简单的API。在我的API中,我使用自定义ID来分隔不同的客户端。为了能够在我的API中检索这个自定义id,我在开发者应用程序中创建了一个名为“租户”的自定义属性 我的oauth策略非常简单: <OAuthV2 async="false" continueOnError="false" enabled="true" name="ValidateOAuth"> <DisplayName>ValidateOAuth<
<OAuthV2 async="false" continueOnError="false" enabled="true" name="ValidateOAuth">
<DisplayName>ValidateOAuth</DisplayName>
<FaultRules/>
<Properties/>
<Attributes />
<ExternalAuthorization>false</ExternalAuthorization>
<Operation>VerifyAccessToken</Operation>
<SupportedGrantTypes/>
<Tokens/>
</OAuthV2>
验证身份验证
,写道
这实际上取决于您在创建代理时拥有的信息
跑步如果您正在使用OAuth或API密钥验证(通过OAuthV2
和VerifyAPIKey策略),自定义属性将自动
验证令牌或API密钥后填充。实际上我发现
我很少需要调用AccessEntity
我尝试使用跟踪工具查看成功授权后发送的信息,但没有看到我的租户Id。也许有更好的解决方案
谢谢你的帮助 使用VerifyAccessToken验证OAuth令牌。验证AccessToken后,尝试访问app.{custom\u attribute\u name}
。您可能在跟踪工具中看不到该值,因为有许多变量是从VerifyAccessToken填充的
如果您的流中不需要VerifyAccessToken(在大多数情况下,您会这样做),那么还有GetOauthv2info,它也会这样做——更多信息。变量将是oauthv2client.{policy\u name}.{custom\u attribute\u name}
<Flow name="Authorize">
<Description/>
<Request>
<Step>
<FaultRules/>
<Name>ValidateOAuth</Name>
</Step>
</Request>
<Response>
<Step>
<FaultRules/>
<Name>EchoTenant</Name>
</Step>
</Response>
<Condition>request.uri !~~ ".+(widget|tracker).+"</Condition>
</Flow>
<AssignMessage async="false" continueOnError="false" enabled="true" name="EchoTenant">
<AssignTo createNew="false" type="response"></AssignTo>
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
<Set>
<Headers>
<Header name="X-Tenant">xxx</Header>
</Headers>
</Set>
</AssignMessage>