# サインイン

> タイトルバーのユーザーチップ、サインインのダイアログと PIN のパッド、切り替えとサインアウト、正体が変わったときに開いているページに起きること、そしてブラウザーとリモートの回線がどうサインインするかです。

サインインは、画面で効いている権限を **未サインイン** のロールからそのユーザーのロールへ入れ替えます。求められることは決してありません。ステーションは歩み寄りの正体で開き、そのまま使えます。サインインの道は 1 本で、扉が 2 つあります。タイトルバーの **ユーザーチップ** と、ユーザーのページの **現在のサインイン** の根で、どちらも同じ確かめの上に同じダイアログを開きます。そもそも見ることを許されていないブラウザーは、3 つめの面、つまり表示のサインインを受け取ります。枠のない、同じパネルです。

サインインは、ステーションを変えるものではありません。無償モードの上限でランタイムが止まり、構成へのどの書き込みも拒否されている間も、使えるままです。

## ユーザーチップ {#the-user-chip}

チップはタイトルバーの右、テーマのキーと区切りのあとに、どの道でも、どの接続でも座ります。人の記号に点を添えて（サインイン中は緑、そうでなければ灰色）、サインインしている表示名を見せます。誰もいなければ **サインイン** と出ます。押すとサインインのダイアログが開きます。チップがロール名を見せることは決してありません。サインアウトしていれば行動への呼びかけ、サインインしていれば名前だからです。

## サインインのダイアログ {#the-sign-in-dialog}

ダイアログの表題は **サインイン** で、名簿が出ていてすでに誰かがサインインしているときは **ユーザーを切り替える** です。誰かがサインインしている間、その見出しは「サインイン中のユーザー **{名前}**」と読め、**サインアウト** のボタンが付きます。Esc か外側のクリックで、何も変えずに閉じます。

### 名簿 {#the-roster}

名簿は、ステーションのすべてのローカルユーザーを、名簿の順に並べます。各行に、頭文字から作った 2 文字の札、表示名、そして 2 つの印のどちらかが付きます。錠前の「PIN が必要です」か、入るときの矢印の「タップでサインインします」です。PIN のないユーザーをタップすると、その場でサインインします。PIN のあるユーザーをタップすると、PIN の段が開きます。どの画面も同じ名簿を差し出します。そこにどのロールがサインインしていても同じです。

名簿が空のとき、ダイアログは白紙の一覧の代わりに理由を見せます。

| 場面 | 文 |
| --- | --- |
| ローカルユーザーがまだない | 「このステーションには、ローカルユーザーがまだありません。最初のユーザーである主管理者は、ユーザーのページで作ります。」 |
| 公開されているデモ | 「これは公開されているデモなので、サインインできるアカウントはありません。ここにあるものは、すべて表示のみです。」 |

### PIN の段 {#the-pin-step}

PIN の段は、選んだユーザーの札と名前、名簿へ戻る **戻る** のボタン、見出しの **PIN を入力**、そして PIN のパッドを見せます。パッドは、入力した桁ごとに点を 1 つ見せる表示（桁そのものは決して見せません）を持ち、空のあいだは、パッドがキーボードの焦点を持っていれば点滅するカーソルを（焦点は段が開くときに取ります）、持っていなければ受け付ける範囲を出します。そして 1 から 9 のキー、消去のキー、0、そして 4 桁入ると点灯する確定のキーです。パッドは 6 桁で受け付けをやめます。キーボードの操作部でもあります。段が開くとパッドが焦点を取り、数字は末尾に足され、Backspace が消し、Enter が確定します。表示をクリックすると、画面上のキーボードを呼び出さずに、パッドへ焦点が戻ります。

拒否は段の上、パッドの下に留まり、次の試みのために表示を消します。

| 文 | どんなとき |
| --- | --- |
| その PIN は正しくありません。 | PIN が確かめられなかったとき。 |
| PIN の誤りが多すぎます。{待ち時間} 後にやり直してください。 | ブラウザーの回線が、誤った PIN の上限に当たったとき。待ち時間は、1 分未満は秒で、それ以上は分の単位で読めます。 |
| サインインに失敗しました。 | PIN のないユーザーが拒否されたとき（その間に名簿から消えていた場合です）。 |

サインインが飛んでいる間、名簿とパッドは動かなくなるので、二度たたいて 2 回目の試みが飛ぶことはありません。

