パソコン実習室
共有とアクセス権 - windowsのアクセス制御
≪ previous
next ≫
V.アクセスの制御
windowsは管理や制御を目的として、システム内に於いて様々な識別子を用います。ユーザーの管理にSIDを用いる外、アクセスの制御用に アクセス トークンやUIDを発行します。
この章では、アクセス トークンやUIDを使ってユーザーのアクセス要求を制御する様子を追います。
V.1.アクセス トークンとUID
windows がユーザーの識別にSIDを用いることは「
T.3.SID
」で触れましたが、アクセス制御を行う時はこの外に[アクセス トークン]、[UID]という識別子を使います。
アクセス トークン
ユーザー アカウントのSIDと所属グループのSIDをまとめ、そこに発行元情報等を加えたもので構成されれています。
ログオン等で認証を要求したユーザー アカウントに対して、ローカル マシン、サーバー、ドメイン コントローラー等が適宜発行します。
UID
:User IDentifier (ユーザー識別子)
ネットワーク経由でアクセスしてくる(リモート)ユーザーに対して、アクセス トークンの代わりに使います。
アクセス トークンは、ユーザー アカウントとグループのSID、発行元情報等を含むため大きなデータ量となります。このアクセス トークンをそのままネットワークに流すのは、セキュリティとネットワーク効率の面から好ましいことではなく、その代用としてUIDを発行します。
V.2.ローカル アクセス
ローカルでログオンしたユーザーが、同じwindows内のフォルダやファイルへアクセスした時、windows内部ではどのような処理が行われているのでしょう。
下図はローカル ユーザーがフォルダ(ファイル)にアクセスした時に、windows内部で行われる処理の流れを示しています。
【 ローカル アクセスの概念図 】
ローカル ユーザー
(1)
(3)
(4)
[ローカルPC]
【 ユーザー管理表 】
アカウント名
SID
taro
yyy
hanako
zzz
(2)
【 アクセス トークン管理表 】
SID
アクセス トークン
yyy
token11
zzz
token22
【 セキュリティ ディスクリプタ 】
SID
アクセス可否
権限
yyy
許可
フル コントロール
zzz
許可
読み取り
(5)
【 ローカル アクセスの処理手順 】
○ ユーザーの taro がwindowsにログオン後、フォルダ(ファイル)にアクセスできるまで。
taro でログオン
ユーザーはユーザー アカウント名とパスワードでwindowsにログオンする。
※ ログオンの行為は、windowsの認証を受けることと同じです。
アクセス トークンを発行
windowsはアカウント名とパスワードを登録情報(ユーザー管理表)と照合し、一致していればアクセス トークンを発行(作成)してアクセス トークン管理表に登録する。
アクセス トークンを返信
windowsは発行したアクセス トークンをユーザーに返信する。
(実際にはwindowsの内部処理のみ)
※ ここまでは、ログオン時に処理される。
アクセス トークンを使ってアクセス
ユーザーは受信済みのアクセス トークンを使って、フォルダやファイルにアクセスする。
アクセスの判定
windowsはアクセス トークンからSIDを確認後、フォルダやファイルに設定されている [セキュリティ ディスクリプタ]を参照。
SIDを基に可能な操作(権限)を識別してアクセス要求を制御する。
この例では taro はフル コントロールが可能となる。
V.3.リモート アクセス
ネットワークを経由してアクセスするリモート アクセスの動作は、ネットワークの形態(ワーク グループまたはドメイン)によって異なります。
リモート ユーザーがサーバーへアクセスした時の動作を、ワーク グループとドメインの場合で追ってみましょう。
▼ ここでは情報を提供する(共有設定)側を便宜上サーバーと表記しています。
▼ リモート ユーザー同士の場合は、情報提供側をサーバーと読み替えて下さい。
【 windowsのエディションによるサーバー接続時の動作の違い 】
最初にサーバーにアクセスする時はサーバーへのログオンと同じ動作になります。
アクセスを受けたサーバーは、ユーザー認証のためユーザー アカウントとパスワードの入力を求めますが、リモート ユーザー側の動作はwindowsのエディションによって異なることがあります。
例えば windows XPでは次の通りです。
windows XP Professional Edition
windowsはユーザーがログオンに使ったアカウント名とパスワードを記憶しています。サーバーの要求にはwindowsが記憶していたアカウント名とパスワードを送信するので、ユーザーは意識する必要がありません。
windows XP Home Edition
ログオン時に入力したアカウント名とパスワードの記憶機能がないので、サーバーへのアクセスの都度アカウント(ユーザー)名とパスワードを入力しなければなりません。
V.3.1.ワーク グループ の リモート アクセス
ワーク グループに於けるリモート アクセスの動作は、基本的にはローカル アクセスと同じですが、サーバー上のフォルダやファイルにアクセスするので、サーバーの認証を受ける(ログインする)必要があります。
サーバー側ではアクセスを許可するリモート ユーザーのユーザー アカウントを作成(ユーザー管理表を用意)して、適切なアクセス権の設定を済ませておきます。
※ サーバーが複数ある場合は、各サーバーで適切なユーザー アカウント作成とアクセス権の設定が必要に
なります。 アクセス権設定の詳細は [
W.共有設定手順
] を参照して下さい。
【 リモート アクセスの概念図 : ワークグループ 】
リモート ユーザー
(1)
(4)
(5)
[サーバー]
【 ユーザー管理表 】
アカウント名
SID
taro
yyy
hanako
zzz
(2)
【 アクセス トークン管理表 】
SID
アクセス トークン
yyy
token11
zzz
token22
(3)
【 アクセス トークン:UID対応表 】
アクセス トークン
UID
token11
abcde
token22
vwxyz
【 セキュリティ ディスクリプタ 】
SID
アクセス可否
権限
yyy
許可
フル コントロール
zzz
許可
読み取り
(6)
【 リモート アクセス時の処理手順 : ワークグループ 】
○ ユーザーの hanako がネットワーク経由でサーバーに接続(ログオン)し、フォルダ(ファイル)にアクセス
できるまで。
hanako がサーバーにログオン
《サーバーの認証を受ける》
サーバーはアカウント(ユーザー)名とパスワードを要求し、リモート ユーザー機はローカル ログオン時のアカウント名とパスワードを送信する。
※ リモート ユーザー側のwindowsのエディションによって、
動作に違いがあります
。
アクセス トークンを発行
サーバーはアカウント名とパスワードを登録情報(ユーザー管理表)と照合し、一致していればアクセス トークンを発行(作成)してアクセス トークン管理表に登録する。
UID を作成
サーバーはUIDを作成してアクセス トークンとの対応表に登録する。
※ リモート アクセスにはアクセス トークンの代わりにUIDを用いる。
UID を返信
サーバーはリモート ユーザーにUIDを返す。
UID を使ってアクセス
リモート ユーザー機は受け取ったUIDを使って、サーバーのフォルダやファイルにアクセスする。
アクセス許可の判定
サーバーは受信したUIDを基に次の動作を行う。
UIDを基に[アクセス トークン:UID対応表]を参照、アクセス トークンを識別。
アクセス トークンを基に[アクセス トークン管理表]を参照、SIDを識別。
SIDを基に[セキュリティ ディスクリプタ]を参照、可能な操作(権限)を識別。
アクセス要求を制御する。
この例では hanako は読み取りが可能となる。
V.3.2.ドメイン の リモート アクセス
ドメイン ネットワーク内のユーザー アカウント情報とユーザー認証は、ドメイン コントローラーが一元管理しています(サーバーは行いません)。
リモート アクセスの際にユーザー アカウントとパスワードで認証を受け、UIDを使って目的のフォルダ(ファイル)にアクセスする仕組みはワーク グループの場合と変わりませんが、その実現方法が異なっています。
リモート ユーザーからアクセス要求を受けたサーバーはユーザー認証の動作をドメイン コントローラーに委託し、その結果を受け取ってアクセス制御を行います。
◎ ドメインに所属するサーバーは、リモート ユーザーのアカウントを保持していません。
リモート ユーザーのアクセス権は、ドメイン コントローラーが管理しているユーザー アカウントを参照して設定(SIDをキーとして記録)しておきます。
※ アクセス権設定の詳細は [
W.共有設定手順
] を参照して下さい。
【 リモート アクセスの概念図 : ドメイン 】
[サーバー]
【 アクセス トークン管理表 】
SID
アクセス トークン
yyy
token11
zzz
token22
【 アクセス トークン:UID対応表 】
アクセス トークン
UID
token11
abcde
token22
vwxyz
【 セキュリティ ディスクリプタ 】
SID
アクセス可否
権限
yyy
許可
フル コントロール
zzz
許可
読み取り
(6)
リモート ユーザー
(1)
(4)
(5)
[ ドメイン コントローラー ]
【 ユーザー管理表 】
アカウント名
SID
taro
yyy
hanako
zzz
【 アクセス トークン管理表 】
SID
アクセス トークン
yyy
token11
zzz
token22
(2)
(3)
【 リモート アクセス時の処理手順 : ドメイン 】
taro がサーバーにログオン
《サーバー経由でドメイン コントローラーの認証を受ける》
サーバーはアカウント(ユーザー)名とパスワードを要求し、リモート ユーザー機はローカル ログオン時のアカウント名とパスワードを送信する。
※ リモート ユーザー側のwindowsのエディションによって、
動作に違いがあります
。
リモート ユーザー情報転送
サーバーはリモート ユーザーから受信したユーザー アカウント名とパスワードを、ユーザー認証のためドメイン コントローラーへ転送する。
アクセス トークンを返信
ドメイン コントローラーはユーザー認証後、アクセス トークンを作成・記録してサーバーに返信する。
UID を返信
サーバーは受信したアクセス トークンをアクセス トークン管理表に記録。
さらにUIDを作成して双方を対応表に記録後、UIDをリモート ユーザーに返信する。
UID を使ってアクセス
リモート ユーザー機は受け取ったUIDを使って、サーバーのフォルダやファイルにアクセスする。
アクセスの制御
サーバーは受信したUIDを基に次の動作を行う。
UIDを基に[アクセス トークン:UID対応表]を参照、アクセス トークンを識別。
アクセス トークンを基に[アクセス トークン管理表]を参照、SIDを識別。
SIDを基に[セキュリティ ディスクリプタ]を参照、可能な操作(権限)を識別。
アクセス要求を制御する。
この例では taro はフル コントロールが可能となる。
≪ previous
[[ 共有とアクセス権 ]]
next ≫