東工大のSSL-VPN接続の自動化を頑張ってみた
在宅生活で頻繁にSSL-VPN接続で学内にアクセスしなきゃいけなくなったが、だるいので無能なりに自動化を頑張ってみた。
どうやらJavascriptという言語で自動化しているらしいが、僕はJavascriptは全く知らない、JavaとJavascriptの違いすら知らない系人間なのでクソコードなのは勘弁して欲しい。改良案があったらブログにコメントなりTwitterにリプなりしてください。
言語仕様全く知らないマンなのでこのURL https://qiita.com/minkmaguro/items/2bb055e5150e07054ead のコードを見様見真似で書いてみました。
当然セキュリティはガバガバなのでそこのところは個人の責任で…。
あと使用上、東工大ポータルのログインも自動化されます。機能削減したい人は頑張ってください。
前置きは以上です。
1. Tampermonkeyを入れる
https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=ja
2. スクリプト(東工大ポータルログイン自動化)の追加
右上のTampermonkeyのアイコンをクリックして新規スクリプトを追加をクリック。
qiita.com を参考に。
以下のコードをコピペ。最後の行の「学籍番号」を20DXXXXXに、「東工大ポータルのパスワード」をそのままパスワードに書き換える。
n行目のところは、学生証裏のアルファベットを一行ずつ入力。
コピペして書き換えたら保存。
// ==UserScript== // @name TokyoTech Portal Login 東工大ポータルログイン // @version 0.1 // @description A login script for TokyoTech Portal. // @match https://portal.nap.gsic.titech.ac.jp/GetAccess/Login?Template=* // @grant none // ==/UserScript== ( function(d,w,n,j,i,p,m){ var l=d.login,f=d.getElementsByTagName('input'), t, c; switch(n.search.replace(/[&?]Template=([^&]*)(&.*)?/,'$1')){ case 'userpass_key': l.usr_name.value=i; l.usr_password.value=p; l.submit(); break; case 'idg_key': while(++j-4){ t=f.item(j); c=t.parentNode.parentNode.parentNode.parentNode.getElementsByTagName('th')[0].innerHTML; t.value=m[c.match(/[1-7]/)[0].charCodeAt(0)-'1'.charCodeAt(0)].charAt(c.match(/[A-J]/)[0].charCodeAt(0)-'A'.charCodeAt(0)); } l.submit(); break; default: if(n.host+n.pathname=='wlanauth.noc.titech.ac.jp/fs/customwebauth/login.html'){ d.getElementById('username').value=i; d.getElementById('password').value=p; submitAction(); }else{ w.open('https://portal.nap.gsic.titech.ac.jp/GetAccess/Login?Template=userpass_key&AUTHMETHOD=UserPassword', '_blank'); } } } ) // Type your name, password and matrix codes. (document,window,location,0,'学籍番号','東工大ポータルのパスワード',['1行目','2行目','3行目','4行目','5行目','6行目','7行目']);
3. スクリプト(SSL-VPN用スクリプト)の追加
3-1. 「学籍番号」を20DXXXXXに、「東工大ポータルのパスワード」をそのままパスワードに書き換える。
// ==UserScript== // @name TokyoTech Portal Login SSL-VPN // @version 0.1 // @description A login script for TokyoTech Portal. // @match https://rp.nap.gsic.titech.ac.jp/vpnaccess_apm/service* // @grant none // ==/UserScript== ( function(d,p){ var l=d.form; l.username.value='学籍番号'; l.password.value=p; l.action = "https://apm.nap.gsic.titech.ac.jp/my.policy"; l.submit(); } ) // Type your name, password and matrix codes. (document,'東工大ポータルのパスワード');
3-2.
// ==UserScript== // @name Portal2matrix // @namespace http://tampermonkey.net/ // @version 0.1 // @description Transition from TokyoTech portal to matrix login // @match https://portal.nap.gsic.titech.ac.jp/portal.pl* // ==/UserScript== ( function() { location.href='https://portal.nap.gsic.titech.ac.jp/GetAccess/Login?Template=userpass_key&AUTHMETHOD=UserPassword&GAREASONCODE=-1&GARESOURCEID=f5_apm_2013&GAURI=https://rp.nap.gsic.titech.ac.jp/vpnaccess%5Fapm/service/login&Reason=-1&APPID=f5_apm_2013&URI=https://rp.nap.gsic.titech.ac.jp/vpnaccess%5Fapm/service/login' })();
3-3.
// ==UserScript== // @name Avoid Error TIT VPN // @namespace http://tampermonkey.net/ // @version 0.1 // @description Avoid Error TIT VPN // @author You // @match https://apm.nap.gsic.titech.ac.jp/my.logout.php3?errorcode=* // @grant none // ==/UserScript== ( function() { location.href = 'https://apm.nap.gsic.titech.ac.jp/' })();
4. テスト
以下のURLにアクセスすれば自動でf5vpnのアプリを開く画面まで遷移する(はず)。そこまで来たらいつも通り、f5vpnのアプリを開いてVPN接続できる。
お気に入りに入れて楽しよう。
https://rp.nap.gsic.titech.ac.jp/vpnaccess_apm/service/login
P.S. 本当はこのアプリを開くところまで自動化したかったけど僕の能力ではできませんでした。 有識者の意見求む。