Ограничьте область действия CF-UAA, которую клиент может задать

Недавно я использую OAuth2 CF-UAA в своем приложении, когда запрос приходит к моему клиенту, я перенаправляю на CF-UAA, чтобы сгенерировать токен доступа, где я могу запросить разные области. Я хотел знать, как мы можем ограничить объемы, которые может запросить клиент? И области в CF-UAA расширяются или фиксируются?

заранее спасибо


person hyeganeh    schedule 11.12.2018    source источник


Ответы (1)


когда запрос приходит к моему клиенту, я перенаправляю на CF-UAA для генерации токена доступа, где я могу запрашивать различные области. Я хотел знать, как мы можем ограничить объемы, которые может запросить клиент?

Когда вы создаете клиент UAA, вы сообщаете ему, какие области действия должен использовать этот конкретный клиент. Если вы дадите клиентской области видимости «foo» и «bar», это все, что клиент может запросить. Не удалось запросить "baz", потому что его нет в списке разрешенных областей в UAA.

Администратор или кто-либо другой, создающий клиента UAA, может установить соответствующий список областей. Если вы не доверяете этому человеку, то ему вообще не следует позволять создавать клиента. Как правило, доверенных лиц будет создавать клиентов.

И области в CF-UAA расширяются или фиксируются?

Области видимости - это просто строки. Значение этих строк применяется сервером ресурсов. Существуют фиксированные наборы областей для взаимодействия с установленными сервисами, такими как сам UAA, или для взаимодействия с CF. Если вы создаете приложение, защищенное Oauth2 (сервером ресурсов), то вы обязаны определять, какие области доступны и какие разрешения они предоставляют.

Например, Cloud Controller (сервер ресурсов) распознает «cloud_controller.admin», «cloud_controller.read» и «cloud_controller.write». Если вы назначаете клиенту одну или несколько из этих областей, он может получить их и использовать для выполнения различных задач в Cloud Controller. Если вы попытаетесь использовать область "cloud_controller.god", ничего не произойдет, потому что Cloud Controller не распознает и не назначает разрешения для этой области.

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

person Daniel Mikusa    schedule 11.12.2018