OAuth(オーオース)とは?意味と概要
OAuth(Open Authorization)とは、サードパーティ製アプリケーションに対して、ユーザーのIDやパスワードなどの認証情報を開示することなく、特定のデータや機能へのアクセス権限を安全に付与するための標準的な認可プロトコルである。Web技術の進展に伴い、異なるサービス間でデータを連携する機会が増加したことで、セキュリティを担保しつつ利便性を向上させる標準規格として広く普及した。
OAuthは「認証」と「認可」を明確に分離する技術であり、現在主に利用されているのは「OAuth 2.0」である。ユーザーはサービスごとにアカウント情報を渡す手間を省き、安全なデータ共有を実現できる。SNSアカウントを利用した外部サービスの連携機能などの基盤技術として広く採用されている。
OAuth(オーオース)の仕組み・具体例
OAuthの基本仕組みは、ユーザー、クライアント(アプリ)、認可サーバー、リソースサーバーの4要素で構成される。ユーザーがアプリ側で連携を要求すると、ユーザーは認可サーバーの認証画面へ誘導される。ユーザーがアクセスを許可すると、認可サーバーからアプリへ「アクセストークン」という一意の鍵が発行される。
アプリはこのアクセストークンを提示することで、リソースサーバーにあるデータを取得する。この処理過程でアプリ側がユーザーの生のパスワードを保持・処理することは一切ない。そのため、連携先アプリの脆弱性によりパスワードが漏洩するリスクを構造的に遮断している。
具体例として、外部のスケジュール管理アプリがGoogleカレンダーのデータを取得するケースが挙げられる。ユーザーはGoogleの画面で許可を与えるのみであり、スケジュールアプリにGoogleのパスワードを入力することはない。アプリには有効期限付きのトークンのみが渡され、指定範囲のデータのみが参照される。
OAuth(オーオース)のメリットとデメリット(注意点)
OAuth導入の最大のメリットはセキュリティの向上である。パスワードを外部サービスに渡さないため、連携先から元アカウントの認証情報が漏洩する危険性を回避できる。また、アクセストークンには有効期限やアクセス可能な権限範囲を設定できるため、不必要な権限の付与を防ぐことが可能である。
一方で、OAuth自体は「認可(権限付与)」の規格であり、「認証(本人確認)」の機能を単体では持たない点が注意点である。不適切な実装は成りすまし攻撃の原因となるため、本人確認を伴う場合はOpenID Connectなどの認証規格と組み合わせて実装する必要がある。
また、ユーザーが連携を許可したアプリの権限を放置すると、不正なデータアクセスを許し続けるリスクが生じる。定期的に連携済みアプリ一覧を確認し、不要な権限を取り消す運用が不可欠である。
コメントを残す