Протокол аутентификации openid connect в сети экстрасети

У меня есть сценарий, где я должен использовать OpenID Connect в сети экстрасети. Когда приложение инициализируется, оно загружает документ метаданных из.well-known/openid-configuration, для которого оно делает запрос HTTP Get. Как получить документ метаданных openid connect в сети экстрасети без подключения к Интернету? Может ли openID connect работать без подключения к интернету?

Спасибо!

2 ответа

Вам не требуется интернет для использования OpenID Connect. Когда я использую термин Интернет, я имею в виду сети, соединяющие обычные веб-сайты или всемирную паутину. Единственное требование протокола - это возможность использовать HTTP (и TLS) для связи между различными ролями (например, клиент, сервер авторизации, сервер ресурсов и конечный пользователь).

Вы можете использовать OpenID Connect внутри интрасети. Эта сеть может быть отделена от интернета. И есть возможность подключить несколько интрасетей через VPN. Наличие VPN отделит вас от интернета, но позволит использовать HTTP-связь.

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

Если клиентское приложение не может взаимодействовать с внешним миром (но пользователь, который хочет войти в приложение, может), то вы можете:

  • жестко запишите значения конфигурации из документа openid-configuration в вашем приложении;
  • сделать то же самое для ключей шифрования, упомянутых jwks_uri;
  • использовать response type (такие как id_token) который не требует вызова конечной точки токена из приложения;
  • (расшифруйте и) проверьте идентификационный токен, который вы получаете от локального перенаправления пользователя в приложении, используя вышеуказанные криптографические ключи.

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

Другие вопросы по тегам