# クライアントアクセス

> このステーションに接続してくる OPC UA のアプリケーションの証明書です。クライアントの登録、証明書の確認と信頼または遮断、接続アドレス、Windows ファイアウォールの規則、動いているセッション、そして信頼した一覧です。

クライアントアクセスは、Connector の OPC UA サーバーのパネルの 3 枚目のカードです。内蔵のサーバーが出会ったアプリケーション証明書と、それぞれについてあなたが決めたことの名簿です。未知の証明書は最初の試みで拒まれ、確認のためにここに保たれます。信頼すればそのアプリケーションはサーバーに届き、遮断すれば静かに締め出されます。カードの頭がそう述べます。「クライアント証明書は、接続を求めているアプリケーションが何かを示します。そのクライアントを立ち上げた担当者と照合したフィンガープリントだけを信頼してください。」Connector の表示はこのカードを読み、Connector の構成が判断します。どの判断も、ステーション自身のデスクトップで行います。

頭の下には原則が立っています。「証明書の信頼とサインインは、別々の確認です。信頼すると、このアプリケーション証明書がサーバーに届くようになります。匿名で接続するか、設定したユーザー名とパスワードで接続するかは、上の「クライアントの認証」が決めます。証明書の名前はクライアントが名乗っているだけなので、確かめるべき身元は SHA-256 のフィンガープリントです。」

## 誰が決められるか {#who-may-decide}

このカードのどのボタンも 1 つの決まりに従い、そのツールチップが、どの部分が拒んだのかを述べます。別の端末のブラウザーでは「クライアントアクセスは、ステーションのデスクトップアプリでのみ変更できます。」（カードは通知バー「クライアントアクセスを変えるには、デスクトップアプリを開いてください」も見せます。リモートのブラウザーからこの一覧を見ることはできますが、変えることはできません）。Connector の構成を持たないロールには、ボタンそのものが描かれません。ユニットが実行中の間は「ユニットが実行中の間は構成がロックされます。」。判断、取り込み、ファイアウォールのコマンドが動いている間は「別のクライアントアクセスの変更が進行中です。」。それでも通り抜けた押下には、同じ文がステータスバーで返ります。このカードのどの結末も、そこに出ます。

## クライアントを追加 {#add-client}

| コマンド | 何をするか | 灰色になるとき（状況） | 描かれないとき（ロール） |
| --- | --- | --- | --- |
| クライアントを追加 | 5 分間の待ち受けを開きます。「クライアント追加の受付を 5 分間開きました。OPC UA クライアント側で接続を始めてください。最初にこのステーションを信頼するよう求められたら、そちらで確認してからやり直してください。」開いている間、頭が残り時間（mm:ss）を脈打たせて見せます。 | 上の決まりによって。 | 受付が開いていない間に描かれます。 |
| キャンセル | 受付を閉じます。「クライアント追加の受付を閉じました。未知の証明書は接続されないままです。」 | 上の決まりによって。 | 受付が開いている間に描かれます。 |

この受付は 1 つの試みを説明するだけです。それを身元と認めることも、何かを信頼することも決してありません。開いている間、カードは注意の通知バー「クライアント証明書を待っています · mm:ss」を持ちます。「いま OPC UA クライアント側で接続を始めてください。そのクライアントがこのステーションのサーバー証明書を最初に拒む場合は、それがこの Ganter Lab のステーションであることを確かめ、クライアント側で信頼してからやり直してください。そのあと、クライアントの証明書が「承認待ち」に現れます。Ganter Lab が自動で信頼するものは何もありません。」受付は、期限で自分から切れます。

### これは追加しようとしているクライアントですか？ {#is-this-the-client-you-are-adding}

受付が開いている間に届いた証明書は、その表題の通知バーで見せられます。「「クライアントを追加」を開いている間に、あるクライアントがこの証明書を提示しました。このステーションが「予期したもの」と呼ぶ前に、立ち上げているクライアントと照合してください。答えるまでは、下の一覧で未知の証明書のままで、接続もされません。」名前、サブジェクト、フィンガープリントが添えられます。

