Есть ли способ получить токен доступа UAA из приложения без сохранения учетных данных? - PullRequest
0 голосов
/ 26 октября 2018

У меня есть токен доступа и токен обновления, сгенерированный с использованием моих учетных данных cf. Я хочу, чтобы мое приложение, использующее CF API, работало непрерывно в течение длительного времени, поэтому, когда срок действия маркера доступа истечет, я сгенерирую новое, используя токен обновления. Но, насколько я понимаю, срок действия маркера обновления также истекает, поэтому сеанс авторизации ограничен. Я мог бы сгенерировать новый токен доступа, используя свои учетные данные, но я не хочу хранить их ни в файлах кода, ни в переменных среды. Могу ли я что-нибудь с этим сделать?

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Для правильной работы необходим клиент UAA. Вместо того, чтобы передавать свои токены доступа / обновления, вы передаете клиент и секретный агент UAA. Затем вы должны были бы предоставить клиентские полномочия для получения токена доступа, используя свой клиент и секретный агент UAA. В результате получается токен доступа / обновления, который вы можете использовать для отправки запросов в Cloud Controller.

Обычно вы отправляете UAA Client & Client Secret в свое приложение через переменные env или, возможно, в качестве предоставляемой пользователем услуги. Вы можете использовать что-то еще (CredHub, Vault и т. Д.), Если это доступно в вашей среде.

Если вы используете Java, cf-java-client будет обрабатывать все это за вас. Вместо создания PasswordGrantTokenProvider в примере по ссылке ниже, вы должны использовать ClientCredentialsGrantTokenProvider.

https://github.com/cloudfoundry/cf-java-client/tree/master#cloudfoundryclient-dopplerclient-uaaclient-builders

Тем не менее, вам не нужна специальная библиотека. Вы можете использовать любые библиотеки Oauth2, доступные на выбранном вами языке программирования, при условии, что он поддерживает тип предоставления учетных данных клиента.


Если вы не хотите делать это в коде, ответ @ poy также хорош. Это разрешает доступ, обрабатывая то, что я упомянул выше в прокси. Пока ваши запросы проходят через прокси, они будут аннотированы токеном доступа.

Пожалуйста, убедитесь, что вы понимаете, что делает прокси-сервер, прежде чем развертывать его, и убедитесь, что вы понимаете, как правильно его защитить. Все, что имеет доступ к прокси-серверу, может отправлять авторизованные запросы, поэтому вам действительно нужно убедиться, что оно правильно заблокировано.

Надеюсь, это поможет!

0 голосов
/ 28 октября 2018

Оформить CF-Space-Security . Это позволит вам прокси через процесс, который работает рядом с вашим процессом и управляет токенами.

...