上述した提案では、ユーザの認証手続を行うために、ユーザの属性データをICチップ等に記憶させたデータカードの所持が必須となる。
本開示は前記事情に鑑みなされたもので、本開示の目的は、必要な権限を有していないリモートユーザからの不正な、あるいは、間違った処理要求が、ローカルユーザの端末で実行されてしまうのを、極力回避することにある。
上記目的を達成するため、本開示の第1の態様による組込制御装置は、
ローカルユーザの端末にネットワークを介して間接的にログインしたリモートユーザからの処理要求に呼応して、前記ログインしたリモートユーザの認証情報の入力要求を前記ネットワークに出力する認証要求部と、
前記入力要求に呼応して前記ネットワークから入力された前記認証情報によって特定される前記処理要求の要求元のリモートユーザに付与された権限と、前記ログインしたリモートユーザからの前記処理要求の実行に必要な権限との照合結果に応じて、該処理要求を実行又は破棄する制御部と、
を備える。
本開示の第1の態様による組込制御装置によれば、リモートユーザからの処理要求がネットワークを介してログイン先のローカルユーザの端末に入力されると、ログインしたリモートユーザの認証情報の入力要求がネットワークに出力される。この入力要求に呼応してリモートユーザの認証情報がネットワークから入力されると、入力された認証情報から特定される処理要求の要求元のリモートユーザに付与された権限と、リモートユーザからの処理要求の実行に必要な権限とが照合される。
なお、リモートユーザからの処理要求の実行に必要な権限は、処理要求の実行に必要な権限が処理要求の内容毎に定義された要求権限テーブルから特定することができる。また、処理要求の要求元のリモートユーザに付与された権限は、ユーザ毎に付与された権限が定義された付与権限テーブルから特定することができる。
そして、2つの権限を照合した結果、ローカルユーザの端末に出力した処理要求の実行に必要な権限を処理要求の要求元のリモートユーザが有していれば、リモートユーザからの処理要求がローカルユーザの端末の制御部により実行される。一方、2つの権限を照合した結果、ローカルユーザの端末に出力した処理要求の実行に必要な権限を処理要求の要求元のリモートユーザが有していなければ、リモートユーザからの処理要求がローカルユーザの端末の制御部により破棄される。
したがって、必要な権限を有していないリモートユーザからの不正な、あるいは、間違った処理要求が、ローカルユーザの端末で実行されてしまうのを、極力回避することができる。
また、本開示の第2の態様による組込制御装置は、本開示の第1の態様による組込制御装置において、前記処理要求の実行に必要な権限が前記処理要求の内容毎に定義された要求権限テーブルを保持する要求権限テーブル部と、前記リモートユーザに付与された権限がユーザ毎に定義された付与権限テーブルを保持する付与権限テーブル部と、該付与権限テーブルに定義された前記処理要求の要求元のリモートユーザの権限を、前記要求権限テーブルに定義された前記ログインしたリモートユーザからの前記処理要求の実行に必要な権限と照合して、該処理要求の実行の可否を判定する判定部とをさらに備え、前記制御部は、前記判定部の判定結果に応じて、前記ログインしたリモートユーザからの前記処理要求を実行又は破棄する。
本開示の第2の態様による組込制御装置によれば、本開示の第1の態様による組込制御装置において、リモートユーザからの処理要求の実行に必要な権限と、処理要求の要求元のリモートユーザに付与された権限とが、組込制御装置において特定される。このとき、両権限の特定には、組込制御装置の要求権限テーブル部及び付与権限テーブル部にそれぞれ保持された要求権限テーブル及び付与権限テーブルが利用される。
また、組込制御装置の判定部において、先に特定された両権限の照合が行われる。この照合は、ローカルユーザの端末に出力した処理要求の実行に必要な権限を処理要求の要求元のリモートユーザが有しているか否かを確認するために行われる。判定部においてはさらに、リモートユーザからの処理要求を実行可とするか実行不可とするかが、特定された両権限の照合結果によって決定される。
このため、リモートユーザの端末から入力された処理要求を実行するか破棄するかを組込制御装置自身が決定する運用を、実現することができる。
さらに、本開示の第3の態様による組込制御装置は、本開示の第1又は第2の態様による組込制御装置において、前記ログインしたリモートユーザからの前記処理要求に対する前記制御部の実行又は破棄の履歴リストを生成するリスト生成部と、前記リモートユーザに付与された権限がユーザ毎に定義された付与権限テーブルを保持する付与権限テーブル部とをさらに備え、前記制御部は、前記ログインしたリモートユーザからの前記処理要求が前記履歴リストの閲覧要求である場合、前記処理要求の実行により前記ログインしたリモートユーザによる前記履歴リストの閲覧を許可し、前記処理要求の破棄により前記ログインしたリモートユーザによる前記履歴リストの閲覧を拒否する。
本開示の第3の態様による組込制御装置によれば、本開示の第1又は第2の態様による組込制御装置において、リモートユーザからの処理要求を制御部が実行したか破棄したかが、リスト生成部で生成される履歴リストに記録される。
そして、リモートユーザからの処理要求として履歴リストの閲覧要求が入力されると、そのリモートユーザに付与された権限と、履歴リストを閲覧するのに必要な権限との照合結果に応じて、履歴リストの閲覧が許可又は拒否される。なお、履歴リストの閲覧の可否は、付与権限テーブル部を組込制御装置自身が有していることで実現可能となる。
したがって、リモートユーザがローカルユーザの端末に、実行させる権限を有する処理要求及び実行させる権限を有していない処理要求をそれぞれ出力した履歴を記録した履歴リストを、閲覧権限を有するリモートユーザに限定して閲覧させることができる。また、閲覧を許可されたリモートユーザは、閲覧した履歴リストの内容を、組込制御装置の運用状態を管理する情報等として利用することができる。
また、本開示の第4の態様による組込制御装置は、本開示の第1の態様による組込制御装置において、前記処理要求の実行に必要な権限が前記処理要求の内容毎に定義された要求権限テーブル及び前記リモートユーザに付与された権限がユーザ毎に定義された付与権限テーブルを保持する外部の認証サーバに、前記ログインしたリモートユーザからの前記処理要求、及び、前記入力要求に呼応して前記ネットワークから入力された前記認証情報を通知する通知部をさらに備え、前記制御部は、前記通知された前記認証情報から特定される前記処理要求の要求元のリモートユーザについて前記付与権限テーブルに定義された権限を、前記ログインしたリモートユーザからの前記処理要求について前記要求権限テーブルに定義された該処理要求の実行に必要な権限と照合した前記認証サーバから、前記通知に呼応して返送される、前記ログインしたリモートユーザからの前記処理要求の実行可否の判定結果に応じて、前記ログインしたリモートユーザからの前記処理要求を実行又は破棄する。
本開示の第4の態様による組込制御装置によれば、本開示の第1の態様による組込制御装置において、リモートユーザからの処理要求と、処理要求の要求元のリモートユーザの認証情報とが、通知部により、ローカルサーバの端末から認証サーバに通知される。
認証サーバでは、要求権限テーブル部及び付与権限テーブル部の各テーブルにより、組込制御装置から通知された処理要求の実行に必要な権限と、認証情報から特定される処理要求の要求元のリモートユーザに付与された権限とが特定される。
また、認証サーバでは、特定された両権限の照合が行われる。この照合は、ローカルユーザの端末に出力した処理要求の実行に必要な権限を処理要求の要求元のリモートユーザが有しているか否かを確認するために行われる。そして、認証サーバでは、特定された両権限の照合結果によって、リモートユーザの端末からの処理要求を実行可とするか実行不可とするかが判定される。
リモートユーザの端末からの処理要求を実行可とするか実行不可とするかの判定結果が認証サーバから返送された組込制御装置の制御部は、返送された判定結果に応じて、リモートユーザの端末から入力された処理要求を実行又は破棄する。
このため、リモートユーザの端末から入力された処理要求を実行するか破棄するかを組込制御装置が決定するのに必要な処理を、全て認証サーバにおいて実行する運用を、実現することができる。そして、組込制御装置の処理の負担を軽減させることができる。
さらに、本開示の第5の態様による組込制御装置は、本開示の第1、第2、第3又は第4の態様による組込制御装置において、回路基板に実装する設定用抵抗の抵抗値に応じた電位の変更によりセキュリティのオンオフの設定が切り替わる設定回路部をさらに備え、該設定回路部にセキュリティのオフが設定されているときに、前記認証要求部は、前記ログインしたリモートユーザの認証情報の入力要求の出力を省略し、前記制御部は、前記ログインしたリモートユーザからの前記処理要求を無条件で前記制御部に実行させる。
本開示の第5の態様による組込制御装置によれば、本開示の第1、第2、第3又は第4の態様による組込制御装置において、回路基板に実装する設定用抵抗の抵抗値に応じて設定回路部の電位を変更すると、セキュリティのオンオフの設定が切り替わる。
そして、セキュリティがオフに設定されているときには、リモートユーザの端末から処理要求が入力されても、そのリモートユーザの端末には認証情報の入力要求が出力されない。したがって、認証情報のユーザに付与された権限と、リモートユーザの端末から入力された処理要求の実行に必要な権限との照合も行われない。そして、リモートユーザの端末から入力された処理要求は、その処理要求の実行に必要な権限を有していないユーザの処理要求であっても無条件で実行される。
一方、セキュリティがオンに設定されているときには、リモートユーザの端末から処理要求が入力されると、そのリモートユーザの端末に認証情報の入力要求が出力され、リモートユーザの端末に入力されたユーザの認証情報が入力される。したがって、認証情報のユーザに付与された権限と、リモートユーザの端末から入力された処理要求の実行に必要な権限との照合が行われ、必要な権限を有していないユーザによる処理要求は、実行されずに破棄される。
このため、例えば、開発環境を有するリモートユーザの端末を通信部に接続する組込制御装置の開発中には、セキュリティがオフとなる抵抗値の設定用抵抗を回路基板に実装した状態として、リモートユーザの端末からの処理要求が無条件で実行される状態とする。これにより、組込制御装置の開発中には、開発に従事するユーザが通信部に接続した開発環境を有するリモートユーザの端末からの処理要求が、ユーザの権限の認証処理を経ることなく迅速に実行される。
一方、開発が終了した組込制御装置を運用に供する際には、セキュリティがオンとなる抵抗値の設定用抵抗を回路基板に実装した状態として、リモートユーザの端末からの処理要求がユーザの権限の認証処理を経て実行される状態とする。これにより、運用に供された組込制御装置では、通信部に接続したリモートユーザの端末からの設定変更等の処理要求が、その実行に必要な権限をユーザが有している場合に限って実行される。
そして、開発が終了した組込制御装置を運用に供する際に、設定回路部の回路基板を例えば組込制御装置の筐体内に収容し、設定用抵抗を外したり抵抗値の異なるものに交換できないようにすれば、組込制御装置のセキュリティはオンのまま変更できなくなる。
したがって、開発が終了して運用に供された組込制御装置に、通信部に接続されたリモートユーザの端末からの処理要求が、セキュリティがオフの状態で入力されることは、起こりにくくなる。このため、開発者以外のユーザもリモートユーザの端末を接続できる運用中の組込制御装置の通信部に、権限のないユーザのリモートユーザの端末が接続されても、そのリモートユーザの端末から入力される不正な、あるいは、間違った処理要求を破棄し、実行されないようにすることができる。
また、上記目的を達成するため、本開示の第6の態様による組込制御装置の処理要求認証方法は、
ローカルユーザの端末にネットワークを介して間接的にログインしたリモートユーザからの処理要求を前記ネットワークから取り込む処理要求取得ステップと、
前記ログインしたリモートユーザの認証情報の入力要求を前記ネットワークに出力する認証要求ステップと、
前記入力要求に呼応して前記ネットワークから入力された前記認証情報によって前記処理要求の要求元のリモートユーザを特定する特定ステップと、
前記処理要求の要求元のリモートユーザに付与された権限と、前記ネットワークから取り込んだ前記処理要求の実行に必要な権限との照合結果に応じて、前記ネットワークから取り込んだ前記処理要求の実行の可否を判定する判定ステップと、
前記判定ステップの判定結果に応じて、前記ネットワークから取り込んだ前記処理要求を実行又は破棄する処理ステップと、
を含む。
本開示の第6の態様による組込制御装置の処理要求認証方法によれば、ローカルユーザの端末にネットワークを介して間接的にログインしたリモートユーザから処理要求が入力されると、そのリモートユーザの認証情報の入力要求がネットワークに出力される。
認証情報の入力要求に呼応してネットワークから認証情報が入力されると、入力された認証情報から、処理要求の要求元のリモートユーザが特定される。そして、特定された処理要求の要求元のリモートユーザに付与された権限と、リモートユーザからの処理要求の実行に必要な権限との照合結果に応じて、リモートユーザからの処理要求の実行可否が判定される。
そして、実行可と判定された処理要求はローカルユーザの端末において実行され、実行不可と判定された処理要求はローカルユーザの端末において実行されずに破棄される。
したがって、必要な権限を有していないリモートユーザの端末からの不正な、あるいは、間違った処理要求が、組込制御装置において実行されてしまうのを、極力回避することができる。
さらに、本開示の第7の態様による組込制御装置の処理要求認証方法は、本開示の第6の態様による組込制御装置の処理要求認証方法において、前記処理ステップにおける前記ネットワークから取り込んだ前記処理要求の実行又は破棄の履歴リストを生成するリスト生成ステップをさらに含み、前記処理ステップは、前記ネットワークから取り込んだ前記処理要求が前記履歴リストの閲覧要求である場合、前記処理要求の実行により前記処理要求の要求元のリモートユーザによる前記履歴リストの閲覧を許可し、前記処理要求の破棄により前記処理要求の要求元のリモートユーザによる前記履歴リストの閲覧を拒否する。
本開示の第7の態様による組込制御装置の処理要求認証方法によれば、本開示の第6の態様による組込制御装置の処理要求認証方法において、リモートユーザからの処理要求が実行又は破棄されると、その結果が履歴リストに記録される。
そして、リモートユーザからの処理要求として履歴リストの閲覧要求が入力されると、閲覧要求の要求元のリモートユーザに付与された権限と、履歴リストを閲覧するのに必要な権限との照合結果に応じて、履歴リストの閲覧が許可又は拒否される。
したがって、リモートユーザがローカルユーザの端末に、実行させる権限を有する処理要求及び実行させる権限を有していない処理要求をそれぞれ出力した履歴を記録した履歴リストを、閲覧権限を有するリモートユーザに限定して閲覧させることができる。また、閲覧を許可されたリモートユーザは、閲覧した履歴リストの内容を、組込制御装置の運用状態を管理する情報等として利用することができる。
本開示によれば、必要な権限を有していないリモートユーザの端末から入力された不正な処理要求、あるいは、間違った処理要求が、極力実行されないようにすることができる。
以下、本開示の実施形態について図面を参照しながら説明する。図1は本開示の一実施形態に係る組込制御装置とこれにリモート接続された外部端末とを示すブロック図である。
図1に示す実施形態の組込制御装置100(ローカルユーザの端末)は、CPU101、回路基板103、通信部105、プログラム記憶部107及びデータ記憶部109を有している。回路基板103、通信部105、プログラム記憶部107及びデータ記憶部109は、CPU101に接続されている。
CPU101は、後述するプログラム記憶部107のプログラムを実行することで、CPU101上に制御部111、認証要求部113、判定部115及びリスト生成部116を仮想的に構築する。制御部111、認証要求部113、判定部115及びリスト生成部116が行う処理は、後にフローチャートを参照して説明する。
回路基板103は、組込制御装置100のモード設定用に設けられている。回路基板103には、必要に応じてモード設定用の抵抗117(設定用抵抗)を実装することができる。回路基板103及び抵抗117は、設定回路部118を構成している。
本実施形態では、組込制御装置100の開発中には、回路基板103に抵抗117が実装されない。このため、組込制御装置100の開発中には、CPU101が検出する回路基板103のモード設定電位は、セキュリティ解除(オフ)モードを示す高電位(H)となる。
セキュリティ解除モードの組込制御装置100では、後述するプログラム記憶部107に記憶されているプログラム、設定値等のファイルの内容編集を、通信部105に接続した後述の外部端末200を用いて無制限に行うことができる。
一方、組込制御装置100の開発が終了して運用に供する際には、回路基板103に抵抗117が実装される。このため、組込制御装置100の運用中には、CPU101が検出する回路基板103のモード設定電位は、セキュリティ実行(オン)モードを示す低電位(L)となる。
セキュリティ実行モードの組込制御装置100では、後述するプログラム記憶部107に記憶されている設定値ファイルの内容編集を、通信部105に接続した後述の外部端末200を用いて、権限を有するユーザが限定的に行うことができる。
なお、組込制御装置100の開発中と運用中とで、回路基板103に対する抵抗117の実装状態を逆にして、設定回路部118を構成してもよい。この場合、セキュリティ解除モードを示す回路基板103のモード設定電位は低電位(L)となり、セキュリティ実行モードを示す回路基板103のモード設定電位は高電位(H)となる。
また、回路基板103に抵抗117を実装した後、あるいは、回路基板103に実装した抵抗117を外した後に、設定回路部118を組込制御装置100の筐体で覆い、回路基板103に対する抵抗117の実装状態を変更できないようにしてもよい。
通信部105には、有線又は無線のネットワーク119によって外部端末200の通信部201を接続することができる。組込制御装置100及び外部端末200の各通信部105,201は、組込制御装置100及び外部端末200間の通信を制御する通信インタフェースである。
組込制御装置100には、組込制御装置100の開発環境を有している外部端末200と、開発環境を有していない外部端末200との、どちらも接続することができる。
組込制御装置100に接続した外部端末200は、ログイン操作を行うことで、組込制御装置100にネットワーク119を介して間接的にログインするリモートユーザの端末として機能させることができる。外部端末200の組込制御装置100に対するログイン操作は、例えば、ユーザID及びパスワードの入力による、従来公知の一般的なものとすることができる。
外部端末200は、上述した通信部201の他、CPU203、記憶部205、入力部207及び表示部209等を有している。
CPU203は、組込制御装置100へのログイン後に記憶部205のプログラムを実行することで、入力部207の入力操作に応じた内容のコマンドを生成し、ネットワーク119を介して組込制御装置100のCPU101に出力することができる。CPU203が生成するコマンドは、組込制御装置100のCPU101に実行を要求する処理を示すコマンド(処理要求)である。
記憶部205は、例えば、不揮発メモリ(フラッシュメモリ)又はハードディスクドライブによって構成することができる。
組込制御装置100の開発環境を有している外部端末200の記憶部205には、組込制御装置100のプログラム記憶部107のプログラムファイル及び設定ファイル等の編集プログラムがインストールされている。組込制御装置100の開発環境を有していない外部端末200の記憶部205には、組込制御装置100のプログラム記憶部107の設定ファイル等の編集プログラムのみがインストールされている。
組込制御装置100の開発環境を有している外部端末200の編集プログラムによるプログラム記憶部107のプログラムファイル及び設定ファイル等の編集は、組込制御装置100が開発中でセキュリティ解除モードとなっているときに行える。しかし、組込制御装置100が運用中でセキュリティ実行モードとなっているときは、プログラム記憶部107の設定ファイル等の編集しか行えない。
このため、組込制御装置100の開発環境を有している外部端末200は、プログラム記憶部107のプログラムファイル及び設定ファイル等の編集が行える、開発中でセキュリティ解除モードとなっている組込制御装置100に接続される。
一方、組込制御装置100の開発環境を有していない外部端末200の編集プログラムによるプログラム記憶部107の設定ファイル等の編集は、組込制御装置100が開発中でセキュリティ解除モードとなっているときに行える。また、組込制御装置100が運用中でセキュリティ実行モードとなっているときでも、ユーザに権限があれば行える。
このため、組込制御装置100の開発環境を有していない外部端末200は、開発中でセキュリティ解除モードとなっている組込制御装置100に加えて、運用中でセキュリティ実行モードとなっている組込制御装置100にも接続される。
入力部207は、例えば、キーボード、マウス、表示部209の画面に設けられたタッチパネル等によって構成することができる。また、入力部207の入力内容は、例えば、表示部209に表示されるUI(ユーザインタフェース)画面において確認することができる。表示部209は、例えば、液晶ディスプレイによって構成することができる。
以上に説明した外部端末200が通信部105に接続される組込制御装置100のプログラム記憶部107は、例えば、不揮発メモリ(フラッシュメモリ)、ハードディスクドライブ、又はそれらの組み合わせによって構成することができる。
プログラム記憶部107には、上述したように、プログラムファイル及び設定ファイル等が記憶される。プログラムファイルのプログラムは、制御内容に応じた値又はステータス等が設定される変数要素を含んでいる。この変数要素に適用する値又はステータス等は、プログラムのファイルとは独立した別のファイルにすることができる。そこで、本実施形態では、プログラム中の変動要素に適用する値又はステータス等を、上述した設定ファイルとして、プログラム記憶部107に記憶させている。
データ記憶部109は、例えば、不揮発メモリ(フラッシュメモリ等)、ハードディスクドライブ、又はそれらの組み合わせによって構成することができる。データ記憶部109には、要求権限テーブル部120、付与権限テーブル部121及び履歴リスト部123の各記憶領域が設けられる。
要求権限テーブル部120には、要求権限テーブルが記憶されている。要求権限テーブルには、組込制御装置100のリモートユーザがリモートアクセスにより組込制御装置100のCPU101に要求する処理の実行に必要な権限が、処理項目毎に定義されている。組込制御装置100のリモートユーザとは、組込制御装置100に接続される外部端末200のユーザである。
図2(a)の説明図に示すように、要求権限テーブル125では、処理の実行に必要な権限を、例えば、高い方から順に「管理者」、「ユーザ」、「ゲスト」の3段階で定義することができる。要求権限テーブル125に定義された権限の内容は、例えば、「管理者」の権限を有するユーザによって更新することができる。
図2(a)では、要求権限テーブル125において、組込制御装置100の制御対象の「運転開始時刻設定」及び「処理速度設定」の実行に必要な権限と、履歴リスト部123の後述する「履歴リスト閲覧」の実行に必要な権限とを定義した例を示している。なお、「履歴リスト閲覧」とは、図1の履歴リスト部123に記憶された後述の履歴リスト129(図3参照)の閲覧のことである。
図1の付与権限テーブル部121には、付与権限テーブルが記憶されている。付与権限テーブルには、組込制御装置100のリモートユーザ(組込制御装置100に接続される外部端末200のユーザ)に付与された権限が、ユーザ毎に定義されている。
図2(b)の説明図に示すように、付与権限テーブル127でも、例えば、図2(a)の要求権限テーブルと同じように、ユーザ毎の権限を「管理者」、「ユーザ」、「ゲスト」の3段階で定義することができる。また、付与権限テーブル127では、ユーザ毎の権限を、要求する処理の項目毎に個別に定義することができる。要求権限テーブルに定義された権限の内容は、例えば、要求権限テーブルと同じく、「管理者」の権限を有するユーザによって更新することができる。
図1の履歴リスト部123には、履歴リストが記憶されている。図3の説明図に示すように、履歴リスト129には、外部端末200のユーザがリモートアクセスにより組込制御装置100のCPU101に要求した処理を、CPU101の後述する制御部111が実行又は破棄した履歴が記録されている。履歴リストの履歴は、制御部111が、外部端末200のユーザが要求した処理を実行又は破棄する度に更新する。
次に、図1の組込制御装置100のCPU101がプログラム記憶部107のプログラムにしたがって、外部端末200からの処理要求の認証処理を行う。この処理で実行される外部端末200からの処理要求の認証方法は、図4のフローチャートに示すステップを含んでいる。
即ち、外部端末200からの処理要求を認証する方法は、処理要求取得、認証要求、特定、判定、処理、及び、リスト生成の各ステップ(ステップS1、ステップS3、ステップS5、ステップS7、ステップS9及びステップS11)を含んでいる。
このうち、ステップS1の処理要求取得ステップは、ネットワーク119を介して組込制御装置100に接続しログインした外部端末200からの、リモートアクセスによる処理要求を、組込制御装置100のCPU101に取り込むステップである。
また、ステップS3の認証要求ステップは、ステップS1の処理要求取得ステップにおいて組込制御装置100のCPU101に取り込んだ処理要求の要求元の外部端末200に、ユーザの認証情報の入力を要求するステップである。
ユーザの認証情報の入力要求を受け取った外部端末200では、CPU203によって記憶部205のプログラムが実行されて、ユーザの認証情報の入力画面が表示部209に表示される。この入力画面上で入力部207の入力操作により外部端末200のユーザの認証情報が入力されると、その認証情報は、ネットワーク119を介して組込制御装置100のCPU101に入力される。
さらに、ステップS5の特定ステップは、外部端末200から入力された認証情報によって、ステップS1の処理要求取得ステップで取り込んだ処理要求の要求元の外部端末200のユーザを特定するステップである。
また、ステップS7の判定ステップは、ステップS1の処理要求取得ステップで取り込んだ外部端末200からの処理要求の実行の可否を判定するステップである。
この判定ステップでは、処理要求の要求元の外部端末200のユーザに付与された権限と、ステップS1の処理要求取得ステップで取り込んだ処理要求の実行に必要な権限とを、組込制御装置100のCPU101が照合する。
そして、組込制御装置100のCPU101が、処理要求取得ステップで取り込んだ処理要求の実行に必要な権限を、処理要求の要求元の外部端末200のユーザが有しているか否かを確認する。また、その結果によって、組込制御装置100のCPU101が、処理要求取得ステップで取り込んだ外部端末200からの処理要求の実行の可否を判定する。
さらに、ステップS9の処理ステップは、ステップS7の判定ステップで判定した結果にしたがって、組込制御装置100のCPU101が、外部端末200からの処理要求を実行又は破棄するステップである。
この処理ステップでは、ステップS7の判定ステップで実行可と判定された外部端末200からの処理要求が、組込制御装置100のCPU101によって実行される。なお、ステップS7の判定ステップで実行不可と判定された外部端末200からの処理要求は、組込制御装置100のCPU101によって破棄されて実行されない。
最後に、ステップS11のリスト生成ステップは、ステップS9の処理ステップで外部端末200からの処理要求を実行又は破棄した結果の履歴リストを、組込制御装置100のCPU101が生成するステップである。
以上の各ステップは、図4のフローチャートに示した順番通りの手順で行われるとは限らない。各ステップの全体又は一部は、図4に示した順番とは異なる手順で行うこともできる。
次に、図4に示した方法で外部端末200からの処理要求を認証するために、組込制御装置100のCPU101がプログラム記憶部107のプログラムにしたがって行う処理の手順の一例を説明する。
図5は、組込制御装置100のCPU101がプログラム記憶部107のプログラムにしたがって行う外部端末200からの処理要求に対する処理の手順の一例を示すフローチャートである。
まず、組込制御装置100のCPU101は、通信部105に接続された外部端末200のログインの有無を確認する(ステップS21)。ログインがない場合は(ステップS21でNO)、ステップS21をリピートする。また、ログインがあった場合は(ステップS21でYES)、CPU101は、ログインした外部端末200からの処理要求の入力を取得したか否かを確認する(ステップS23)。
処理要求を取得していない場合は(ステップS23でNO)、ステップS23をリピートし、処理要求を取得した場合は(ステップS23でYES)、CPU101は、組込制御装置100がセキュリティ実行モードであるか否かを確認する(ステップS25)。
セキュリティ実行モードでない場合は(ステップS25でNO)、後述するステップS37に処理を移行する。また、セキュリティ実行モードである場合は(ステップS25でYES)、CPU101は、ログインした外部端末200にユーザの認証情報の入力を要求する(ステップS27)。
そして、CPU101は、認証情報の入力要求に呼応して、ログインした外部端末200からユーザの認証情報が入力されたか否かを確認する(ステップS29)。認証情報が入力されていない場合は(ステップS29でNO)、ステップS25又はステップS27にリターンする。また、認証情報が入力された場合は(ステップS29でYES)、CPU101は、入力された認証情報から、ログインした外部端末200のユーザを特定する(ステップS31)。
さらに、CPU101は、ステップS31で特定された外部端末200のユーザに付与された権限と、ステップS23で取得した処理要求の実行に必要な権限とを照合する(ステップS33)。
なお、CPU101は、ステップS31で特定された外部端末200のユーザに付与された権限を、付与権限テーブル部121の付与権限テーブル127を参照して特定する。また、CPU101は、ステップS23で取得した処理要求の実行に必要な権限を、要求権限テーブル部120の要求権限テーブル125を参照して特定する。
次に、CPU101は、ステップS23で取得した処理要求の実行の可否を決定する(ステップS35)。ステップS23で取得した処理要求の実行の可否は、この処理要求の実行に必要な権限を、ステップS31で特定された外部端末200のユーザが有しているか否かを確認することで、決定することができる。処理要求を実行可と決定した場合は(ステップS35でYES)、ステップS37に処理を移行する。
ステップS37では、CPU101は、ステップS23で取得した処理要求を組込制御装置100で実行する。そして、後述するステップS43に処理を移行する。
例えば、ステップS23で取得した処理要求が、「運転開始時刻設定」又は「処理速度設定」の設定値の変更である場合は、プログラム記憶部107に記憶された設定ファイルにおけるそれらの設定内容を処理要求の内容に書き換えて、処理要求を実行する。
一方、ステップS23で取得した処理要求が、「履歴リスト閲覧」である場合は、履歴リスト部123の履歴リスト129を、ステップS31で特定された外部端末200の表示部209に表示させて閲覧させることで、処理要求を実行する。
また、ステップS35において、処理要求を実行不可と決定した場合(NO)は、CPU101は、ステップS23で取得した処理要求を破棄する(ステップS39)。そして、CPU101は、処理要求の要求元であるログインした外部端末200に、処理要求を破棄した旨を通知し(ステップS41)、ステップS43に処理を移行する。
ステップS43では、CPU101は、履歴リスト部123の履歴リスト129を更新する。具体的には、CPU101は、ステップS37で処理要求を実行した履歴、又は、ステップS39で処理要求を破棄した履歴を、処理要求の要求元である外部端末200のステップS31で特定したユーザ(のID)と共に、履歴リスト129に追加する。
続いて、CPU101は、ステップS21でログインを確認した外部端末200がログアウトしたか否かを確認する(ステップS45)。ログアウトしていない場合は(ステップS45でNO)、ステップS23にリターンし、ログアウトした場合は(ステップS45でYES)、一連の処理を終了する。
以上の説明からも明らかなように、本実施形態では、図5のフローチャートにおけるステップS27が、認証要求部113が行う処理に対応している。また、本実施形態では、図5中のステップS33及びステップS35が、判定部115が行う処理に対応している。さらに、本実施形態では、図5中のステップS37及びステップS39が、制御部111が行う処理に対応している。
以上に説明した本実施形態の組込制御装置100によれば、組込制御装置100にログインした外部端末200からの処理要求が組込制御装置100に入力されると、その外部端末200のユーザの認証情報の入力要求が外部端末200に出力される。そして、この入力要求に呼応して、組込制御装置100にログインした外部端末200からユーザの認証情報が組込制御装置100に入力される。
さらに、組込制御装置100に入力された認証情報から、組込制御装置100にログインした外部端末200のユーザが特定され、特定されたユーザに付与された権限と、ログインした外部端末200からの処理要求の実行に必要な権限とが照合される。
そして、2つの権限を照合した結果、組込制御装置100にログインした外部端末200からの処理要求の実行に必要な権限を、その外部端末200のユーザが有していれば、ログインした外部端末200からの処理要求が組込制御装置100において実行される。一方、2つの権限を照合した結果、組込制御装置100にログインした外部端末200からの処理要求の実行に必要な権限を、その外部端末200のユーザが有していなければ、ログインした外部端末200からの処理要求が組込制御装置100において破棄される。
したがって、組込制御装置100にログインした、必要な権限を有していない外部端末200のユーザからの、不正な、あるいは、間違った処理要求が、組込制御装置100で実行されてしまうのを、極力回避することができる。
なお、本実施形態では、外部端末200からの処理要求の認証方法において履歴リスト生成ステップを行い、外部端末200からの処理要求を実行又は破棄した結果の履歴リスト129をデータ記憶部109の履歴リスト部123に追加記録する構成とした。そして、組込制御装置100にログインした外部端末200からの処理要求が履歴リスト129の閲覧であるときには、閲覧の権限を有しているユーザの外部端末200の表示部209において、履歴リスト129を閲覧させるようにした。
このため、閲覧権限を有している外部端末200のユーザに履歴リスト129を閲覧させて、外部端末200からの処理要求の実行に関する組込制御装置100の運用状態を管理する情報等として利用させることができる。
また、本実施形態では、組込制御装置100の開発中と運用中とで、回路基板103に抵抗117を実装するか否かを変えて、組込制御装置100のモードを開発中にはセキュリティ解除モードとし、運用中にはセキュリティ実行モードとする構成とした。
そして、セキュリティ解除モードでは、プログラム記憶部107に記憶された設定ファイルの設定内容を、組込制御装置100にログインした外部端末200からの処理要求の内容に、無条件で書き換えられる構成とした。また、セキュリティ実行モードでは、組込制御装置100にログインした外部端末200のユーザが必要な権限を有する場合に、プログラム記憶部107に記憶された設定ファイルの設定内容を、外部端末200からの処理要求の内容に書き換えられる構成とした。
このため、組込制御装置100の開発中には、開発に従事するユーザが開発環境を有する外部端末200を組込制御装置100に接続しログインさせて、外部端末200からの処理要求を、ユーザの権限の認証処理を経ることなく迅速に実行させることができる。また、組込制御装置100の運用中には、外部端末200を組込制御装置100に接続しログインさせても、必要な権限をユーザが有していない場合は、外部端末200からの設定変更等の処理要求を組込制御装置100で実行させず、破棄させることができる。
ところで、本実施形態では、組込制御装置100のデータ記憶部109に、要求権限テーブル125を記憶した要求権限テーブル部120と、付与権限テーブル127を記憶した付与権限テーブル部121とを設けた。そして、両テーブル125,127を参照することで、組込制御装置100にログインした外部端末200のユーザが、その外部端末200からの処理要求を実行するのに必要な権限を有しているか否かを判定する構成とした。
したがって、本実施形態では、図4のフローチャートに示した外部端末200からの処理要求の認証方法の全手順が、組込制御装置100において実行される。このため、組込制御装置100にログインした外部端末200からの処理要求を組込制御装置100で実行するか破棄するかを組込制御装置100自身が決定する運用を、実現することができる。
一方、組込制御装置100にログインした外部端末200のユーザが、その外部端末200からの処理要求を実行するのに必要な権限を有しているか否かを、組込制御装置100以外の装置で実行させて、組込制御装置100の処理の負担を軽減させてもよい。
その場合は、図1の組込制御装置100のデータ記憶部109に設けた要求権限テーブル部120及び付与権限テーブル部121を、図6のブロック図に示すように、認証サーバ300に設ける。
ここで、認証サーバ300は、例えば、組込制御装置100から離れた場所に設置することができる。そのため、認証サーバ300は、組込制御装置100に設けた無線部(無線通信インタフェース)131を介して、無線の通信回線133によって組込制御装置100と接続することができる。無論、両者を無線でなく有線の通信回線で接続してもよい。
そして、本実施形態では、認証サーバ300の不揮発性の記憶部に、要求権限テーブル部120及び付与権限テーブル部121が設けられる。
また、本実施形態では、組込制御装置100のCPU101がプログラム記憶部107のプログラムを実行することで、CPU101上に制御部111、認証要求部113及び通知部135を仮想的に構築する。なお、先の実施形態でCPU101上に仮想的に構築された判定部115は、本実施形態では、認証サーバ300に仮想的に構築される。
そして、本実施形態では、図5のフローチャートに示した組込制御装置100のCPU101が行う処理中のステップS31及びステップS33を、図7のフローチャートに示すステップS32及びステップS34に変更する。
図7のフローチャートのステップS32では、CPU101は、ログインした外部端末200から入力されたユーザの認証情報と、ステップS23で取得した処理要求とを、認証サーバ300に通知する。
通知を受けた認証サーバ300は、通知された認証情報から、組込制御装置100にログインした外部端末200のユーザを特定する。また、認証サーバ300は、特定した外部端末200のユーザに付与された権限と、通知された処理要求の実行に必要な権限とを照合する。
なお、認証サーバ300は、特定した外部端末200のユーザに付与された権限を、付与権限テーブル部121の付与権限テーブル127を参照して特定する。また、認証サーバ300は、通知された処理要求の実行に必要な権限を、要求権限テーブル部120の要求権限テーブル125を参照して特定する。
そして、認証サーバ300は、通知された処理要求の実行に必要な権限を、特定した外部端末200のユーザが有しているか否かを確認する。さらに、認証サーバ300は、確認した結果を組込制御装置100に返送する。
なお、認証サーバ300が行う以上の処理が、認証サーバ300に仮想的に構築される判定部115が行う処理に対応している。
そこで、図7のステップS32に続くステップS34では、認証サーバ300から返送された確認結果を受信したか否かを確認する。確認結果を受信していない場合は(ステップS34でNO)、ステップS34をリピートする。また、確認結果を受信した場合は(ステップS34でYES)、CPU101は、認証サーバ300から返送された確認結果から、ステップS23で取得した処理要求の実行の可否を決定する(ステップS35)。
以上の説明からも明らかなように、本実施形態では、図7のフローチャートにおけるステップS32が、通知部135が行う処理に対応している。
以上に説明した本実施形態の組込制御装置100では、図4のフローチャートに示した外部端末200からの処理要求の認証方法の手順のうち、ステップS5の特定ステップとステップS7の判定ステップとが、認証サーバ300において実行される。このため、組込制御装置100にログインした外部端末200からの処理要求を組込制御装置100で実行するか破棄するかを決定するのに必要な処理を、認証サーバ300において実行する運用を、実現することができる。よって、組込制御装置100の処理の負担を軽減させることができる。
なお、認証サーバ300は、組込制御装置100から離れた場所に設置することができる。このため、認証サーバ300では、通知された処理要求の実行に必要な権限を、特定した外部端末200のユーザが有しているか否かを、組込制御装置100に外部端末200を接続したユーザを画像で認識して確認することもできる。
その場合は、組込制御装置100に、外部端末200を接続するユーザを撮影できる監視カメラ137を設け、その撮影画像を通信回線133により認証サーバ300に送信する。また、認証サーバ300の表示部301に監視カメラ137の撮影画像を表示させる。そして、表示部301の表示画像から、外部端末200を接続するユーザを認証サーバ300で特定する。
表示部301の表示画像からのユーザの特定は、例えば、画像処理によってユーザの識別が可能な特徴画像を抽出することで行ってもよい。あるいは、表示部301の表示画像を監視員が目視してユーザを特定してもよい。また、表示部301を複数箇所に配置して、各箇所でユーザの特定を行ってもよい。
さらに、表示部301の表示画像からユーザを特定する場合、組込制御装置100のCPU101に仮想的に構築される認証要求部113で要求した認証情報を用いて認証サーバ300がユーザを特定する構成を併用してもよく、省略してもよい。
したがって、認証サーバ300は、表示部301の表示画像と組込制御装置100から通知される認証情報とのどちらか一方又は両方を用いて、外部端末200のユーザを特定することができる。
なお、上述した各実施形態における、外部端末200からの処理要求を実行又は破棄した結果の履歴リスト129を生成し、閲覧権限を有している外部端末200のユーザに閲覧させるための構成は、省略してもよい。
また、本開示に係る組込制御装置と、組込制御装置による外部端末からの処理要求の認証方法は、特定の機能を実現するために汎用のコンピュータに代わって各機械、各装置等に組み込まれる組込制御装置において、広く適用可能である。