| コマンド | 何をするか |
| --- | --- |
| これがそのクライアントです | あなたが意図したクライアントとして印を付け、受付を閉じます。「`<名前>` を、追加しようとしているクライアントとして確認し、クライアント追加の受付を閉じました。下で信頼するまでは接続されません。」承認待ちの下で、なお信頼される必要があります。 |
| これではありません | ふつうの未知の証明書のままにして、待ち受けを続けます。「`<名前>` は、確認待ちの未知の証明書のままです。クライアント追加の受付は待ち受けを続けています。」 |

受付を閉じるのは、あなたの答えか期限だけなので、ほかの誰かの試みがそれを使い切ることも、その言葉を借りることもできません。新しい受付は、前の受付で答えなかった問いを忘れます。

## 承認待ち {#pending-approval}

この組は、少なくとも 1 つの証明書が待っている間に描かれ、「未知のアプリケーションは、判断するまで接続されません。」を見出しに、件数を添えます。各行は、琥珀の点、証明書が名乗る名前、「名乗っているアプリケーションの身元」、SHA-256 のフィンガープリント、「最後の試行 `<日時>` · 接続の試行 N 回」、そして **証明書の詳細** の開閉（サブジェクト、発行者、アプリケーション URI、ドメイン名、有効期間の開始、有効期間の終了、最初に見た日時）を見せます。知らせの「確認する」が導いた行には「確認のために選択中」と印が付き、見えるところまで送られます。

| コマンド | 何をするか | 灰色になるとき（状況） |
| --- | --- | --- |
| 信頼する | その証明書を信頼したクライアントへ移し、生きた検査役を読み直させるので、クライアントはすぐにやり直せます。「`<名前>` を信頼しました。クライアントは接続をやり直せます。」 | 上の決まりによって。 |
| 遮断する | それを遮断したクライアントへ移し、それを使っているセッションを切り、以後は問いを出さずに拒み続けます。「`<名前>` を遮断しました。この証明書からの以後の試行は、拒否され続けます。」 | 上の決まりによって。 |
| 承認待ちの証明書をすべて破棄（組の頭の、危険の色で） | 「確認待ちの証明書を破棄しますか？」または「確認待ちの証明書 N 件を破棄しますか？」とたずねます（「これで信頼も遮断もされません。要求が取り除かれ、一覧にふたたび空きができます。このあと接続してきたクライアントは、新しい要求としてここに現れます。」）。**破棄する** と **一覧を残す** が付きます。そのあと「確認待ちの証明書 N 件を破棄しました。」です。 | 上の決まりによって。 |

証明書は、あなたが決めるまで接続されないままです。やり直しは、2 度目の知らせを出さずに、その試行の回数と最後の試行の時刻を書き換えます。

### 確認待ちの一覧がいっぱいです {#the-review-list-is-full}

この一覧は最大で 100 件の証明書を持ちます。いっぱいの間、さらに来た未知の証明書は、やはり拒まれますが保たれません。カードは注意の通知バーでそう述べます。「下の確認待ちの一覧がいっぱいです。この状態では、新しい証明書はここに追加されずに拒否されるため、待っているクライアントが現れないことがあります。確認待ちの証明書を破棄して空きを作ってください。」落ちたものが出たあとは「…いっぱいになってから 1 件の証明書がここに追加されずに拒否されました。待っているクライアントは、その 1 件かもしれません…」または「…N 件の証明書が…拒否されました…」となります。そうした拒否は、いずれも記録もされます。空きができると、この数え上げは 0 に戻ります。

## 接続アドレス {#connection-addresses}

