見出し画像

SeleniumでBasic認証が可能だった話@2021/11/12

こちらの続編です。

その無理だった話のほうでも既に言及してますが、extensionを使う方法ですね。一応、やってみました。私が使ったのは、TypeScript(NodeJS)です。

一応は、これで行けました。Edgeでも同じです。selenium-webdriver 4.0.0、Chrome95とEdge95です。

Firefoxについては、AutoAuthってのが使えました。

ただし、これだけではダメで、まず、Selenium用のFirefox Profileを作り、そのProfileを使って、Firefoxを起動して、その上で、上記extensionを入れて、Basic認証のあるサイトを開いて、extensionの機能を使って、ID、パスワードを記憶し、Seleniumでは、そのProfileと、extensionのファイル(xpiファイル)を指定してFirefoxを起動すれば良いです。xpiファイルはProfileのディレクトリの中にあるので、それを直接取っておけば良いです。

Firefoxのほうも、自分で超絶シンプルなextensionを完全自作する方法もないか調べたのですが、出てきませんでした。Chromeのextensionをマネしてそれっぽいものも作ったけど、それも狙い通りには動かず。。AutoAuthを使う方法はちょっと面倒ですし、ユーザーの操作に頼る所が気がかりですが、認証サイトを増やしたい時にコードを変える必要はないですね。認証を記憶する期限とかがどうなのかは気になりますが。。

検証環境はFirefox ESR 91でした。

Chrome、Edge、Firefox、いずれも、思ったよりもスムーズでした。人間が見る限りだと、Basic認証のダイアログが出ない感じで、いきなり、認証後のサイトのページが出る感じです。サーバー側の対応が無理なら、とりあえず、これですかね。ただ、これに頼って、後でダメになると、やはり、サーバー側になんとかしてもらわないといけませんが。。それの予告って意味でも、このextensionに頼る前に、一度、サーバー側担当者、ネットワーク担当者などに聞いておくのが無難でしょう。

以上。

P.S.

こういう話が出て来る背景としては、
在宅環境の普及で、
社内ネットワーク(社内VPN)を全ての通信が経由してると、
ウェブ会議とかの通信で回線がひっ迫するため、
インターネットに直接出て行くようにしていってる、
という流れがあります。
インターネットにいったん出るようになったせいで、
色々ネットワーク環境が変わってしまい、
その変わった状況でも社内サイトが見れるよう、
とりあえず、Basic認証で、と暫定対応をしている所が
増えているんだと思います。
Basic認証もhttpsであれば、
セキュリティ的には可、なんでしょうが、
Seleniumで、となると、また話が別なんですよね。

P.S. 2022/8/21

だいぶ後になってからの追記です。こちらに続編があります。

@@playwright並行すべき?


この記事が気に入ったらサポートをしてみませんか?