Протокол аутентификации 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 часто или нерегулярно чередует криптографические ключи, так как для их обновления вам потребуется внешний механизм.