Аутентификация API
Я вижу разрешение аутентификации и авторизации входящего вызова API в виде трехкратного ввода
principal
например Bearer
токен вAuthentication
header. HTTP verb
например, req.method
в Express Resource
например, req.originalUrl
в Express
и вывод в виде true
или false
. Тогда возникает вопрос, как выглядит система, которая соответствует этому разрешению и методам жизненного цикла вокруг перестановок 3-кортежа? Давайте назовем эту систему AAS (Служба аутентификации и авторизации).
Вариант 1 - AAS, предоставляемый извне
Как разработчик API, я мог бы вызывать вызовы API на моем сервере API после он был успешно аутентифицирован AAS. 3-кортеж будет обработан AAS. В случае неудачной аутентификации AAS отправляет код состояния HTTP 401
. Таким образом, вызовы API в первую очередь затрагивают AAS - всегда .
Вариант 2 - пользовательская сборка AAS
Как разработчик API, я владею AAS таким образом, что мой сервер APIполучает вызов , а также оценивает доступ. Суть этого подхода заключается в том, что мне нужно организовать жизненный цикл трехкомпонентного кортежа, о котором я упоминал выше и , - оценку контроля доступа. Например, я должен спроектировать подключение нового потребителя API, а также оценить его вызовы.
Вопросы
Например, чисто с точки зрения JWT (давайте оставим в стороне Плохое нажатие на JWT на мгновение), 3-кортеж, вероятно, претензии. С вариантом 1, я ожидаю выдачи, модификации и истечения срока действия JWT с AAS. С вариантом 2 мне придется владеть жизненным циклом.
Для оценки контроля доступа, с Вариантом 1, я ожидаю вызова моего сервера API от AAS. С вариантом 2 я ожидаю использовать что-то вроде passport.js
для оценки запроса доступа.
Я читал о Gluu , Keycloak и FreeIPA. Кроме того, существуют облачные решения. Возможно, я не правильно понимаю, но не могу найти четкого ответа, как эти решения (я даже пробовал изолированную программную среду FreeIPA - https://www.freeipa.org/page/Demo) можно использовать для любого из указанных выше вариантов.
Например, может ли Gluu управлять жизненным циклом JWT? Как разработчик API, могу ли я вызвать Gluu для оценки контроля доступа (возможно, passport.js
)?