東工大のSSL-VPN接続の自動化を頑張ってみた

在宅生活で頻繁にSSL-VPN接続で学内にアクセスしなきゃいけなくなったが、だるいので無能なりに自動化を頑張ってみた。

どうやらJavascriptという言語で自動化しているらしいが、僕はJavascriptは全く知らない、JavaJavascriptの違いすら知らない系人間なのでクソコードなのは勘弁して欲しい。改良案があったらブログにコメントなりTwitterにリプなりしてください。

言語仕様全く知らないマンなのでこのURL https://qiita.com/minkmaguro/items/2bb055e5150e07054ead のコードを見様見真似で書いてみました。

当然セキュリティはガバガバなのでそこのところは個人の責任で…。

あと使用上、東工大ポータルのログインも自動化されます。機能削減したい人は頑張ってください。

前置きは以上です。

 

Google chrome想定

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. 本当はこのアプリを開くところまで自動化したかったけど僕の能力ではできませんでした。 有識者の意見求む。