「クライアントが動いている場所に合うアドレスを使ってください。」読み取り専用のアドレスが 2 つあります。ステーション自身の上のクライアントのための **このコンピューター**（`opc.tcp://localhost:<port>/UA/GanterLab`）と、LAN のよそにいるクライアントのための **ローカルネットワーク**（`opc.tcp://<network name>:<port>/UA/GanterLab`）です。名前とポートは [構成](connector-opcua-configuration) のものです。名前は **ネットワーク名** に書いた名前で、その欄が空のあいだはこのコンピューター自身の名前です。

## Windows ファイアウォール {#windows-firewall}

点と 1 つの文が、このアプリが持つ受信の規則が今のポートを許しているかどうかを述べ、許していないときは 1 つの操作を差し出します。

| 状態 | 文 |
| --- | --- |
| 許可（緑） | 「プライベートネットワークとドメインネットワークで、ポート N への OPC UA の受信接続を許可しています。」 |
| 未設定（琥珀） | 「ポート N を許可するこのアプリの規則がないため、ネットワーク上のクライアントが遮断される可能性があります。」**ローカルネットワークを許可** のボタンが描かれます。 |
| 対応していない（灰色） | 「この起動方法では Windows ファイアウォールを操作できません。必要であれば、オペレーティングシステム側で受信を設定してください。」開発版、持ち運びの実行、デモの起動、あるいはインストールされたアプリケーション以外の実行です。 |
| 不明（灰色） | 「Windows ファイアウォールの状態を確認できませんでした。」 |

| コマンド | 何をするか | 灰色になるとき（状況） |
| --- | --- | --- |
| ローカルネットワークを許可 | アプリ自身の補助を昇格して起こすので、Windows が管理者の承認を求め、そのポートの規則を、プライベートとドメインのプロファイル、そしてローカルのサブネットに絞って足します。その間は「適用しています…」と読め、そのあと「Windows ファイアウォールは、ポート N での OPC UA 接続を許可しました。」または状態の文がエラーとして出ます。承認の問いを取り消すと、状態は未設定のままです。 | 上の決まりによって（別の端末のブラウザーからは押せません）。 |

この状態は、ページが開いたときと、構成が変わるたびに読み直されます。ですからポートを変えると、新しいポートを許可するまで未設定と出ます。この規則が覆うのは OPC UA のポートだけです。Web のダッシュボードは自分の規則を持ち、それは [リモートアクセス](remote-access) が自動で当てます。

## 現在の接続 {#connected-now}

「サーバーが受け入れている、現在の OPC UA セッションです。」に件数が添えられます。表がセッションごとに並べます。状態（緑の点と「接続中」）、セッション（クライアントが付けた名前）、名乗っているクライアント（クライアントが伝えるアプリケーションかホスト）、ユーザー（サインインした正体、または匿名）、接続した日時（接続してきた時刻）です。1 つもないときは「接続中の OPC UA クライアントはありません。」です。この一覧は 1 秒ごとに新しく読まれ、サーバーが止まっている間は空です。

## 信頼したクライアント {#trusted-clients}

「今後の保護された接続を許す証明書です。」に件数が添えられます。各行は、中立の点、名乗っている名前、「名乗っているアプリケーションの身元 · `<日時>` に `<ユーザー>` が信頼」（誰もサインインしていなかったときは「このステーションで」）、フィンガープリント、そしてサブジェクト、発行者、アプリケーション URI、ドメイン名、有効期間の終了、最後に見た日時の詳細の開閉を見せます。1 つもないときは「信頼したクライアント証明書はありません。」です。

