Токены доступа apigee с apigee в качестве провайдера идентификации
Я недавно использовал baas apigee и также смотрю на край. Я знаю, что если я позвоню своей конечной точке baas/token с именем пользователя и паролем, я, очевидно, смогу вернуть действительный токен доступа для пользователя. Однако у него нет токена обновления, и пользователь должен будет войти снова, в зависимости от того, что такое TTL. Теперь я заметил, что в политиках настройки и безопасности окон Apigee вы можете получить доступ к токенам обновления, но я не могу понять, как настроить это с 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 (даже если она проксирована через Edge), и "пользовательские" данные, которые возвращаются с этим, относятся к пользователю, связанному с предоставленным client_id, не пользователь, имя пользователя и пароль которого были отправлены (я знаю, что могу поменять ответ от моего вызова службы, но это больше касается access_tokens, а не пользовательских данных). Я понимаю, почему это так, поскольку очевидно, что access_tokens выдаются для разных ресурсов, но я думал, что эта установка почти "справится" с этим за кулисами. Кому-нибудь удалось настроить токены обновления при использовании apigee BAAS в качестве провайдера идентификации? Или я лаю не на том дереве?
Спасибо
1 ответ
Взгляните на примеры прокси на https://github.com/apigee/api-platform-samples/tree/master/sample-proxies/advanced-api-services и посмотрите, помогает ли это... образец хранит BaaS ключ / секрет в качестве атрибутов объекта Apigee Edge Developer (хорошо для образца, но, по общему признанию, не очень хорошая производственная практика), но вы также можете легко хранить их в безопасном хранилище Apigee ( http://apigee.com/docs/api-reference/api/vaults)
В настоящее время BaaS не поддерживает токены обновления.