В настоящее время я разрабатываю SOA-решение, где каждая служба в архитектуре представляет собой безопасный, аутентифицирующий гипермедийный ресурс (как в действительно гипермедиа, а не RPC с довольно URL-адресами).Hypermedia (ReST) SOA: Хорошая конструкция для согласованной проверки уровня сервиса?
Наверх этой архитектуры будут построены клиентские, корпоративные и клиентские приложения (здесь нет ничего необычного). Я не могу предположить, что между приложениями существует общий шаблон проверки подлинности, поскольку требования к идентификации пользователей и управлению учетными данными могут значительно различаться.
Из этого следует, что услуги в архитектуре должны использовать отдельную схему аутентификации. В идеале это будет полностью согласовано между службами (например, HMAC), чтобы максимально использовать повторное использование модуля клиент/сервер.
Мой вопрос к вам: Есть ли общий шаблон для обеспечения согласованной проверки подлинности и учетных данных по развязанным службам? Если так, то, что это?
Я придумал несколько идей, но вход от более опытных инженеров будет оценен:
1) Каждая служба предоставляет дискретный, но механически идентичный интерфейс аутентификации, и несет ответственность за ее собственное управление учетных данных ,
2)1), но с общим управлением учетными данными. Интерфейс дискретной аутентификации по-прежнему открыт для каждой службы в архитектуре, как в 1), но базовый носитель данных является общим.
3) Существует одна общая служба аутентификации, которая отвечает за управление аутентификацией и учетными данными для себя и всех других сервисов.
Я нахожу идею 2), чтобы быть наиболее привлекательной, но она нуждается в некоторой доработке. Если я не полностью ошибаюсь здесь.
Пожалуйста, критикуйте/предлагайте столько, сколько вы сочтете нужным. Принимая во внимание, конечно, что это касается дизайна, а не реализации; На данный момент меня не интересует инфраструктура/промежуточное ПО/протокол XYZ.
Извинения за прозу и благодарность за чтение.
Все это похоже на реализацию, о которой я упоминал, меня это не интересует. –