Your SlideShare is downloading. ×
0
OpenIDファウンデーション・ジャパン
2013年9月
OpenID Connect 概要
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
OpenID Connectとは
http://openid.net/connect
OAuth 2.0 仕様をベース...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
OpenID Connectは「OpenIDをOAuth 2.0ベースに
作り直す」というだけではない
 既存のID連...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
OpenID Connectによるフェデレーションの中心は
「IDトークン」
 エンドユーザの関与の元、
RPがOPに...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
IDトークンの中身
 OPにおけるユーザ認証イベントの情報
 「このエンドユーザーは○○で、何時何分に、こういう方法...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
RPからOPへのIDトークンの要求
 RPは認可リクエストに際し、IDトークンに含めてほしいクレームや、IDトー
クン...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
プロトコル・フロー (1): 認可コードフロー
IDトークンをRP/OP間で直接授受
 フロー概要
 RPからOPへ...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
プロトコル・フロー (2): Implicitフロー
OPがIDトークンをエンドユーザ経由でRPに返却
 フロー概要
...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
ユーザー属性のリクエスト
 認可リクエストのscopeパラメーターを用いて「クレームの
セット」を指定する方法が一般的...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
ユーザー属性の提供
 OpenID Connect仕様では二通りの方法を定義
 RPに返却するIDトークンに含める(...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
OpenID Connectの今後のロードマップ
現在Implementer’s Draftが公開中
 今後最終仕様...
Backup Slides
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
OpenID Connect仕様はモジュール化されており、
用途に応じて取捨選択が可能
Webクライアント向けのシン
プ...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
OpenID ConnectBasic ClientProfileに基づく認証結果の要求・取得の例 (*)
1. Web...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
OpenID ConnectBasic Client Profileに基づく認証結果の要求・取得の例
2. Webブラウ...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
OpenID ConnectBasic Client Profileに基づく認証結果の要求・取得の例
3. OPがユーザ...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
OpenID ConnectBasic Client Profileに基づく認証結果の要求・取得の例
4. OPがWeb...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
OpenID Connect Basic Client Profileに基づく認証結果の要求・取得の例
4. Webブラ...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
OpenID Connect Basic Client Profileに基づく認証結果の要求・取得の例
5. RPがOP...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
OpenID Connect Basic Client Profileに基づく認証結果の要求・取得の例
6. OPがRP...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
OpenID Connect Basic Client Profileに基づく認証結果の要求・取得の例
7. RPがID...
Copyright 2013 OpenID Foundation Japan - All Rights Reserved.
OpenID ConnectBasic ClientProfileに基づく認証結果の要求・取得の例
8. RPがWebブ...
OpenID Connect 概要 (2013年9月)
Upcoming SlideShare
Loading in...5
×

OpenID Connect 概要 (2013年9月)

4,165

Published on

Published in: Technology

Transcript of "OpenID Connect 概要 (2013年9月)"

  1. 1. OpenIDファウンデーション・ジャパン 2013年9月 OpenID Connect 概要
  2. 2. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID Connectとは http://openid.net/connect OAuth 2.0 仕様をベースに「アイデンティティ 層」を拡張した、OpenIDの次期バージョン 1 • OP(認可サーバー)へのユーザー認証の一元化 RP(クライアント)間の シングル・サインオン • OP側へのユーザーのクレデンシャル(パスワードなど) 管理の一元化 RP側のセキュリティ 向上と管理負荷の低減 • OPからのユーザー属性情報取得 RPでの新規ユーザー 登録の容易化 • エンドユーザーの認証とAPIアクセス認可の一体化ユーザー利便性の向上
  3. 3. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID Connectは「OpenIDをOAuth 2.0ベースに 作り直す」というだけではない  既存のID連携仕様であ る SAMLやWS- Federationの実世界で の適用パターン、そし て事業者独自のアイデ ンティティAPI (Facebook Connectな ど) を分析し、仕様化 したものとなっている 2 Source: http://civics.com/openid-connect-webinar/ OpenID Connectの系図
  4. 4. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID Connectによるフェデレーションの中心は 「IDトークン」  エンドユーザの関与の元、 RPがOPに「IDトークン」 というデータを要求する (認可リクエスト)  OPはエンドユーザーの認証 と、情報およびサービス 提供に関する同意を確認 し、IDトークンをRPに返却  RPはこの「IDトークン」を 用いてエンドユーザーを 識別し、アクセス可否を 行う 3
  5. 5. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. IDトークンの中身  OPにおけるユーザ認証イベントの情報  「このエンドユーザーは○○で、何時何分に、こういう方法で認証を受け、認証レ ベルは○で、…」  RPは主に、IDトークンに含まれる以下のクレーム(OPがユーザーに関して表 明する情報)を用いて、エンドユーザーのアクセス認可を行う  エンドユーザーを識別する値(識別子)  IDトークンの有効期限  ユーザ認証を実施した日時  認証コンテクスト・クラス・リファレンス  認証手段リファレンス  IDトークンにはこの他に ユーザー属性が含まれる こともある 4
  6. 6. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. RPからOPへのIDトークンの要求  RPは認可リクエストに際し、IDトークンに含めてほしいクレームや、IDトー クン生成にあたりどのような認証イベントを求めるかを指定  OPはその指定を考慮した上でIDトークンを返却  指定可能な内容の例  クレームのセット  認証および同意確認の際のUI  認証や同意の再実行の要否  エンドユーザを明示的に認証してからの経過時間  UIやクレームのロケール  OPがエンドユーザを 認証する際のヒント  認証コンテクスト・ クラス・リファレンスの値 5
  7. 7. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. プロトコル・フロー (1): 認可コードフロー IDトークンをRP/OP間で直接授受  フロー概要  RPからOPへエンドユーザを経由して 認可リクエストを送信  OPが「認可コード」と呼ばれる値を エンドユーザ経由でRPに返却  RPがその認可コードをOPに送信して IDトークン(ならびにアクセストーク ン)取得  特徴  IDトークンのやりとり(トークン・ リクエスト/レスポンス)がRPとOPとの 直接通信によって行われれる ▪ OPによるIDトークンへの署名は基本的には 不要となり、RP側での署名検証処理も発生 しない 6
  8. 8. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. プロトコル・フロー (2): Implicitフロー OPがIDトークンをエンドユーザ経由でRPに返却  フロー概要  エンドユーザ経由でOPがIDトークン (ならびにアクセストークン)をRPに 返却  特徴  IDトークンの授受に関し、RPからOP への通信が発生しない ▪ RPからOPへの直接通信が行えない環境 にも適用することが可能 ▪ OPによるIDトークンへの署名、および RP側での署名検証処理は必須  OPはIDトークンをURLフラグメントに エンコードしてRPに返却 ▪ RPはWebブラウザになんらかのスクリプ トをダウンロードさせて、そのスクリプ トによってフラグメントからIDトークン を抽出し、Webサーバー・アプリケー ションに送信させることとなる 7
  9. 9. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. ユーザー属性のリクエスト  認可リクエストのscopeパラメーターを用いて「クレームの セット」を指定する方法が一般的  OpenID Connectではクレームのセットとして以下を定義  profile(既定のプロファイル)、email(メールアドレス)、 address(住所)phone(電話番号)  OPが独自に定義した「ユーザ属性のセット」をRPが指定する ことも可能 8 scope=openid profile email http://example.com/employeeAttrs 仕様にて定義 OPが独自に定義
  10. 10. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. ユーザー属性の提供  OpenID Connect仕様では二通りの方法を定義  RPに返却するIDトークンに含める(前述)  RPがアクセス可能なUserInfoエンドポイントを用意する  UserInfoエンドポイント  OPがRPにユーザー情報を提供するためのAPI  OAuth 2.0仕様の「保護されたリソース(Protected Resource)」 ▪RPは、認可リクエストの際にIDトークンと同時にOPから取得 したアクセストークンを用いて、このUserInfoエンドポイント にアクセスする  UserInfoエンドポイントは、ユーザー情報を、通常は JSON形式にてRPに返却する 9 RP OP
  11. 11. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID Connectの今後のロードマップ 現在Implementer’s Draftが公開中  今後最終仕様に OpenID Connectを実装した製品・サービスの例 Yahoo! JAPAN (YConnect)、日本経済新聞社 (日経ID)、東急電鉄、Google、PayPal (Log In with PayPal)、野村総合研究所(Uni-ID)、 Ping Identity (PingFederate)、Gluu (OX)、Layer 7 10
  12. 12. Backup Slides
  13. 13. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID Connect仕様はモジュール化されており、 用途に応じて取捨選択が可能 Webクライアント向けのシン プルな仕様。 Basic Client Profileは OAuth 2.0認可コードフロー、 Implicit Client Profileは同 Implicitフローをベースに拡 張。 12
  14. 14. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID ConnectBasic ClientProfileに基づく認証結果の要求・取得の例 (*) 1. WebブラウザからRPの「ログイン」ボタンを クリック 13 認可 サーバー クライアント 認可 エンドポイント OpenID プロバイダ OpenID リライング・ パーティ (RP) example.comの IDでログイン! <a href="https://server.example.com/authorize?grant _type=code&scope=openid&client_id=3214244&state=af1 Ef">example.comのIDでログイン!</a> (*) 本ページ以降の例示は http://www.thread- safe.com/2012/07/how-simple-is-openid-connect- basic.html を元に作図 トークン エンドポイント
  15. 15. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID ConnectBasic Client Profileに基づく認証結果の要求・取得の例 2. WebブラウザがOPに認可リクエストを送信 14 認可 サーバー クライアント OpenID プロバイダ (OP) OpenID リライング・ パーティ (RP) GET /authorize?grant_type=code&scope=openid&client_ id=3214244&state=af1Ef HTTP/1.1 Host: server.example.com 認可 エンドポイント トークン エンドポイント
  16. 16. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID ConnectBasic Client Profileに基づく認証結果の要求・取得の例 3. OPがユーザーを認証 15 認可 サーバー クライアント OpenID プロバイダ (OP) OpenID リライング・ パーティ (RP) 何らかの方法でユーザーを 認証 例: ID/パスワード、OTP、 クッキー、… 認可 エンドポイント トークン エンドポイント
  17. 17. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID ConnectBasic Client Profileに基づく認証結果の要求・取得の例 4. OPがWebブラウザをRPにリダイレクト 16 認可 サーバー クライアント OpenID プロバイダ (OP) OpenID リライング・ パーティ (RP) Location: https://client.example.com/cb?code=8rFowi dZfjt&state=af1Ef OPがcodeを 返却 認可 エンドポイント トークン エンドポイント
  18. 18. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID Connect Basic Client Profileに基づく認証結果の要求・取得の例 4. WebブラウザがRPに、OPから受け取った 認可コードを送信 17 認可 サーバー クライアント OpenID プロバイダ (OP) OpenID リライング・ パーティ (RP) GET /cb?code=8rFowidZfjt&state=af1Ef HTTP/1.1 Host: client.example.com Webブラウザ 経由でRPに codeが渡る 認可 エンドポイント トークン エンドポイント
  19. 19. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID Connect Basic Client Profileに基づく認証結果の要求・取得の例 5. RPがOPに認可コードを送信しIDトークンを リクエスト 18 認可 サーバー クライアント OpenID プロバイダ (OP) OpenID リライング・ パーティ (RP) GET /token?code=8rFowidZfjt HTTP/1.1 Host: server.example.com Authorization: Basic … codeを送信 認可 エンドポイント トークン エンドポイント
  20. 20. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID Connect Basic Client Profileに基づく認証結果の要求・取得の例 6. OPがRPに、認可コードにひもづくIDトークン他 を返却 19 認可 サーバー クライアント OpenID プロバイダ (OP) OpenID リライング・ パーティ (RP) { "access_token": "SlAV32hkKG", "token_type": "Bearer", "refresh_token": "8xLOxBtZp8", "expires_in": 3600, "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. eyJpc3MiOiJodHRwczovL3NlcnZlci5leGFtcGxlLmNvbSIsInVz ZXJfaWQiOiIyNDgyODk3NjEwMDEiLCJhdWQiOiJodHRwOi 8vY2iwiZXhwIjoxxpZW50LmV4YW1wbGUuY29tIMzExMjgxOTcwfSA. eDesUD0vzDH3T1G3liaTNOrfaeWYjuRCEPNXVtaazNQ" } アクセス・ トークン (*) IDトークン (*) UserInfoやその他のAPIアクセスに 使用。本例では省略 認可 エンドポイント トークン エンドポイント
  21. 21. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID Connect Basic Client Profileに基づく認証結果の要求・取得の例 7. RPがIDトークンを復号し、OPが返却した ユーザー識別子を取得 20 { "iss": "https://server.example.com", “sub": "248289761001", "aud": "3214244", "iat": 1311195570, "exp": 1311281970 } eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. eyJpc3MiOiJodHRwczovL3NlcnZlci5leGFtcGxlLmNvbSIsInVz ZXJfaWQiOiIyNDgyODk3NjEwMDEiLCJhdWQiOiJodHRwOi 8vY2iwiZXhwIjoxxpZW50LmV4YW1wbGUuY29tIMzExMjgxOTcwfSA. eDesUD0vzDH3T1G3liaTNOrfaeWYjuRCEPNXVtaazNQ <?php $res = json_decode($response, true); $id_token = $res['id_token']; $id_array = mb_split(".", $id_token); $id_body = base64url_decode($id_array[1]); ?> RP側での復号処理 (例はPHPによる実装例。 ピリオド “.” で3分割し、2番目の パートをbase64urlデコード) 認証結果 (JWT Claims Set) RPが受け取った id_tokenの値 認証結果 ( base64urlエンコードされた JWT Claims Set) subの値 = OPからRPに 払い出された ユーザー識別子
  22. 22. Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID ConnectBasic ClientProfileに基づく認証結果の要求・取得の例 8. RPがWebブラウザにコンテンツを返却 21 認可 サーバー クライアント OpenID プロバイダ (OP) OpenID リライング・ パーティ (RP) OPから払い出されたユーザー識別子: 248289761001 にひもづくユーザー がすでに存在するか? Yes → 「ようこそ、太郎さん!」 No → 「既存ユーザーとのひもづけ or 新規登録をお願いします」 認可 エンドポイント トークン エンドポイント
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×