## 切り替えとサインアウト {#switching-and-signing-out}

**ユーザーを切り替える** は、サインイン済みの画面の上に開いた同じダイアログです。別のユーザーを選ぶと、間にサインアウトを挟まずに正体が変わります。ダイアログの見出し、または現在のサインインのパネルにある **サインアウト** は、その画面を未サインインのロールに戻します。ステーション自身のウィンドウではステーションのセッションを消し、ブラウザーではその接続だけを消します。

どの結末も、その接続の操作ログ帯、つまりステータスバーで伝えられます。

| 結末 | 帯の文 |
| --- | --- |
| サインインした | {名前} としてサインインしました。 |
| 拒否、誰もサインインしていない | サインインを受け付けませんでした。誰もサインインしていません。 |
| 拒否、誰かがサインインしている | サインインを受け付けませんでした。引き続き {名前} としてサインインしています。 |
| 締め出された | PIN の誤りが多かったため、サインインを止めました。{待ち時間} 後にやり直してください。（そのあとに同じ正体の行が続きます） |
| サインアウトした | サインアウトしました。または {名前} がサインアウトしました。 |

どの試みも、イベントのコンソールに、コンポーネント **ステーションへのアクセス** の下で 1 行を残します。アカウントと、その試みがどこから来たかを名乗ります（ステーション自身のウィンドウなら「シェルの webview」、ブラウザーなら「{アドレス} のブラウザー」）。ですから、ある勤務帯の権限の引き上げを、あとから読み返せます。うまくいったサインインは、そのユーザーの最終アクセスに印を付け、名簿がそれを見せます。

## 接続ごとの正体 {#per-connection-identity}

ステーション自身のウィンドウ（デスクトップのシェルである内蔵の webview）は、**ステーションのセッション** を動かします。そこでサインインすることが、試験台でサインインすることです。ネットワークの向こうのタブレットでも、ステーション自身の機械の上でも、どのブラウザーも **自分の** 操作員を持ちます。そこでサインインしてもそのブラウザーだけが変わり、試験台で誰がサインインしているかを引き継ぐことも、変えることもありません。ユーザーチップも、現在のサインインのパネルも、画面で読まれるどの権限も、その画面の接続について答えるので、リモートの閲覧者が、ステーションに座っている管理者を借りることは決してできません。

2 つの道は、もう 1 つの点でも違います。ブラウザーの誤った PIN は、アカウントごと、アドレスごとに数えられます。続けて 5 回で 1 分のあいだ扉が閉じ、そこからさらに 5 回続くたびに待ち時間が倍になり、上限は 15 分です。失敗の連なりは、5 分静かなら忘れられます。ステーション自身のウィンドウには、意図してこの数えがありません。試験台で入力する人はその機械の前にいるのであり、締め出しは、ステーションが自分の操作員を閉め出す唯一の道になってしまうからです。

## 正体が変わると何が変わるか {#what-changes-when-the-identity-changes}

どの面も正体を生きたまま読むので、サインイン、サインアウト、ロールの編集、ユーザーの削除は、それが触れるすべての接続で、その場で効きます。

- ナビゲーションバーは、新しいロールが開ける項目で描き直されます。今いるページが、新しい正体に見えない項目に属していれば、シェルは見える最初の項目へ移ります。
- どのページも自分の権限を確かめ直します。ロールが開けない道にたどり着いたブラウザーは、ページの代わりにサインインの面を受け取ります。
- どの動詞も欄も、押されたその瞬間にロールを確かめ直すので、古い正体で描かれた画面が、その正体のまま働くことはできません。
- ユーザーのページでのロールの編集は、サインインしているかどうかによらず、そのロールを持つすべてのユーザーに届きます。名簿から削除されたユーザーは、持っていたすべての接続で未サインインのロールに落ちます。
- 表示できるロールのチェックリストによって新しいロールから隠された画面は View の一覧から消え、そのアドレスを入力しても、黙って元に戻ります。

## ブラウザーとリモートアクセス {#browsers-and-remote-access}

