認可(Authorization)とは
認可(Authorization)とは、ある利用者に対して、特定のリソースへのアクセスを許可する行為を指します。これは、コンピュータシステムやネットワークにおける
アクセス制御の重要な要素であり、許可(permission)、権限(privilege)、アクセス権(access right)とも呼ばれます。
認可は、リソースへのアクセスを求める利用者が、そのリソースを利用する資格があるかどうかを判断するプロセスであり、セキュリティを確保する上で不可欠です。
認可のプロセス
認可は、
アクセス制御における2つの主要な段階のうち、最初の段階である「ポリシー定義段階」で機能します。この段階では、誰がどのリソースにアクセスできるかを定義するアクセスポリシーが設定されます。その後、「ポリシー施行段階」では、事前に定義された
認可に基づいて、アクセス要求を受け入れるか拒否するかが決定されます。
例えば、
人事部門のスタッフは従業員記録へのアクセスを許可されるというポリシーがあるとします。このポリシーは、コンピュータシステム内の
アクセス制御規則として定式化され、システムはこれらの規則に基づいてアクセス要求を処理します。
認可の対象となるリソースは多岐にわたります。個々のファイルやデータ、プログラム、コンピュータ
ハードウェア、コンピュータアプリケーションが提供する機能など、システムが管理するあらゆるものが対象となります。
利用者もまた多様です。コンピュータユーザーだけでなく、プログラムやコンピュータ上の他のデバイスなども利用者に含まれます。
多くのマルチユーザーオペレーティングシステムは、
認可に基づいて
アクセス制御を行っています。
アクセス制御は、まず利用者のアイデンティティを
認証(Authentication)し、次にその利用者がリソースへのアクセスを許可されているかを確認します。
認可の決定は、通常、責任者やシステム管理者によって行われ、アクセスポリシーとして表現されます。アクセスポリシーは、
アクセス制御リスト(ACL)やCapabilityなどの形式で実装されることが一般的です。
最小権限の原則
認可は、「最小権限の原則」に基づいています。これは、利用者は自身の業務に必要なアクセス権のみを付与されるべきであるという原則です。これにより、不正アクセスやデータの漏洩などのリスクを低減できます。
信頼された利用者とゲスト
信頼された利用者(Trusted User)は、
認証された上で、システムリソースへの無制限のアクセス権を与えられていることが多いです。一方、部分的に信頼された利用者やゲストは、不正なアクセスを防ぐためにアクセス権限が制限されます。中には、デフォルトで全てのリソースへのアクセスを許可するポリシーを持つシステムもありますが、セキュリティを考慮すると、管理者による明示的な
認可が必要な設定が一般的です。
認可クレデンシャル
認可クレデンシャル(Authorization Credential)は、
認可を表現するデータオブジェクトであり、アクセス時に
認可検証に利用されます。これは、日常における「許可証」のようなものであり、目に見えない「権利」をデータとして表現し、
アクセス制御の際に検証することで、適切な
認可があることを確認します。
OAuth 2.0におけるアクセス
トークンは、
認可クレデンシャルの一例です。
認可の課題と解決策
認可と
アクセス制御リストを組み合わせてアクセスを制御する場合、
認可データの保守は複雑になりがちです。ユーザーへの
認可変更や取り消しは頻繁に発生し、システム上の対応するアクセス規則を更新する必要があります。このような管理業務の負担を軽減するために、信頼できる第三者が
認可情報を安全に配布するAtomic Authorizationなどの技術も開発されています。
認可という用語は、ポリシー施行段階の機能として誤用されることがあります。この誤用は、Cisco SystemsのAAAサーバーの導入に起因することがあります。しかし、
認可の本来の意味は、アクセスポリシーを定義する段階を指します。例えば、情報セキュリティの基本である機密性は、「その情報に対してアクセスを
認可された者のみがアクセス可能であることを保証すること」と定義されます。つまり、
認可はポリシー定義段階の機能であり、アクセス要求があったときに許可するか否かを決定するものではありません。
参考文献
- - Karp (2006)
- - Jøsang et al. (2006)
関連項目