2016-11-16 2 views
0

Приложение нашей компании будет иметь централизованную аутентификацию. Нет аутентификации или учетных записей пользователей, поддерживаемых в приложении 1 или приложении 2, все они обрабатываются в Identity Server. Вы должны зарегистрироваться компании, чтобы иметь приложение 1 или приложение 2. enter image description hereИдентификатор сеанса для OpenID Connect

Я думаю id_token более чем достаточно, как идентификатор сеанса, но от моего понимания, предпочтительно, чтобы не подвергать id_token вне сервера, если это возможно для более тесной безопасности. Как мне выбрать session_id, что является идеальным способом управления сессиями для этого случая? Я использую WSO2 Identity Server

ответ

1

Управление сеансом, это признак, наиболее часто связанный с веб-приложениями, поэтому я предполагаю, что это то, что есть в приложениях 1 и 2. . Вы можете найти эту статью (Single Sign-On for Regular Web Apps интересно читать, в частности, раздел о session management

Когда речь идет об управлении сессий, там, как правило, три слоя сессий мы должны рассмотреть:

  • Application Session
  • Auth0 (Федерация Provider) сессия
  • Идентичность Provider сессия

Это было бы применимо к вам, если вы планировали иметь свой сервер аутентификации дополнительно делегировать проверку подлинности дополнительного провайдера идентификации, как Google или Facebook.


Лично я бы не использовать идентификационный маркер в качестве идентификатора сеанса и вместо того, чтобы использовать более короткий ID и сохранить состояния сеанса на стороне сервера.

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

Предыдущее означает, что наличие токенов ID пересекает границу на стороне сервера полностью в порядке и что ваши намерения использовать его в качестве значения cookie сеанса в порядке.

Имейте в виду, что оба токена cookie и ID имеют понятие истечения срока действия, поэтому наличие токена внутри файла cookie может быть путаным. Вам нужно либо синхронизировать (дублирование), либо игнорировать, и убедиться, что все знают, какой из них игнорируется (каждый может даже иметь в виду вас через три месяца).

+0

скажите, что я использовал id_token как session_id вне границ сервера, хакер может получить этот id_token и использовать его для доступа к защищенному ресурсу, это где поле aud и jwt входит? –

+1

'aud' для вас, чтобы вы были уверены, что токен был выпущен для использования вашим приложением, а не другим, который может контролироваться злоумышленниками. Если у вас есть система, основанная на сеансах, это означает, что любой, у кого есть идентификатор сеанса, может получить доступ к связанным ресурсам.Использование токена в качестве идентификатора сеанса или использование случайного идентификатора означало бы одно и то же; если кто-то украл вашу сессию, тогда он может олицетворять связанного пользователя. –

Смежные вопросы