ステーション自身の機械の上のブラウザーは、loopback の接続です。誰かがそこでサインインするまで、未サインインのロールで、いつでも表示できます。別の機器のブラウザーは、[リモートアクセス](remote-access) が入のときにだけステーションに届き、そのうえで、その正体が **リモートアクセス（LAN）** を持つときにだけ表示できます。このスイッチは出荷時の未サインインのロールでは切なので、リモートアクセスを入にしても、その権限を持つユーザーがその機器でサインインするか、キオスクやタブレットのために歩み寄りのロールへ意図して与えるまでは、何も公開されません。

見ることを許されていないブラウザーは、どのページでもなく **表示のサインイン** を受け取ります。ブランドの印、「Ganter Lab」、「ステーション」、そしてタイトルバーもナビゲーションバーもない、そのままのサインインのパネルです。名簿の上の行が、何が拒否されたのかを名乗ります。

| 行 | どんなとき |
| --- | --- |
| ネットワークからこのステーションを見るには、サインインしてください。 | ネットワークの接続で、その正体がリモートアクセス（LAN）を持たないとき。そこにユーザーがサインインしている場合は「**{名前}** のロールには、リモートアクセスがありません。それを与えるロールのユーザーでサインインしてください。」 |
| このページを開くには、サインインしてください。 | 見ることはできる接続が、そのロールでは開けない道にいるとき。ユーザーがサインインしている場合は「**{名前}** のロールでは、このページを開けません。開けるロールのユーザーでサインインしてください。」誰もいない場合は「ここでは誰もサインインしておらず、このページは **未サインイン** のロールには開かれていません。開けるロールのユーザーでサインインしてください。」 |

未サインインのロールがリモートアクセス（LAN）を持たないネットワークの機器でサインアウトすると、その機器は表示のサインインへ戻ります。ステーションが HTTPS で配っていないかぎり（リモートアクセスの設定です）、PIN はネットワークを平文で渡ります。

## 構成済みの端末 {#configured-devices}

タブレットやコンピューターは、ステーションが見分けて行のとおりに開くよう、リモートアクセスのページで構成できます（[構成済みの端末](remote-access#configured-devices) を参照）。その設定のうち 4 つが、そこで誰がサインインしているか、またはそこで何を押せるかを変えます。

| 設定 | すること |
| --- | --- |
| 固定ユーザー | 端末はサインインなしでそのユーザーとして、そのユーザーのロールで入ります。ユーザーチップはそのユーザーの名前を示し、ページと画面はロールに従い、そこで記録された行為はそのユーザーのものです。なれるのは、ロールがリモートアクセス（LAN）を持つユーザーだけです。そのユーザーが削除されるか、ロールがその権限を失うと、設定し直すまで、端末はほかのブラウザーと同じようにサインインを求めます。 |
| その上からのサインイン | 名簿の誰でも、これまでどおり端末でサインインできます。ユーザーチップから、または開始画面に固定された端末では隅の控えめな **サインイン** のキーから、どこでも同じ PIN で入ります。端末はそのあとその人のロールになります。サインアウトすると固定ユーザーに戻り、未サインインのロールには決してなりません。サインインしても固定は決して外れません。 |
| 操作のない分数のあとの戻り | 端末がその分数のあいだ誰にも触られないと、固定ユーザーの上からサインインしていた人はサインアウトされ、端末は開始画面に戻ります。 |
| 表示のみ | 誰がサインインしていても、管理者であっても、端末からは誰も何も操作できません。どのページと画面を見せるかはロールが決めたままで、そこにあるどの操作も描かれたまま、「この端末は表示のみです。」という理由とともに淡色表示になります。画面のボタンから別の画面を開くことはでき、サインインとサインアウトもできます。 |

構成済みの端末から行われたことについて診断ログが残すどの記録にも、ユーザーの名前の横に端末の名前が付きます。

## サインインがしないこと {#what-signing-in-does-not-do}

- ランタイムを止めることも、始めることも、変えることもせず、内蔵の OPC UA サーバーにも、MCP でつながったエージェントにも影響しません。
- ステーションを Ganter アカウントにサインインさせることはしません。それは [アカウント](account-ganter-account) のページであり、ユーザーではなくステーションに属します。
- そのロールが持っていないものを開くことはありません。引き上げられるのはちょうどそのロールのスイッチの分だけで、一時的な上書きも、ユーザーごとの例外もありません。
- 誤った PIN のあとにステーション自身のウィンドウを締め出すことはなく、PIN を覚えることも決してありません。
- 公開されているデモでは、そもそも試せません。その名簿は、作りとして空だからです。
