いますぐ使えるOpenID

第6回 設計・運用の観点から考えるOpenIDの課題

この記事を読むのに必要な時間:およそ 3 分

WebAPIを提供する場合の認証をどうするか

近年のWebアプリケーションは,利用者がWebブラウザで利用するだけとは限りません。 専用のクライアントアプリケーションや,別のサイトのWebアプリケーションから接続するためのWebAPIと呼ばれるインタフェースを用意することも増えています。 当たり前ですが,WebAPI経由で利用者の情報を操作する場合にも認証が必要となります。 パスワード認証の場合は,WebAPIにBasic認証などを適用することが可能ですが,OpenID認証の場合はそうはいきません。 OpenID認証では,利用者とOP間の認証方式までは規定していないため,WebAPI経由でプログラム同士が認証するようなケースには適さないのです。

一つの解決策は,前述のようにRPでも個別にパスワードを登録できるようにしておき,WebAPI経由の認証にはそのパスワードを使うことです。 しかし,そうなると利用者が管理するパスワードが増え,OpenIDを利用するメリットがあまりありません。 また,別のサイトのWebアプリケーションからWebAPIを利用する場合に,IDとパスワードで認証することにそもそも危険があります。 そのサイトに悪意があった場合に,パスワードを悪用することで利用者の持つすべての権限が利用されてしまうためです。

より望ましい解決策は,WebAPIの認証にパスワードを利用するのではなく,⁠トークン」と呼ばれる別のパスワードのようなものをWebAPIを利用するアプリケーションごとに発行することです。 このような仕組みを実現するOAuthというプロトコルが提案されており,各言語用のライブラリも公開されています。

信頼できないOPを利用することによる問題

OpenIDの特徴は,OPという認証サーバが分散していることです。 インターネット上のサーバであれば,誰でもOPになることができるため,OPのセキュリティレベルにはばらつきがあります。 そのため,利用者がセキュリティレベルの低いOPを利用することによって,第三者が利用者になりすましてRPにログインする危険性も考えられます。

自由にOPを選択できるというOpenIDの仕組みの上で,どのようにOPを信頼するかはOPのReputation(評判)問題と言われています。

OpenIDの背景を考えると,信頼できるOPを選択するのは利用者の責任であり,それをしなかったことによる責任は利用者に帰すとも考えられます。 ユーザ登録時に同意してもらう利用規約などで責任を明確にすることも重要です。 しかし現実的には,OPのReputation問題をすべて利用者任せにすることは,利用者の負担が大きすぎるでしょう。

利用者がOpenIDの利用を躊躇して,結局RPのサービスを使ってもらえないかもしれません。 そのため,第三者によるなりすましが問題になるようなサービスを提供する場合は,OpenIDによるログインを許可するOPをRPが明示的に指定する方式も考えられます。 このようなホワイトリスト方式は,連載の第5回で作成していますので参考にしてください。

連載のまとめ:OpenIDのメリットとデメリット

6回に渡ってお伝えしてきた連載もいよいよおしまいです。 OpenIDに対応したRPを構築するためのプログラム方法から,サービス提供上の課題までを取り扱ってきましたが,いかがでしたでしょうか。 連載の最後に,OpenIDを採用することのメリットとデメリットを整理しましょう。

はじめにメリットですが,一番大きいのはユーザ登録の敷居が下がることです。 何かのサービスを利用する際に,ユーザ登録というのは利用者の心理的な負担となります。 ⁠○○のアカウントがあれば面倒なユーザ登録は不要です」となれば,試しにサービスを利用してみようと思う利用者は増えるでしょう。 特に,大手のWebサイトがOPのサービスを提供していることから,多くの利用者が知らず知らずのうちにOpenIDを利用できるようになっています。 また,従来であればCAPTCHAやメールの到達確認などでbotなどの不正なユーザ登録を防ぐ仕組みが必要でしたが,OpenID認証ではすでにOP側のサービスを利用している「質の高い」利用者であることが期待でき,CAPTCHAなどの仕組みをRPで用意する必要もなくなります。

一方で,RP側で従来のパスワード認証を併用する場合には,パスワード認証とOpenID認証の双方に対応するためにコスト増となります。 これはRPが提供するサービスの規模やセキュリティレベルによって代わってくるでしょう。 私見ですが,まずはそれほど重要なデータを扱わないサービスからOpenIDへの対応が進み,これらの問題が認知・解決されていくにつれて,よりセキュリティレベルの高いサービスもOpenIDに対応していくのではないでしょうか。

連載のはじめにもお話ししたように,OpenIDを利用するためのインフラは既に整いつつあります。 新しいサービスを始める場合のOpenID採用の検討に,この連載が少しでも役に立てば幸いです。

著者プロフィール

松岡浩平(まつおかこうへい)

NTTコムウェア株式会社にて,オープンソースを活用した認証システムの開発を担当しています。ここ2年は,情報セキュリティ大学院大学に通学しながら,OpenIDを使った認証システムについて研究していました。