アクセス制御
アクセス制御にはセキュリティトークンに基づく方法がある。トークンはペイロード(アクセス制御情報そのもの、あるいはそれらの識別子)を含み、かつペイロード等を発行した者(issuer)が暗号化したペイロード等の署名を含んでいる。トークンの利用者は署名の検証(例: 公開鍵による検証)をおこなうことでペイロードの正当性を確認できる(例: JSON Web Token)。
以下はWebにおけるアクセス制御で用いられるOAuth2およびOpenID Connectで定義されるセキュリティトークンである。
アクセストークン(Access Token): 認可/AuthZトークン。保護されたリソースへアクセスするために用いられる資格情報(credentials)。
IDトークン(ID Token): 認証/AuthNトークン。
API呼び出しにアクセストークンを添えることで、APIサーバーはリクエストが許可されたものか否かを判断できる。
アメリカ合衆国規格 (Federal Standard 1037C) では、通信におけるアクセス制御は以下のような意味をもつと定義している。
通信システムの構成要素の使用を許可するかしないかを指定されるサービス機能/技術(例えば電話の各種サービスをユーザーが使えるか使えないかなど)
個人またはアプリケーションプログラムが記憶装置からデータを得るかまたは書込む権利を定義または制限する技術。これには、ロールベースアクセス制御、強制アクセス制御、任意アクセス制御がある。
個人またはアプリケーションプログラムが記憶装置からデータを得るかまたは書込む権利の定義または制限
情報処理システム (automated information system, AIS) のリソースにアクセスできるユーザー、プログラム、プロセスなどを制限する処理
ユーザー要求に対してシステムのリソースを割り当てるリソース割当て機 (resource allocator) の機能
コンピュータセキュリティによるアクセス制御は、
認証 (authentication, AuthN)
認可 (authorization, AuthZ)
監査 (audit)
からなる。サブジェクトはまず自らを示す識別子(例: ユーザーID)を用意し、自分が自分だと証明する情報(例: パスワード)を用いて認証/AuthNをおこなう(一般的にいうログイン)。認証結果に基づいて操作可能な権限の払い出し、すなわち認可/AuthZをおこなう。サブジェクトは認可情報を添えてオブジェクトへのアクセスをおこなう。オブジェクトの管理者は認可情報の検証をおこない、正当なアクセスであればオブジェクトへのアクセスを許可する。アクセス履歴は保存され後の監査に利用され、このことが説明可能性 (accountability)を担保する。この一連の流れがコンピュータセキュリティにおけるアクセス制御である。
認証および認可は、物理的機器による手段としてバイオメトリクス、金属錠、デジタル署名、暗号化、社会的障壁、人間や自動化システムによる監視などを含む。認可は、ロールベースアクセス制御、アクセス制御リスト、XACML(英語版)のようなポリシー言語などで実装される。