| コマンド | 何をするか | 灰色になるとき（状況） |
| --- | --- | --- |
| 証明書を取り込む（組の頭） | クライアントの公開証明書（`.der`、`.cer`、`.crt`、`.pem` で、64 KB まで）のファイルの選択を開き、最初の接続の前にそれを信頼します。「`<ファイル>` から取り込んだ `<名前>` を信頼しました。下のフィンガープリントを、クライアントが示すものと照合してください。」大きすぎるファイルは拒まれます。「`<ファイル>` はクライアント証明書としては大きすぎます。書庫ファイルではなく、公開証明書のファイル（.der、.cer、.pem）を取り込んでください。」証明書でないファイルは「`<ファイル>` を取り込めませんでした：…」です。 | 上の決まりによって。 |
| 信頼を取り消す（行の上、危険の色） | 「`<名前>` の信頼を取り消しますか？」とたずねます。「この証明書は信頼されなくなり、これを使っている現在のセッションは切断されます。ふたたび接続するには、あらためて確認が必要です。」**信頼を取り消す** と **信頼したままにする** が付きます。そのあとその証明書は遮断され、そのセッションは閉じられ、検査役が読み直されます。「`<名前>` の信頼を取り消しました。新しいセッションと再接続は遮断され、サーバーは該当する有効なセッションの終了も要求しました。」 | 上の決まりによって。 |

頭の下の案内が、この取り込みが存在する理由を述べます。「クライアントの公開証明書がすでに手元にありますか。初回の接続を一度失敗させる代わりに、ここで取り込んで先に信頼できます。取り込んだフィンガープリントは、クライアントが示すものと照合してください。」遮断されていた証明書を取り込むと、その遮断は解けます。

## 遮断したクライアント {#blocked-clients}

畳まれた開閉で、「遮断したクライアント」と件数が付き、少なくとも 1 つあるときにだけ描かれます。各行は、赤い点、名乗っている名前、「名乗っているアプリケーションの身元 · `<日時>` に `<ユーザー>` が遮断」、フィンガープリント、そして **遮断を解除** を見せます。これは、信頼せずにその証明書を承認待ちへ戻します。「`<名前>` の遮断を解除し、確認待ちに戻しました。」遮断された証明書は繰り返し問いを出さず、あなたがもう一度決めるまで締め出されたままです。

## 試みをどう知るか {#how-you-learn-of-an-attempt}

未知のアプリケーションからの最初の試みは、シェルに 1 枚の貼り付く知らせのカードを立てます。「承認待ちの OPC UA クライアント」（または「承認待ちの OPC UA クライアント N 件」）で、いちばん新しい証明書と、そのフィンガープリントの最初の何文字かを名乗り、この節をその行の上で開く **確認する** の操作が付きます。ウィンドウが隠れているときは Windows の知らせが「OPC UA の接続要求を遮断しました」、その試みがクライアントを追加の最中に届いたときは「確認待ちの OPC UA 証明書があります」と述べます。このカードは一覧に付いていきます。証明書が届くたびに置き換わり、待っているものがなくなると消えます。すでに要求が待っている状態での起動は、静かな要約のカードを 1 枚だけ戻し、Windows の知らせは出しません。クライアントの側は、あなたが信頼するまで、証明書が信頼されていないというエラーを見ます。

## 判断がどこにあるか {#where-the-decisions-live}

保管は、ステーションのデータの根の `ua\pki` の下の OPC UA のディレクトリの保管です（`trusted`、`pending`、`blocked`、SDK 自身の診断のための `rejected`、そしてステーションの証明書のための `own`）。試行の回数と判断は `client-access.json` にあります。判断は知らされる前に保管へ書かれるので、画面と生きた検査役が食い違うことはありません。保管は起動のたびにつじつまを合わせられ、明示的な遮断はいつでも信頼に勝ち、信頼は承認待ちの要求に勝ちます。これらは構成の [バックアップ](settings-backups) の一部ではありません。

## この節がしないこと {#what-this-section-does-not-do}

自動で信頼されるものは、決して、1 つもありません。保管が空だからといって受け入れが始まることはなく、探索サーバーとの連携もありません。このカードはクライアントのために証明書を作ることはせず、その証明書の信頼を取り消さずに 1 つのセッションだけを切ることもせず、クライアントごとの権利を与えることもなく（信頼したアプリケーションが持つのは、認証の方式が与える権利です）、ステーションが接続しにいく現場設備の証明書を扱うこともしません。それは [現場設備へのアクセス](driver-opc-ua#equipment-access) にあります。
