by

【シングルサインオン解説】シングルサインオン実装「OAuth編」


シングルサインオン実装の1つである「OAuth」の概要について紹介します。

「シングルサインオン」とは

「シングルサインオン(SSO:Single Sign-On)」とは、1回のユーザー認証処理によって、それぞれ独立した複数のソフトウェアシステムにログインすることを可能とする仕組みを指します。

シングルサインオンの概要についてはこちらも参照ください。
→シングルサインオンの概要

「OAuth」とは

概要

OAuth(オーオース)は、権限の認可(Authorization)を行うためのオープンスタンダードプロトコルです。

OAuthは認証のためのプロトコルではありませんが、SNSやWebサービス間で「アクセス権限認可」を行うためのプロトコルとして利用されています。

2つのバージョン

OAuth 1.0

当初のバージョンである「OAuth 1.0」は、以下のような問題があるため、現在ではほとんど使われていません。

・セキュリティ問題
・認証処理が複雑
・署名処理が複雑
・デスクトップ/モバイルアプリへの対応が不充分
・プロバイダのサーバスケールが困難 など

OAuth 2.0

「OAuth 2.0」は、上記の「OAuth 1.0」の課題を解決するために仕様策定され、2012年にRFCとして発行されました。

「OAuth 1.0」とは後方互換性を持ちません。

「OAuth 2.0」とは

概要

OAuth 2.0はクライアントとなる「Webアプリ」「デスクトップアプリ」「スマートフォンアプリ」「その他デバイス用アプリ」などのアプリケーション開発者に対し、特定の承認フローを提供しながら、リソースアクセス権限を付与するシンプルな方法を提供します。

標準化規格

「OAuth 2.0」は「IETF OAuthワーキンググループ」で仕様策定されている標準仕様群です。

「RFC(Request for Comments)」として発行されたことからもわかるように、OAuth 2.0は開発途中のステータスという位置づけでもあります。

しかし、膨大なユーザー数を有するFacebookやTwitterが実装したことにより、事実上の標準化規格として扱われています。

→oauth.net →2

「OAuth 2.0」の仕組み

認可サーバ

認可サーバは「エンドユーザー認証」や「トークン発行」などを担当します。

リソースサーバ

リソースサーバは、認可サーバが発行したトークンを受け入れて実際のAPIを提供します。

「OAuth 2.0」の認証手順

①認可リクエスト

クライアントアプリは認可サーバへ「APIアクセス権譲渡リクエスト」をリダイレクトします。

②ユーザー認証

リクエストを受けた認可サーバは、ユーザー認証を実行後、「クライアントアプリへのAPIアクセス権譲渡を認可するか?」についてユーザーに確認します。

③アクセストークン発行

ユーザーが許可すると、認証サーバは「グラント(APIアクセス権限付与トークン)」とともに、クライアントアプリへリダイレクトします。

④クライアントアプリがAPIへアクセス

グラントを受取ったクライアントアプリは、リソースサーバAPIへグラントとともに使用をリクエストします。

「OAuth 2.0」の採用例

以下のように多くのサービスで「OAuth 2.0」が採用されています。

・Facebook Graph API
・Google APIs
・GitHub API
・Microsoft Graph API
・Salesforce APIs など

最後に

「OAuth」は、シングルサインオン実装技術の1つであり、他のシングルサインオン関連技術と組み合わせることで、より高機能なシングルサインオンを構築できます。

弊社にご連絡いただければ「OAuthを利用するシングルサインオンについてのご提案」「既存システムとの整合性調査」など、トータルサポートでご支援できます。

まずは、お気軽にお問い合わせください。

もっと知りたい方へ

 

参考元サイト