ブログ|NRIセキュア

OpenID Connect入門|デジタル・ビジネスのキーテクノロジー最新動向

作成者: 柴田 健久|2019/06/24

 

 はじめまして。2019年の2月にOpenID Foundationの企業理事になりました柴田と申します。企業理事と言ってもまだまだ不慣れですが、微力ながらOpenIDの普及を通じて企業も利用者も安心してインターネットサービスが利用できる環境の実現に貢献していきたいと考えています。

 さて、2019年5月13日~17日、ドイツのミュンヘンにて世界最大級のIdentity系カンファレンスであるEuropean Identity & Cloud Conference 2019が開催され、私も参加してきました。
そこでは、Identity関連の有識者からさまざまな興味深い技術やユースケース、法制度の整備状況などが紹介されたのですが、OpenID Foundationからも現在の活動状況が紹介されました。

 既に様々なところで活用されている「OpenID Connect」ですが、まだまだ新しい仕様や認定プログラムの整備が継続して続けられています。

 

 今回は、その発表を行ったOpenID Foundationの企業理事 Microsoft社のMichael Jones氏の許可を得て、内容のダイジェストを紹介したいと思います。

 

そもそもOpenIDとは?

 まず、そもそも「OpenID」とは、というところに少し触れておきたいと思います。OpenIDは、ユーザがあるサービスを利用する(逆の立場で言うとある事業者がエンドユーザにサービスを提供する)際に、そのユーザの情報を別のサービスから連携(ID連携)したい場合に使用されるプロトコルです。

 

 

図. OpenID動作イメージ

 

 

 これを実現する為には、エンドユーザの特定、合意に基づくデータの連携、PCやスマホ、デバイスといった様々な利用シーンへの対応、セキュリティなど様々な考慮が必要となりますが、このプロトコルはそれらをすべてクリアしています。最新は、OpenID Connect 1.0 というものになります。

 昨今、APIエコノミーやFintech、デジタルトランスフォーメーションなどのキーワードで、サービスやデータを繋いで新たな価値を創出したビジネスを提供する企業が多くなってきます。そういった中で、APIを使ってユーザー情報を連携(ID連携)したい場合に使える技術として注目されています。

 ID連携技術は他にもありますが、このOpenID Connectは普及に必要な様々な条件をクリアしています。例えば、以下のような特徴があります。

 

  • OAuth2.0という、API連携する場合の標準技術をベースに作られている。
  • 野村総合研究所、Google、Facebook、Microsoftなどを初めとする多くの企業や、世界中の優れた技術者が、セキュリティや本人同意、拡張性、開発のし易さなど多様な観点から検討し、磨き上げたものであり、完成度が高い。
    ※セキュリティ設計に関しては、その正しさが数学的に解析・証明されている。
  • 上記のような企業が実際にサービスに使用しているため、それらのサービスと繋ぎたい多くの企業が対応。その後は、普及が普及を呼ぶ状況。
  • REST/JSON形式を基本としており、シンプルな為、開発者目線でもフレンドリー。一方で複雑なユースケースにも対応できるようになっている。
  • PCブラウザを使ったサービスはもちろん、ネイティブアプリ、IoTなどのユースケースにも適用可能


 これらのことからOpenID Connectは、ID連携技術の中でも現在世界で最もよく使われているプロトコルと言ってよいと思います。

 なお日本は、OpenIDに関して非常に貢献度の高い国です。OpenID Foundationの理事長は野村総合研究所の崎村 夏彦上席研究員ですし、仕様策定には複数の日本の技術者が参画していらっしゃいます。非常に誇らしいことだと思います。

現在のOpenID Foundationの活動状況

 そして、先日発表された活動状況では、拡張仕様の検討状況、各種ワーキングループ、認定プログラムの紹介が行われました。

拡張仕様の策定活動

-セッションマネジメント、およびシングルログアウトの仕様検討

 前述の通り、OpenID Connectは認証情報や属性連携の連携を行います。そしてそのやり取りは、設定された有効期限内であればログイン状態に依存しない形が基本となっていますが、この拡張仕様では、ログイン状態と同期出来る方法の検討が行われています。

 

 これが実現できれば、現状は実施できないシングルログアウトが可能になるため、主となるサイトからログアウトされた場合、他のサイトも同時にログアウトできるようになります。OpenID Connectを使ったシステムを構築経験者の方で、シングルログアウトをどうしようか、と考えたことのある方は多いと思いますが、朗報ではないでしょうか。

 

但し、HTML5を使う必要がある等、制約もありそうです。

Session Management
Front Channel Logout
Back Channel Logout

 

-Federation Specification

 OpenID ConnectによるID連携は、連携相手が信頼できることを前提としています。実際に接続する場合、この"相手が信頼できるかどうか"という点は、オフラインで監査するなど別の手段で実施しているわけですが、この仕様はそうではなく、信頼できるかどうか不明な相手との連携を動的に実現するための方法を提示しています。

 

 その考え方は若干複雑なのですが、接続相手ではない”信頼できるスジ”から、接続相手の情報を得られるかどうか、というものなっています。想定しているそのスジというのも、1段階のみではありません。情報をくれた相手が信頼できるかをその先の相手から評価する、というような多段で評価できるよう考慮されています。

 

