Python запрашивает аутентификацию в Google через SSO (CAS/Shibboleth)
Учреждение, с которым я работаю, использует службы Google, включая gmail, документы, листы и т. Д. Учреждение полагается на CAS для всей аутентификации, и при доступе к ресурсу Google, требующему аутентификации, я отправляю меня через различные перенаправления и методы аутентификации, прежде чем перейти к реальному ресурсу.
Например, у меня есть документ Google, которым я поделился. Если я нажму URL-адрес документа в частном браузере, я перенаправлюсь на страницу входа в Google, на которой я введу адрес электронной почты своего учебного заведения (не заканчивается на @gmail.com), затем нажмите "Далее", вместо того, чтобы перейти к стандартная страница паролей Google, я перенаправлен на страницу входа в систему CAS, где я ввожу свое имя пользователя и пароль, затем перенаправляюсь на ресурс. Проверка сетевого трафика, кажется, показывает, что я маршрутизируюсь через размещенную в организации службу Shibboleth между аутентификацией CAS и перенаправлением на фактический документ.
Я изо всех сил пытаюсь пройти через это программно. В настоящее время я использую Python с запросами (сессия). У меня нет проблем с прохождением регулярного обслуживания в CAS. Например, если на веб-сайте организации есть страница, требующая проверки подлинности CAS, я могу пройти проверку подлинности на веб-сайте через CAS через python/ запросы (сеанс), после чего я могу получить программный доступ к защищенной странице. С другой стороны, этот лабиринт аутентификации Google оказывается намного сложнее.
Я знаю, что есть OAuth-методы аутентификации в google и API-интерфейсы google для взаимодействия со службами google. Однако я не могу найти никаких следов информации, относящейся к этой конкретной проблеме аутентификации в Google с помощью сторонних настроек SSO/CAS/Shibboleth. Я уверен, что есть некоторая информация / знания там, но я изо всех сил пытаюсь найти это. Хотя в браузере мне нужно только ввести адрес электронной почты своего учебного заведения в первоначальной форме входа в Google, после чего нажатие кнопки "Далее" отправит на мою знакомую форму входа в CAS, но я не могу программно пройти через этот шаг входа в Google. Поскольку кнопка "Далее" - это функция javascript, которая, по-видимому, анализирует мой адрес электронной почты, обратите внимание, что она не заканчивается на "@gmail", а затем отправьте меня в систему единого входа, соответствующую домену электронной почты, я не могу воспроизвести ее эта цепочка событий в питоне. Итак, я нажимаю на форму ввода адреса электронной почты для Google, заполняю форму в своем электронном письме и все остальные обязательные / скрытые поля, а затем публикую эту дату обратно на тот же URL-адрес, поскольку форма не имеет атрибута действия. Как только я это сделаю, меня отправят на обычную страницу пароля Google, в форме которой теперь есть несколько удобных скрытых пар сессия / хэш-поле / значение. Но я должен быть отправлен в CAS вместо страницы пароля. В любом случае, я попытался ввести пароль (со всеми другими полями формы) и отправить его обратно самому себе, но он просто снова загружает ту же страницу формы пароля, никогда не пересылая меня в CAS
Любая помощь или обмен опытом очень ценится.