OpenID

分権的な認証プロトコルのオープンスタンダード

OpenIDオープンアイディー)は分権的な認証プロトコルのオープンスタンダードで、非営利団体のOpenID財団が標準を策定している。名称は同団体の登録商標である[1]

2016年現在の最新版のOpenIDは2014年2月に発行され[2]同年11月にアップデートされた[3]OpenID Connect (OIDC) 1.0である。

OpenID財団標準 編集

OpenID財団では、誰でも参加可能な手順「OpenID Process」を経て、デジタルアイデンティティ関連の標準化を行なっている。現在有効、ないしは策定中の仕様には以下のようなものがある。

OpenID Connect 編集

2009年にOAuth 2.0の標準化がIETFで始まったことを受けて策定が始まった、次世代の認証連合アイデンティティシステムの標準

HTTP上で使う場合にはOAuth 2.0をベースにしながら、HTTP以外のプロトコル(XMPP他)にも拡張可能になっており、スマートフォン上でのアプリの台頭を意識した作りになっている。

セキュリティ的にも、OpenID Authentication 2.0がNIST SP800-63ベースでレベル2程度までしかサポートできないのに対して、最高レベルであるレベル4まで対応できるように設計されている。

これに当たって、別規格としてJSON Web Token(JWT)、JSON Web Signature(JWS)、JSON Web Encryption(JWE)、JSON Web Key(JWK)が、IETFに於いて、同じ著者達によって標準化されている。

OpenID Connect は幾つかの部分規格にわかれている。

  1. OpenID Connect Core
  2. OpenID Connect Discovery
  3. OpenID Connect Dynamic Registration
  4. OAuth 2.0 Multiple Response Type Encoding Practices

これらは、2014年2月26日に、OpenID Foundation 標準として採択された。 その後以下が標準として採択されている。

  1. OpenID 2.0 to Connect Migration
  2. OpenID Form POST binding

また、引き続き以下の仕様が策定中である。

  1. OpenID Connect Session Management
  2. OpenID Connect Front Channel Logout
  3. OpenID Connect Back Channel Logout
  4. OpenID Connect Federation

2018年8月22日現在、上記1~3は実装者仕様案[4]である。

ID Token 編集

OIDCがOAuth2.0を認証で利用するにあたって追加した最大の要素がID Tokenである[5]。ID Tokenは以下の属性を持つJSON Web Tokenである[5]

interface ID_Token {
    iss: url;           // Issuer Identifier
    sub: string;        // Subject Identifier
    aud: string[];      // Audience
    exp: number;        // Expiration date [UNIXtime]
    iat: number;        // Issued at [UNIXtime]
    auth_time?: number; // End-User authentication time [UNIXtime]
    nonce?: string;
    acr?: string;       // Authentication Context Class Reference
    amr?: string[];     // Authentication Methods References
    azp?: string;       // authorized party
    at_hash?: string;
    c_hash?: string;
    sub_jwk?: object;
    anything_you_want?: any;
}

すなわちID TokenはそのID Token自身が、どの発行者/issから、どの対象者/subの情報を、どの利用者/audに対して、いつまでの有効期限/expで、いつ発行された/iatか、という情報を必ず含んでいる。例えば以下のclaimをもつID Tokenがあったとする。

interface ID_Token {
    iss: "https://JapanGav.go.jp";
    sub: "山田太郎_1234567";
    aud: ["マイナポータル"];
    exp: 1577890800;
    iat: 1577804400;
}

これはこのID Tokenが、iss/日本政府から、sub/山田太郎の情報を、aud/マイナポータル(アプリ)に対して、exp/2020-01-02の有効期限で、iat/2020-01-01に発行されたということを意味し、これを保証している。

ID Tokenの発行者(issuer)はOpenID ProviderOP)と呼ばれる[6][7]

発行者/Issuer 編集

ID Tokenの発行を担うIssuerとして様々なサービスが存在している。

Table. Issuer情報
発行主体 サービス iss
Google OAuth 2.0 APIs[8] accounts.google.com
Amazon Amazon Cognito User Pools https://cognito-idp.{region}.amazonaws.com/{userPoolId}[9]

Account Chooser 編集

OpenID Authentication 2.0、OpenID Connect のみではなく、SAMLなどでも問題になるユーザーインターフェースの問題(NASCAR問題、WAIF問題)を解決すべく検討されている仕様。

Mobile Profile 編集

携帯電話会社がOpenID ConnectのIdPになるために必要になる追加仕様を規定している。

Heart 編集

健康情報交換のための仕様。

(Deprecated)OpenID Authentication 2.0 編集

注:OpenID Authentication 2.0 は、OpenID Connectによって置換えられた。

2007年12月に制定された、ウェブサイトによらず使用できる認証連合アイデンティティシステムの規格の一つ。ユーザを識別するには、URIベースの主張識別子[10]を用いる。これは、ユーザが入力したものではなく、認証サーバが割り当てた再利用されないURIである。その為、ユーザ識別子の使い回しによる、旧ユーザのアカウントを新ユーザがのっとってしまう ユーザー・インパーソネイション[11] と呼ばれる問題が解決されるなどの特徴を持っている。

また、OpenID Simple Registration ExtensionOpenID Attribute Exchange などの拡張仕様を利用することによって、ユーザの属性情報を連携することができる他、どのような本人確認や認証手段(パスワード、OTP、ICカードなど)を使ったかなどの認証コンテキスト[12]も同時に連携可能である。

拡張仕様には、

  • OpenID Simple Registration
  • OpenID Attribute Exchange
  • OpenID Provider Authentication Property Extension

