Добавь ручной режим SSO
This commit is contained in:
17
README.md
17
README.md
@@ -307,6 +307,7 @@ vpn # подключиться
|
||||
vpn --status # статус без нового подключения
|
||||
vpn --status --json # статус в JSON
|
||||
vpn-debug # видимый браузер и debug-логи
|
||||
vpn --manual-sso --debug # видимый браузер без auto-fill/auto-submit Keycloak
|
||||
vpn-fix-dns # сбросить корпоративные DNS после аварийного завершения
|
||||
open ~/Applications/LemanaVPN.app # открыть Swift-приложение в menu bar
|
||||
```
|
||||
@@ -369,8 +370,10 @@ curl -fsSL https://git.dokops.ru/dokril/lemana-vpn/raw/branch/main/install.sh \
|
||||
| --- | --- | --- |
|
||||
| `minimal -> offscreen` | Меняет Qt platform mode для скрытого браузера | `minimal` падает с Qt WebEngine на macOS |
|
||||
| `input/change events` | После `value = ...` отправляет DOM events | Keycloak не реагирует на прямую запись value |
|
||||
| `native value setter` | Заполняет поля через нативный setter `HTMLInputElement` | React/Keycloak корректнее видит изменение значения |
|
||||
| `URL guard` | Проверяет `location.href` через `new RegExp(...)` перед auto-fill | Qt игнорирует `@include`, без guard auto-fill может кликнуть Cisco ACS и сломать SAML |
|
||||
| `submit click guard` | Кликает submit один раз на страницу и только после заполнения поля | Без guard hidden-браузер может зациклиться на Keycloak `login-actions/authenticate` |
|
||||
| `manual SSO disable` | Позволяет отключить auto-fill через `LEMANA_VPN_AUTOFILL_DISABLE=1` | Нужен для ручной диагностики в видимом браузере |
|
||||
|
||||
Перед первым изменением CLI сохраняет оригинальный файл:
|
||||
|
||||
@@ -404,7 +407,7 @@ vpn --status
|
||||
tail -f ~/Library/Logs/LemanaVPN-openconnect-lite.log
|
||||
```
|
||||
|
||||
В обычном режиме CLI также печатает heartbeat `Still waiting for SSO/openconnect-lite...`, чтобы было понятно, что процесс живой. В `vpn-debug` дополнительно показываются raw-логи и видимый браузер.
|
||||
В обычном режиме CLI также печатает heartbeat `Still waiting for SSO/openconnect-lite...` до успешного подключения, чтобы было понятно, что процесс живой. В `vpn-debug` дополнительно показываются raw-логи и видимый браузер.
|
||||
|
||||
Если в логе повторяется один и тот же URL вида `employee.auth.lemanapro.ru/realms/employee/login-actions/authenticate`, значит hidden-браузер застрял на Keycloak до перехода в Cisco ACS. Сначала обнови и примени runtime-патчи без подключения:
|
||||
|
||||
@@ -419,14 +422,24 @@ vpn-lemanapro.sh --patch-only
|
||||
vpn-debug
|
||||
```
|
||||
|
||||
Если нужно самому посмотреть форму Keycloak и исключить влияние автоматического заполнения:
|
||||
|
||||
```sh
|
||||
vpn --manual-sso --debug
|
||||
```
|
||||
|
||||
В этом режиме браузер видимый, а `openconnect-lite` не запускает auto-fill/auto-submit. LDAP-пароль и TOTP seed всё ещё берутся из Keychain, но ввод на странице выполняется вручную.
|
||||
|
||||
Если установка падает на строке `install: /usr/local/sbin/...: No such file or directory`, значит на машине не было `/usr/local/sbin`. Актуальный `install.sh` создаёт эту директорию сам; достаточно повторить установку свежей командой `curl`.
|
||||
|
||||
CLI перед подключением патчит `openconnect-lite`:
|
||||
|
||||
- `minimal` -> `offscreen`, чтобы Qt WebEngine не падал на macOS;
|
||||
- добавляет `input` и `change` events для Keycloak auto-fill;
|
||||
- добавляет URL guard, чтобы auto-fill не кликал submit на Cisco ACS.
|
||||
- заполняет поля через native value setter;
|
||||
- добавляет URL guard, чтобы auto-fill не кликал submit на Cisco ACS;
|
||||
- добавляет submit click guard, чтобы auto-fill не отправлял одну и ту же Keycloak форму бесконечно.
|
||||
- добавляет manual SSO disable для видимой ручной диагностики без auto-fill.
|
||||
|
||||
## Удаление
|
||||
|
||||
|
||||
Reference in New Issue
Block a user