dlenski / gp-saml-gui

Interactively authenticate to GlobalProtect VPNs that require SAML
GNU General Public License v3.0
293 stars 66 forks source link

feat: add selenium as alternative webview for authentication #57

Open coldcoff opened 1 year ago

coldcoff commented 1 year ago

This contribution adds the possibility to have different WebView implementations. Your GTK WebKit is the default, if detected, an alternative is now Selenium. More can be added easily.

For me this is useful, because it adds the possibility to use my YubiKey.

While working on it I added some documentation for CentOS to the README and fetched a username hint from the initial PaloAlto response, that I use for the Selenium implementation lateron. (Probably this can be used in the WebKit implementation as well, but that would be a different PR).

Any questions or remarks, please let me know ;-)

coldcoff commented 1 year ago

Any chance to look at this, @dlenski ?

coldcoff commented 1 year ago

Any news here?

iamkroot commented 1 year ago

On a related note, I have a WIP implementation of using Playwright for the same purpose- https://github.com/iamkroot/gp-saml-gui/tree/playwright My approach is slightly different, but seems reconcilable.

coldcoff commented 1 year ago

That sounds interesting as well! I did not know about playwright before, thanks for that heads-up.

Yeah, reconciliation sounds like a good idea.

I know of these approaches: https://github.com/dlenski/gp-saml-gui/pull/57 (Selenium) https://github.com/iamkroot/gp-saml-gui/tree/playwright (PlayWright) https://github.com/abg1979/gp-saml-gui/commits/master (wxPython / wxCEF) https://github.com/dlenski/gp-saml-gui/issues/26 (pyqt5, not a PR, though)

Most of the forks/issues would solve the "cookie is not in headers" issue / rfe as well, just as bycatch.

Time for @dlenski to show up, sort the feedback and contributions, set the tracks as project owner, then we can contribute accordingly and bring the pieces together.

coldcoff commented 1 month ago

This is used now on a daily basis by about two dozen people. Any chance to get that merged?