苦節4年半、ワーキンググループを作るところから始めたら、苦節6年、ようやくOpenID Connectをリリースしました。
OpenID Connect は、インターネット上の「アイデンティティ層」をなすものです。ちょっと説明しましょう。
レイヤーとか「層」とかというと、よく使われるものTCP/IPの参照モデルというものがあります[1]。これはIETFによって策定された、インターネット上のホストの持つべき通信機能を階層構造に分割したモデルで、TCP/IP参照モデル、インターネット・プロトコル・スイートなどとも呼ばれ、通信機能(通信プロトコル)を4つの階層に分けて定義しています(RFC1122)。この第4層はアプリケーション層と呼ばれますが、これは、あくまでHTTPやFTP等の通信サービスのことであり、いわゆる「業務アプリケーション」の意味ではありません。実際のユーザが使う「業務アプリケーション」は、この上に構築されます。こんなイメージでしょうか。
図1では「業務アプリケーション層」の中に「認証・認可」を楕円で描いて入れました。なぜそれを特筆したかというと、この機能は全ての業務アプリケーションに存在するからです。
そして、インターネット上でのセキュリティの問題の95%以上が、この「認証・認可」がヘボなことに由来していると言われています。先日も、アンチウイルス・マルウェア検知の父であるピーター・ティペット博士の話を聞く機会[2] があったのですが、博士曰く「セキュリティを強化するという観点では、アンチウイルスやらファイヤーウォールやら他の全てのセキュリティ機能を完璧にしたとしても、アイデンティティ機能をちょっとだけ進化させるので得られる利益に遠く及ばない」ということでした。
今回リリースしたのは、その「認証・認可」機能を、アプリケーション個別に実装するものではなく、ネットワーク層同様に1つの層~「アイデンティティ層」として外出ししてしまうための国際標準です。ざっくりしたイメージとしては、図2のようになるでしょうか。
ここでは、アプリケーション・ソフトはアイデンティティ層と、予め定義された標準手順(プロトコル)で情報をやりとりすることによって、安全に「認証・認可」ができるようになります。こうやって認証・認可機能を外出しして専門のソフトウェアやサービスにアウトソースすることによって、正しく行うことが極めて困難である「認証・認可」を自ら行うこと無く、したがってそれに起因するセキュリティーホールを作ること無く、アプリケーション・ソフトは自分のコア・コンピタンスである「アプリケーション機能」に特化することができるようになります。
今回リリースしたのは、全体的なアイデンティティ層体系のうちの以下の部分になります。
OpenID Connect Core | 全ての中核で、ここだけで一応の認証・認可は可能になります。 |
OpenID Connect Discovery | ユーザー毎の認証・認可サービスを提供する場所がどこに存在するかを探すことを可能にします。 |
OpenID Connect Dynamic Registration | アプリケーション・ソフト(クライエントと呼びます)が、動的に自らをアイデンティティ層に登録するための仕様です。 |
OAuth Multiple Response Type | 上記が使うメッセージの一部を定義しています。 |
OpenID Connect はすでに多くの企業がサポートを表明しております。すでにGoogleは、2015年4月までに全面的にOpenID Connectに移行することを表明しましたし、Microsoft、Salesforceもすでにサービス提供を開始しています。日本では野村総合研究所が様々な企業のバックエンドとして技術提供していますし、ソフトバンクやヤフーもすでにサポートをしています。その他の企業でサポートを表明しているところとしては、(順不同)ForgeRock, CA, VMWare, AOL, Cisco 等、錚々たるところがあります。
さらに、バルセロナのモバイル・ワールド・コングレスでは、主催者である GSMAが「Mobile Connect」を同時発表していますが、これは、OpenID Connectの携帯通信事業者向けのプロファイルです。(これについては後日別途記事を書きます。)
OpenID Connect は多くの人の血と汗の結晶です。この場を借りて、ご協力いただいてきた多くの方にお礼を申し上げたいと思います。
[1] レイヤーとか「層」とかというと、もう一つよく使われるものにOSIの参照モデルというものもあります。これは、国際標準化機構(ISO)によって策定された、コンピュータの持つべき通信機能を階層構造に分割したモデルで、OSI基本参照モデル、OSIモデルなどとも呼ばれ、通信機能(通信プロトコル)を7つの階層に分けて定義しています。この第7層はアプリケーション層と呼ばれますが、これは、あくまでHTTPやFTP等の通信サービスのことであり、いわゆる「アプリケーション・ソフト」の意味ではありません。実際のユーザが使う「アプリケーション・ソフト」は、この上に構築されます。
[2] ホワイトハウスで開催された、招待者限定のイベント(30人位?)、International Identity Summit にて。
[3] ここではざっくり「アイデンティティ層」としていますが、実際にはアクセス権を表すトークンを発行する層、その上でアイデンティティデータ(ある実体に関連する属性データ)をやりとりする、いわゆるアイデンティティ層、そして、それを使って実際のアクセス制御を行う、アクセス制御層に分かれます。
(改訂履歴)
- 2014/3/1 – 当初はOSI参照モデルを使って書いていたが、座りが悪いので、TCP/IP参照モデルに変更。また、list を table に変更。
@_Nat Zoneをもっと見る
購読すると最新の投稿がメールで送信されます。
「OpenID Connect リリース~インターネットのアイデンティティ層」への1件の返信