Apigee-在成功的oauth2身份验证后检索应用程序自定义属性

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<

我使用Apigee和oauth2授权配置了一个简单的API。在我的API中,我使用自定义ID来分隔不同的客户端。为了能够在我的API中检索这个自定义id,我在开发者应用程序中创建了一个名为“租户”的自定义属性

我的oauth策略非常简单:

<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>