【iPhone ショートカット】信州大 ACSU 自動ログイン

# はじめに
iPhoneの「ショートカット」アプリを活用して、[信州大学のネットワーク](https://www.shinshu-u.ac.jp/institution/iic/service/acsunetworksystem.html)にログインする方法を紹介します。

このページの認証方式は、「POSTリクエストによるフォーム認証」 です。基本的な仕組みから、セッション管理、セキュリティ上の注意点まで詳しく説明します。

## フォーム認証の基本的な流れ
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037462/4c8be2a7-5d39-4bb7-b675-fcff8ccd591f.png" width="50%">

このページでは、ユーザーがIDとパスワードを入力し、「Login」ボタンを押すことで、認証が行われます。具体的には、次のような流れです。

1. ユーザーがIDとパスワードを入力
    name="uid" の input フィールドに ログインID
    name="pwd" の input フィールドに パスワード を入力

2. フォームがサーバーに送信される
    `puts '<form name="Login" method="post" action="/cgi-bin/Login.cgi"> '` の設定により、入力データは POST メソッド で /cgi-bin/Login.cgi に送信される。

3. サーバー側で認証処理
サーバー側（/cgi-bin/Login.cgi）で、入力された uid と pwd をデータベースと照合し、正しければログイン成功。
認証が成功すると、ユーザーには認証済みのページが提供される（またはセッションが開始される）。

例えば、curl コマンドを使って以下のようなリクエストを送信する場合、

```
curl -L -c cookies.txt -b cookies.txt -X POST \
    -d "uid=学籍番号&pwd=パスワード" \
    https://login.shinshu-u.ac.jp/cgi-bin/Login.cgi
```

これと同じ動作を「ショートカット」アプリで実現する方法を解説します。

# 1. ショートカットの作成手順

### 1.1 新しいショートカットを作成
「ショートカット」アプリを開く
右上の「+」をタップし、「新規ショートカット」を作成
「名前」を適宜設定（例: `ACSU自動ログイン`）してください。
![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037462/e4cef16a-006f-4102-9708-8b64ecf9da26.png)

### 1.2 必要なアクションを追加
1. 「テキスト」アクションを追加
    ```
    uid=学籍番号&pwd=パスワード
    ```
    ↑ あなたの学籍番号とパスワードにしてください。
    
2. 「URLエンコード」アクションを追加
    追加したテキストにURLエンコードします。
    ![画像2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037462/64ceff64-c99c-43e3-a271-ee06a9290b93.png)

3. 「URLの内容を取得」アクションを追加
    URLに https://login.shinshu-u.ac.jp/cgi-bin/Login.cgi を入力
    
    ![画像3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037462/c1566fa4-d7e7-4b26-b21d-6778a5359f7c.png)

    「メソッド」 を POST に変更
    「ヘッダー」 を追加
        キー: Content-Type
        値: application/x-www-form-urlencoded
    ![画像4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037462/cd679824-5bf7-4e01-8e28-9cc96671d232.png)

    
    「本文を要求」 のファイルに「URLエンコード済みのテキスト」を設定
    ![画像5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037462/4a08a75d-b156-470d-959c-d842b79d1552.png)
    これで、完成！

# 2. ショートカットの実行と動作確認

作成したショートカットを実行すると、設定したサイトにPOSTリクエストが送信され、ログインが行われます。
ショートカットを実行すると、初回のみ接続の許可が問われます。「許可」をタップすると、ログインが行われます。
    ![画像6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037462/37c137f6-a560-4215-b7b2-46170c58a544.png)

「ログインに成功しました。」の表示になれば成功です。

# 3. Wi-Fi接続時に自動実行する設定（オートメーション）
オートメーションに追加すると、このショートカットをいちいち呼び出さなくても、例えば学校のWi-Fiに接続した瞬間に上記で作成したショートカットが自動で実行されます。

1. 「オートメーション」タブを開く
    「+」をタップ して、新しいオートメーションを作成
2. 「Wi-Fi」オプションを選択
    自分がよく利用する学校のWi-Fiを選択します (複数選択可)。
3. 「マイショートカット」から、今回作成した「ACSU自動ログイン」を選択

![画像7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037462/b9e31535-d5b5-4ab1-b295-6b053f969442.png)
これで設定は完了です！

オートメーションのパーソナルに追加されます。
タップすると、オートメーションの内容が確認できます
![画像8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037462/47b3cb92-a242-47c4-bda1-5372b67a8093.png)


# 3. 注意点
### 3.1 セキュリティリスク
ショートカット内にパスワードを平文で保存するのは推奨されません。
あくまで自己責任で行ってください。

### 3.2 学内ネットワークの影響
VPNが必要な場合、事前にVPNを接続してから実行する必要があります。
ネットワークが制限されている場合、POST リクエストがブロックされる可能性があります。

# 4. まとめ

iPhoneの「ショートカット」アプリを使って、POST リクエストを送信し、特定のサイトにログインする方法を紹介しました。

この方法を応用すれば、社内システムや個人のWebサービスへの自動ログイン などにも利用できます。

ぜひ試してみてください！