Объясните, что проверка токенов в автономном режиме сравнивается с проверкой токенов в Интернете в Open ID connect? Преимущества, ограничения и компромиссы - PullRequest
3 голосов
/ 13 января 2020

Стремясь разработать модель соединения Open ID для существующих приложений и внутренних служб, я не могу выбрать, будет ли проверка токена в автономном режиме или в режиме онлайн JSON для токена ID и токена доступа.

My Поставщик открытого идентификатора: KeyCloak

Мой вопрос связан с идеей проверки токена, поэтому я не обсуждаю детали реализации.

Согласно OID C (Open ID Connect),

ID-токен будет выдан службе, запрашивающей ресурс, после аутентификации

и теперь на стороне сервера ресурсов действительно ли необходимо проверить токен с помощью Open ID Provider (Keycloak) или автономно проверить токен на основе ключа publi c.

Если I go для автономной модели токена проверка - с какими потенциальными последствиями / ограничениями я должен столкнуться.

Я ищу идеальные ситуации для выбора подходящей модели и обсуждаемых компромиссов.

Ответы [ 3 ]

4 голосов
/ 15 января 2020

Единственным преимуществом онлайн-валидации является возможность аннулирования прав пользователя. При автономной проверке у вас есть доказательство того, что токен выдан вашим Keycloak, и что никто не подделал его. Онлайн-проверка для каждого запроса была бы слишком большой.

Например, щелчок во внешнем интерфейсе может привести ко многим вызовам API, и нет смысла создавать дюжину запросов на отдых в Keycloak за одну секунду. Рекомендуется сократить время жизни токена.

Вы можете внедрить кэширование токена и проверять токен в режиме онлайн через несколько коротких периодов, но какой смысл, если вы можете просто уменьшить время жизни токена в Keycloak.

Итак В заключение, проверьте токен в автономном режиме в течение времени ожидания (скажем, 5 минут - должно настраиваться в зависимости от случая использования), а также после периода, в течение которого токен в сети может узнать его жизнеспособность и действительность.

0 голосов
/ 24 января 2020

на стороне сервера ресурсов действительно необходимо проверить токен с помощью Open ID Provider (Keycloak)

да, вы должны проверить ID-токен, как определено OpenID Connect (OID C) протокол. Проверка токена имеет много этапов, но в основном включает проверку подписи, проверку эмитента. Как только это будет сделано, вы можете сказать ID Token действительным и, следовательно, пометить конечного пользователя для аутентификации. Это основной принцип в OpenID Connect.

Что касается автономного режима, проверки на ключ publi c достаточно. Например, это означает, что когда ваш сервер авторизации меняет цепочку ключей (что бывает редко, и это происходит в случае нарушения безопасности), вам необходимо каким-то образом обновить свой ключ еще раз.

Также существует шифрование JWT ( RFC7516 ), который добавляет дополнительный уровень безопасности для проверки токена (если вы беспокоитесь о безопасности). Но если я прав, KeyCloak не поддерживает это.

Преимущество онлайн-проверок

Вы всегда полагаетесь на сервер авторизации для проверки правильности токена.

Недостаток онлайн-проверок

Вы создаете больше трафика c для сервера авторизации. Кроме того, вашему серверу приложений требуется еще один вызов API.

Независимо от того, что вам всегда нужен publi c ключ сервера авторизации.

0 голосов
/ 22 января 2020

Проверка токена является одним из аспектов, но это не полное решение безопасности. Часто вы обнаружите, что вам нужны данные из токена и других источников для правильной авторизации доступа к ресурсам.

Таким образом, ваше решение зависит от того, как вы хотите авторизоваться, а также от нефункциональных требований, таких как доступность и производительность.

Мои личные предпочтения не принимаются в связи с разделением интересов - для получения более подробной информации см. Мое описание .

...