がある。

プロバイダには、ヤフー、AOL、フランステレコム、ドイチェ・テレコム、NTT、KDDI、ソフトバンクなど多数が対応している。

OpenID Process 編集

OpenID Process Document[13]によって規定される標準化プロセス。概ね以下の経緯をとって仕様として標準化される。

  1. ワーキンググループ設置提案(設立趣意書提出)
  2. 仕様カウンシルによるレビュー
  3. 理事会によるレビュー
  4. ワーキンググループ設置
  5. ワーキンググループメンバーによるIPRアグリーメント[14]提出
  6. ワーキング・ドラフト作成
  7. 実装者仕様案レビュー(45日間)
  8. 実装者仕様案投票(7日間)
  9. 実装事例およびフィードバック収集
  10. (大幅な変更が会った場合は、実証者仕様案レビューに戻る)
  11. 最終仕様案レビュー(60日間)
  12. 最終仕様投票(7日間)
  13. 最終仕様公開

OpenID財団 編集

米国オレゴン州で設立された、501(c)(6) 非営利団体である。著作権管理、商標管理、仕様をライセンス費用無しに使うことができるようにする(制限付き特許権非行使ライセンス)ための標準化プロセスの管理、OpenID財団の標準化プロセスで標準化された各種規格についての普及啓蒙を行うことを使命としている。

特許権管理は、「制限付き特許権非行使ライセンス」と呼ばれるモデルで、OpenID財団標準仕様の実装に対して、不可逆的特許権非行使宣言を行った主体に対しては特許権を互いに行使しないというものになっている。OpenID財団標準を実装したある企業が、他の企業に対して特許権の主張を行った場合、他の特許権保持者は当該企業に対しては特許権の行使ができるようになる。このため、特許権の行使には抑制的に働き、結果的に通常のロイヤリティ・フリーモデルよりも安全に利用できるようになることを狙っている。

役員 編集

役員[15]は以下の通り。

役職 担当者
理事長 Nat Sakimura (崎村夏彦)
副理事長 Adam Dawes(アダム・ドーズ)
会計担当 John Bradley(ジョン・ブラッドレイ)
書記 Mike Jones(マイク・ジョーンズ)
執行役員 Don Thibeau(ドン・ティボー)

法人理事 編集

法人理事[16]は、各スポンサー企業(年50,000ドル)によって指定された個人であり、所属が変わると他の人に引き継がれる。

スポンサー企業 担当者 備考
野村総合研究所 崎村夏彦 理事長
グーグル Adam Dawes 副理事長
KDDI
マイクロソフト Anthony Nadalin
ペイパル
シマンテック Brian Berliner
ピング・アイデンティティー Sarah Squire
ベライゾン Bjorn Hjelm
アメリカ合衆国保健福祉省 Debbie Bucchi

コミュニティ理事 編集

コミュニティ理事 [17] は、選挙によって選ばれる。なお、コミュニティ理事は、企業を離れた個人として選ばれており、所属が変わっても継続するので、所属はあくまで参考である。

担当者 備考
John Bradley Yubico、会計
Michael B. Jones マイクロソフト所属、書記
George Fletcher OATH所属

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

2008年2月28日OpenIDファウンデーション・ジャパンの設立が発表され、2008年10月1日OpenIDファウンデーション・ジャパンが有限責任中間法人として設立された、OpenID財団の日本支部。発起人企業は、シックス・アパート日本ベリサイン野村総合研究所の3社。参加企業は、ウェブ系だけでなく、銀行、保険、運輸など幅広く、2012年7月現在で42社に及ぶ[18]

人物 編集

脚注 編集

  1. ^ 【類似群コード】37D06 42N03 42P02 42P03 42Q02 42Q99 42X11
  2. ^ OpenID Connect Core 1.0” (2014年2月25日). 2014年12月1日閲覧。
  3. ^ Errata to OpenID Connect Specifications Approved”. The OpenID Foundation (2014年11月9日). 2014年12月1日閲覧。
  4. ^ : Implementer's Draft
  5. ^ a b End-User 認証に関する Claim を含んだセキュリティトークンである. 潜在的にはその他の Claim を含む可能性もある. ID Token は JSON Web Token (JWT) [JWT] である. OpenID Connect Core 1.0 - 2. ID Token
  6. ^ OpenID Provider (OP): End-User を Authenticate できる OAuth 2.0 Authorization Server. End-User の Authentication イベントに関する Claim を Relying Party に提供する. OpenID Connect Core 1.0 - 1.2.  Terminology
  7. ^ OP は ID Token および (通常は) Access Token を返す. OpenID Connect Core 1.0 - 1.3.  Overview
  8. ^ OpenID Connect | Google Identity Platform” (英語). Google Developers. 2019年9月30日閲覧。
  9. ^ iss クレームの形式は次のとおりです。 ユーザープールのトークンの使用 - 発行者 (iss)
  10. ^ : claimed identifier
  11. ^ : user impersonation
  12. ^ : authentication context
  13. ^ http://openid.net/wordpress-content/uploads/2010/01/OpenID_Process_Document_December_2009_Final_Approved.pdf
  14. ^ http://openid.net/wordpress-content/uploads/2010/01/paper-contribution-agreement-20100122.doc
  15. ^ officers
  16. ^ : corporate board members
  17. ^ : community board members
  18. ^ OpenID ファウンデーション・ジャパン - 会員一覧 OpenID Japan

参考文献 編集

関連項目 編集

外部リンク 編集