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 Provider（OP）と呼ばれる[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 Authentication 2.0 は、OpenID Connectによって置換えられた。

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

また、OpenID Simple Registration Extension、OpenID 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 （崎村夏彦)
副理事長 | Dima Postonikov（ディマ・ポストニコフ）
会計担当 | Nancy Cam-Winget（ナンシー・キャム＝ウィンゲット）
書記 | Marie Jordan（マリー・ジョーダン）
コミュニティ担当 | George Fletcher（ジョージ・フレッチャー）
執行役員 | Gail Hodeges（ゲイル・ホジス）

### 法人理事

[編集]

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

スポンサー企業 | 担当者 | 備考

|
|

Authlete | Ian Glazer |
Block | Manik Surtani |
Chicago Advisory Partners | Elcio Calefi |
グーグル | Dirk Balfanz |
KDDI | Kosuke Koiwai |
マイクロソフト | Pamela Dingle |
Mastercard | Adam Sommer |
NRIセキュア・テクノロジーズ | Osamu Oshima |
Okta | Aaron Parecki |
ピング・アイデンティティー | Wesley Dunnington |
Yahoo | Naveen CM |

### コミュニティ理事

[編集]

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

担当者 | 備考

|

John Bradley | Yubico
Michael B. Jones | Self-Issued Consulting
Nat Sakimura | NAT Consulting

### コーポレート理事

[編集]

コーポレート理事は、一般のメンバー企業により選出される。

担当者 | 備考

|

Atul Tulshibagwale | SGNL
Mark Verstege | Australia COmmonwealth Treasury

## 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

## 参考文献

[編集]

* OpenID Authentication 2.0時代の幕開け (@（アットマーク）IT)
* 米国で盛り上がる“OpenID”（ASCII.（dot）jp）
* OpenIDが熱狂的に受け入れられる理由（@（アットマーク）IT）
* INTERNET WatchでのOpenID紹介記事

## 関連項目

[編集]

* デジタルアイデンティティ
* シングルサインオン
* Security Assertion Markup Language
* i-name
* OAuth
* 連合アイデンティティ

## 外部リンク

[編集]

* OpenID Foundation website （英語）
* OpenID ファウンデーション・ジャパン （日本語）
* OpenID Foundation JP (@openidjp) - X
* OpenID Foundation Japan (openid.jp) - Facebook