Использование SAML с JWT для Node API

Я создаю приложение Angular 2 с использованием SAML2 с помощью стратегии паспорта-wsfed-saml2 https://github.com/auth0/passport-wsfed-saml2. Когда я получаю информацию о пользователях от SAML, я генерирую токен JWT, который я использую для аутентификации пользователя в API, который я также пишу.

Итак, у меня есть два сервера: APP/Auth Server обслуживает мое приложение, а также генерирует мои токены JWT, а API Server имеет мой API. Оба сервера имеют копию секрета JWT, поэтому, когда пользователь отправляет запрос с APP/Auth Server на API Server, я проверяю токен, который они отправили вместе с запросом, подтверждая это секретом.

Теперь на мои вопросы: является ли плохой практикой, чтобы ваше приложение обслуживалось с того же сервера, который вы используете для создания своих токенов JWT? Если да, то что мне здесь делать? Должен ли я делать больше для аутентификации пользователя на стороне моего API?

Что-то в этом просто кажется грязным... любая помощь будет оценена по достоинству.


person letthewookieewin    schedule 30.03.2017    source источник
comment
В какой момент вы добавили свой токен jwt в процесс аутентификации saml?   -  person gh0st    schedule 31.12.2019


Ответы (1)


Наличие приложения и системы аутентификации в одной службе само по себе не является злоупотреблением служебным положением. Как правило, рекомендуются несвязанные службы, но это не означает, что развертывание может группировать службы и, конечно, зависит от контекста.

Если вы беспокоитесь о совместном использовании секретного ключа между серверами, вы можете использовать пару асимметричных ключей (закрытый и открытый). Закрытый ключ должен быть известен только серверу аутентификации, чтобы подписать JWT. Сервер API может использовать открытый ключ для проверки токенов.

person pedrofb    schedule 30.03.2017
comment
Спасибо за отзыв, мы решили сохранить структуру как есть и использовать предложенную вами пару асимметричных ключей. Благодарю вас! - person letthewookieewin; 18.05.2017