Я настраиваю Glance для аутентификации по Keystone. Это работает, но я точно не знаю, как взаимодействуют некоторые параметры аутентификации.
Я начал с настройка взгляда документации, но на самом деле здесь не документируется ни один из этих вариантов. Я нашел документация по аутентификации, в котором обсуждаются некоторые из них, но не документируется auth_uri
.
В пример конфигурации взгляда в Руководство по установке и развертыванию OpenStack выглядит так:
[filter:authtoken]
paste.filter_factory = keystone.middleware.auth_token:filter_factory
service_protocol = http
service_host = 127.0.0.1
service_port = 5000
auth_host = 127.0.0.1
auth_port = 35357
auth_protocol = http
auth_uri = http://127.0.0.1:5000/
admin_token = 012345SECRET99TOKEN012345
В документация по аутентификации говорит:
Те переменные, которые начинаются с auth_, указывают на службу администратора Keystone. Эта информация используется промежуточным программным обеспечением для фактического запроса Keystone о действительности токенов аутентификации.
Ладно. Так как же auth_uri
взаимодействовать с auth_host
, auth_port
, и auth_protocol
? Можно ли просто предоставить auth_uri
а остальные варианты отбросить? Есть ли соответствующий service_uri
вариант конфигурации? И почему порт в auth_uri
соответствуют service_port
в приведенной выше конфигурации вместо auth_port
?
Keystone относится к порту 35357
в качестве порта «admin», что, на мой взгляд, предполагает, что он потребуется только для администрирования keystone (создание / удаление служб, клиентов и т. д.). Glance вместо этого называет его портом «auth», что предполагает другое использование. Что именно предоставляет служба на порту 35357, чего не предоставляет служба на порту 5000?
Первый выезд: http://docs.openstack.org/ops/OpenStackOperationsGuide.pdf
Взглянем на исходный код взгляда ...
tools/migrate_image_owners.py
... это единственный файл, который ссылается на auth_uri.
Похоже, что эта переменная повсюду, и она помогает с обработкой токенов аутентификации в клиентах и во всем openstack. Он не используется специально для glance ... но он используется утилитами, которые работают со стеком промежуточного программного обеспечения.
Что касается различий между 5000 и 35357 по трапецеидальности ...
http://docs.openstack.org/developer/keystone/api_curl_examples.html есть довольно подробное обсуждение того, какие примеры API работают с обоими или нет.
Насколько я понимаю, порт 5000 состоит в том, что его конкретная цель - разрешить общедоступную аутентификацию API для keystone, поэтому вам не нужно открывать 35357 только для того, чтобы люди могли аутентифицироваться на нем.
Что касается того, почему в каждом из компонентов openstack есть авторизация, связанная с keystone ... честно говоря, я не знаю. знать.
Однако я должен отметить, что API v2 скоро появится. Еще не полностью задокументировано, и он начнет вносить некоторые радикальные изменения в работу Keystone.