Open ID Connect Federation

 

-Identity Assurance Specification

 ID連携が行われる場合、そのユーザが実在する人物である必要性は、サービスによって異なります。サービスによっては、架空の人物でよい場合もあるでしょう。しかし、金融機関などはそうはいきません。犯罪の可能性などを考慮し、本当に実在するかを厳密に確認する必要があります。

 

 この仕様はそういった場合を想定し、情報を受け取る側がそのユーザが本当に実在するかを確認・評価出来るようにするためのデータ(その人物がどのような方法で登録されたかなど)を連携するための標準仕様として考えられています。これにより、情報を受け取る側は、連携されてきた人が実在するかどうかを評価できます。


OpenID Connect for Identity Assurance

 

-Native SSO Specification

 

 Native アプリ間でシングルサインオンするための仕様です。現在、鋭意検討が進められており、近日中にドラフトが公開予定だそうです。

 

 

各種ワーキンググループの活動

 他にも様々なワーキンググループがあります。その一部を紹介します。

 

-Enhanced Authentication Profile (EAP) WG

 セキュリティ向上を目的とした検討を行うワーキンググループの一つで、認証に着目しています。2つの異なる方法によるセキュリティ向上が提示されています。

  • 通信経路の限定(Token Binding)

    ユーザの情報を連携する場合、事前に認証が必要となります。その認証を行う際に使用されたサーバとクライアント(ブラウザ)間で、あるパラメータを公開鍵暗号方式で署名、検証することで通信経路を特定できるよう考えられています。

  • 認証強度の確認

    ID連携の際にどのような強度の認証技術が使用されたかを確認できるようにするための表現方法を定義しています。これを使用すれば、ID連携を受け取る側はどのような強度で認証されたかを知ることが出来、連携されてきたデータの信頼性評価に役立てる事が出来ます。

 

 最近、FIDOという端末で認証してその結果をサーバ側へ送るという認証技術が注目されていますが、安全性の高い認証方式で行われているかどうかが確認できると、連携された側の安心度も上がりますよね。

Enhanced Authentication Profile (EAP) WG

 

-Mobile Operator Discovery, Registration aNd Authentication (MODRNA)WG

 

 一般的にサービスを利用する場合、その起点はエンドユーザとなります。しかし、事業者側からサービスを提供したい、というような事業者起因もサービスによってはあります。このワーキンググループではこういった場合に対応できるよう、ユーザーの持つモバイルデバイスに認証要求を送り、ユーザーに認証を行ってもらうことで、該当ユーザー向けのサービスを提供出来るようにする、ケースを想定し実現方式を検討しています。


 この仕様は、OIDC Client Initiated Backchannel Authentication Flow (CIBA:シーバ)と呼ばれています。

 

 ここではオペレーターとなっていますが、応用版として、例えばホームデバイスのような認証用のユーザーインターフェースを持たないモノにサービスを提供して欲しい場合に、本当にそのユーザーがサービスを使いたいのかを確認する為にスマホを呼び出して確認する、というようなことにも使える為、注目されています。

 

Mobile Operator Discovery, Registration aNd Authentication (MODRNA)WG

 

-Financial grade API (FAPI) WG

 

 金融機関、またはそれに準じる高いセキュリティが求められる事業者が、API保護およびID連携を行うために何をすべきかを検討しているワーキンググループです。


 検討の中では、上述の通信経路の限定、改ざん防止、なりすまし防止を行う為の仕様を定めており、イギリスのオープンバンキング、米国のFinancial Data Exchangeで採用されています。OpenID Foundationの理事長でもある崎村上席研究員が、検討の中心となって進めています。

 

Financial grade API (FAPI) WG

 

参考:Nat Sakimura’s Blog

 

認定プログラムの整備

 OpenID Connectは非常に便利な技術ですが、ひとたび間違った使い方をすると個人情報漏洩のような重大インシデント発生に直結するため、正しく実装することが不可欠です。

 

 OpenID Foundationはこのようなことが無いよう、認定プログラムの整備を進めています。テストツールの提供や、結果の確認などを行うサービスを提供しており、開発者はこれを利用すれば、自分の実装が間違っていないかどうかの確認が出来ますし、認定ベンダ(個人でもOK)としてOpenID FoundationのWebページに掲載されますので、周囲も実装の安全性を確認することが可能です。

 

OpenID Certification

おわりに

 OpenID Foundationは便利な世の中を実現する為にID連携は何ができるかを日々検討し、活動を続けています。皆様のご参加をお待ちしています。より詳しいことは、以下をご覧ください。

 

OpenID Foundation HP

OpenID ファウンデーション・ジャパン

 

 この記事は冒頭に記載した通り、Michael Jones 氏(写真右)のプレゼンテーションをベースに記載させていただきました。利用を快諾してくれたMichael 氏には、大変感謝しています。


参考:Michel氏のブログはこちら(資料もあります)