検索
連載

OpenAMのOpenID Connectへの対応OSSによるアイデンティティ管理(4)(2/3 ページ)

OpenAMは、SAMLをはじめとする多くのフェデレーションプロトコルに対応しています。先日ローンチされたOpenID Connectにもいち早く対応しました。

Share
Tweet
LINE
Hatena

さまざまな問題点を考慮して生まれた「OpenID Connect」

 このような状況下で、各プロトコルの問題点を考慮した新しい仕様の策定が2009年ごろから始まりました。それがこれから説明する「OpenID Connect」です。

OpenID Connectとは

 OpenID Connect 1.0は、認可を目的としたプロトコルであるOAuth 2.0をベースに、認証やセッション管理なども実現できるように拡張したプロトコルです。

OAuth 2.0+(認証、セッション管理など)=OpenID Connect 1.0


 OpenID Connectは、「making simple things simple and complicated things possible(簡単なことは簡単に、複雑なことも可能に)」を設計目標としており、開発者が実装すべき部分はできる限り少なくしながらも、さまざまなタイプのアプリケーションと連携できるような考慮がされています。

 一般的なWebアプリケーションだけでなく、ブラウザーベースのJavaScriptやネイティブモバイルアプリケーションとも連携し、SSOができます。また、SAMLがSOAP/XMLを使用した複雑なプロトコルであるのに対して、OpenID ConnectはREST/JSONを使用した開発者にやさしいプロトコルとなっています。

 OpenID Connect のアクターには次の3種類があります。

・エンドユーザー:

アプリケーションを利用するユーザーです。

・OpenID Provider(OP):

エンドユーザーを認証し、そのユーザーの情報を提供するサーバーです。OpenID Connectをサポートする OAuth 2.0認可サーバーといい換えることもできます(以下、「OP」と略します)。

・Relying Party(RP):

 OPにエンドユーザーの認証を委譲するアプリケーションです。Webアプリケーションだけでなく、モバイルアプリケーションなども含まれます。OpenID Connectを利用するOAuth 2.0クライアントと言い換えることもできます(以下、「RP」と略します)。

 RPがWebアプリケーションの場合の、OpenID Connectの典型的なフローは、以下のようになります。


図2 OpenID Connectのフロー

 まず、エンドユーザーはWebアプリケーションにアクセスします(1)。Webアプリケーションは「○○(OP)でログイン」というようなボタンのある画面を表示します。エンドユーザーがこのボタンをクリックすることで、OpenID Connectで規定されたフローが始まります。WebアプリケーションはエンドユーザーをOPの認可エンドポイント(注2)へとリダイレクトします(認証要求:2)。

注2:エンドポイント(Endpoint):サービスを提供するURIを意味します。OpenID ConnectのOPは、認証・認可を実行するための認可エンドポイントや、エンドユーザーの情報を取得するためのユーザー情報エンドポイントなどを公開します。


 OPはログイン画面を表示し(3)、それに対してエンドユーザーはログインを試行します(4)。このとき、どのような方式でログインさせるか、どのような条件で認証成功とするかはOpenID Connectの仕様では規定されていないので、例えば、OPはエンドユーザーに生体認証を求めることも、Yubikey認証を求めることもできます。認証が成功したら、OPは認可画面を表示し、Webアプリケーションがユーザー情報へアクセスすることへの許可をエンドユーザーに求めます(5)。それに対してエンドユーザーは許可または拒否します(6)。許可を得ると、OPはエンドユーザーをもとのWebアプリケーションへとリダイレクトします(認証応答:7)。認証応答には認可コードが含まれており、これを使ってトークンエンドポイントにアクセスし、アクセストークンとIDトークン(注3)を取得します(8)。必要であれば、アクセストークンを使用して、ユーザー情報エンドポイントからエンドユーザーの属性情報を取得します(9)。

注3:アクセストークンとIDトークン:アクセストークンと同時にIDトークンを受け取ることが、OAuth 2.0と大きく異なる点です。IDトークンには、エンドユーザーごとに一意な値が含まれており、これによりエンドユーザーが認証済みであるかどうかを判定できるようになっています。OpenID Connectでは、性能面やセキュリティを考慮した結果として、2つのトークンを使い分けるようになっています。


 一般的にRPがWebアプリケーションの場合は、図2で説明した「認可コードフロー」というフローに従います。RPがネイティブモバイルアプリケーションの場合は、「インプリシットフロー」というフローに従います。ただし、厳密にはアプリケーションがパスワードを秘密にできるかどうか、またOPとRPが直接通信できるかどうかといった観点でどちらを選択するか決定します。

 両者のフローには若干の違いがありますが、基本的な部分は同じです。いずれのフローも、OpenID Connect Core 1.0で規定されていますので、詳細に関して知りたい方はそちらを確認してください。

 また、このフローでは省略しましたが、OPはエンドユーザーのセッションの有無の確認や、シングルログアウトを行うためのエンドポイントも公開します。これらの仕様はOpenID Connect Session Management 1.0にまとめられています(2014年5月の時点では仕様策定中です)。

【関連記事】

デジタル・アイデンティティ技術最新動向(4):「OpenID Connect」を理解する

http://www.atmarkit.co.jp/ait/articles/1209/27/news138.html


Copyright © ITmedia, Inc. All Rights Reserved.

Security & Trust 記事ランキング

  1. 堅調なID管理や認証、脅威インテリジェンスなどを抑え、2024年上半期で最も成長したセキュリティ分野は?
  2. 従業員は「最新のサイバー脅威との戦い」を強いられている セキュリティ教育に不満を持つ理由の1位は?
  3. 増える標的型ランサムウェア被害、現場支援から見えてきた実態と、脆弱性対応が「限界」の理由
  4. 「SQLite」のゼロデイ脆弱性、GoogleのAIエージェントが見つける AIは脆弱性調査の課題をどう解決したのか?
  5. セキュリティ専門家も「何かがおかしいけれど、攻撃とは言い切れない」と判断に迷う現象が急増 EGセキュアソリューションズ
  6. 長続きする高度セキュリティ人材育成の秘訣を「第19回情報危機管理コンテスト」から探る
  7. 日本人の約半数が「1年前より危険」と考えるオンライン詐欺とは マカフィーがホリデーショッピング詐欺に関して調査
  8. セキュリティ担当者の54%が「脅威検知ツールのせいで仕事が増える」と回答、懸念の正体とは? Vectra AI調査
  9. ゼロトラストの理想と現実を立命館大学 上原教授が語る――本当に運用できるか? 最後は“人”を信用できるかどうか
  10. 「このままゼロトラストへ進んでいいの?」と迷う企業やこれから入門する企業も必見、ゼロトラストの本質、始め方/進め方が分かる無料の電子書籍
ページトップに戻る