27
- 1 - Open Source Solution Technology Open Source Solution Technology Copyright © 2009 Open Source Solution Technology OpenSSO勉強会 ID-WSF OpenSSO オープンソース・ソリューション・テクノロジ株式会社 2009/12/01 武田 保真

OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 1 -

Open Source Solution TechnologyOpen Source Solution Technology

Copyright © 2009 Open Source Solution Technology

OpenSSO勉強会ID-WSF と OpenSSO

オープンソース・ソリューション・テクノロジ株式会社2009/12/01

武田 保真

Page 2: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 2 -Copyright © 2009 Open Source Solution Technology

ID-WSFとは

ID-WSF (Identity Web Service Framework)– ID-WSFの目的

ID連携環境間の統合(Federation)– 属性情報の交換のための仕様

SP

IdP

SP SP SP

IdP

SP SP

FederationFederation

Circle of TrustCircle of Trust Circle of TrustCircle of Trust

Page 3: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 3 -Copyright © 2009 Open Source Solution Technology

ID-WSFの重要キーワード(1)

WSP (Web Service Provider)– ユーザーの属性情報を提供する

WSC (Web Service Consumer)– ユーザーの属性情報を利用して、サービスを提供する

DS (Discovery Service)– ユーザーが利用するWSPの情報などを管理、提供する– ユーザーがWSCを利用するための、本人識別情報(Identity

Token)を提供

IS (Interaction Service)– ユーザーに情報を提供してよいか確認するサービスを提供す

Page 4: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 4 -Copyright © 2009 Open Source Solution Technology

ID-WSFの連携概要(1)ユーザーユーザーユーザーユーザー WSCWSC

WSP/ISWSP/ISDSDS

(1) 商品購入リクエスト

(4) 住所情報渡してもOK?

OK!!OK!! (3) ユーザーの住所情報ください!!

(2) ユーザーの住所情報はどこ?

住所情報住所情報

WSPWSP情報情報

ピザ配達ピザ配達

Page 5: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 5 -Copyright © 2009 Open Source Solution Technology

ID-WSFの重要キーワード(2)

PS (People Service)– ユーザーの人間関係に関する情報を提供するサービス

ユーザーの友人情報やグループ情報など

AS/SSOS/IMS (Authentication, Single Sign On, Identity Mapping Service)

– ユーザーの認証情報やIdentity Tokenを提供するサービス– Identity Tokenのマッピングを実施

Page 6: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 6 -Copyright © 2009 Open Source Solution Technology

People Serviceの連携

ユーザーユーザーAA ユーザーユーザーBB ユーザーユーザーCC

WSCWSC

photo共有

PSPS

ユーザーユーザーAAユーザーユーザーBB

ユーザーユーザーBBユーザーユーザーCC

ゴルフ倶楽部

ダンスサークル

(1) 写真アップロード

(3) 写真閲覧

閲覧ユーザーがゴルフ倶楽部に所属している?

閲覧禁止

(2) 写真閲覧

閲覧許可

Page 7: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 7 -Copyright © 2009 Open Source Solution Technology

AS/SSOS/IMSの連携

ユーザーユーザーAA WSCWSCSNS

IMSIMS WSP/ISWSP/IS

(1) Bさんのメールアドレス 教えて!!

(2) Bさんのメールアドレス 教えてください

Bさんが分かりません(3) BさんのWSPでの  IDを教えてください

ZBさんです

(4) ZBさんのメールアドレス 教えてください

ZB@xxx

ZB@xxx

Page 8: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 8 -Copyright © 2009 Open Source Solution Technology

ID-WSFのコンポーネント構成

TCP/IPTCP/IPSSL/TLSSSL/TLS

HTTPHTTPSOAPSOAP

WS-AddressingWS-AddressingWS-SecurityWS-Security

Security MechanismsSecurity MechanismsSOAP BindingsSOAP Bindings

Subscription and NotificationSubscription and Notification

DiscoveryDiscoveryServiceService

PeoplePeopleServiceService

AuthenticationAuthenticationServiceService

Data ServiceData ServiceTemplateTemplate

ID-SISID-SISServicesServices

OASIS/W3C仕様

Liberty ID-WSF仕様

Page 9: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 9 -Copyright © 2009 Open Source Solution Technology

ID-WSF SOAP Bindings

ID-WSFは、ID連携の際のSOAPベースの統一フレームワークを定義

– SOAP: Softwareがメッセージ交換するためのプロトコル

Page 10: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 10 -Copyright © 2009 Open Source Solution Technology

ID-WSF Security Mechanisms

ID-WSF Security Mechanisms Core– ID連携サービスを安全に使うための要件定義– IdP間のIDトークンを定義– SP間のプライバシー保護のための要件定義

ID-WSF Security Mechanisms SAML Profile– SAML Assertion Profileを定義– WS-Security SAML Token Profileを定義

Page 11: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 11 -Copyright © 2009 Open Source Solution Technology

ID-WSF Discovery Service

ID連携の利用者に、登録されているサービスを発見するための手段を提供

– DSは、ID-WSFのエンドポイント(End Point Reference)情報を提供

– DSは、利用者のSecurity Tokenを発行

Page 12: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 12 -Copyright © 2009 Open Source Solution Technology

ID-WSF Data Service Template

ID-WSFで提供するData Serviceのテンプレートを定義– データーの作成・更新・削除手順などを定義– 共通の属性の定義など

Page 13: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 13 -Copyright © 2009 Open Source Solution Technology

ID-WSF Subscriptions and Notification

プロバイダ間のイベント通知メカニズムを定義

Page 14: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 14 -Copyright © 2009 Open Source Solution Technology

ID-WSF Interaction Service

ユーザーからアクセス許可などを得るためのアクションを行うためのプロトコルを定義

Page 15: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 15 -Copyright © 2009 Open Source Solution Technology

ID-WSF Profiles for Liberty enabled User Agents or Devices (LUAD) ユーザーエージェントやデバイスが保持するLibertyのプ

ロファイル情報の定義

Page 16: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 16 -Copyright © 2009 Open Source Solution Technology

Reverse HTTP Binding

HTTPのレスポンス内のSOAPリクエストを扱うことを可能にする

この機能を利用して、インターネットから直接アクセスできないIDサービスと連携可能となる

Page 17: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 17 -Copyright © 2009 Open Source Solution Technology

ID-WSF Authentication, Single Sign On, Identity Mapping Services WSCやユーザー(LUAD)が、SAMLを使ってIdPと通信

する際の認証手段を定義

Page 18: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 18 -Copyright © 2009 Open Source Solution Technology

ID-WSF People Service

ユーザーが他のユーザーの属性情報にアクセスするためのセキュリティやプライバシー保護の要件の定義

Page 19: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 19 -Copyright © 2009 Open Source Solution Technology

OpenSSOソースコード解析

Page 20: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 20 -Copyright © 2009 Open Source Solution Technology

属性情報の取得の流れ

ユーザーユーザーAA WSCWSC

DS(OpenSSO)DS(OpenSSO)

DSにWSPの情報をリクエスト

DiscoveryQuery

QueryResponse

Page 21: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 21 -Copyright © 2009 Open Source Solution Technology

Discovery Service

products/federation/library/source/com/sun/identity/saml2/idpdiscovery

ConfiguratorFilter.java

CookieReaderServlet.java

CookieUtils.java

CookieWriterServlet.java

Debug.java

IDPDiscoveryConstatns.java

IDPDiscoveryWARConfigurator.java

SystemProperties.java

IdPのDS設定関連

SPのReader Service

HTTPのCookieの処理

IdPのWriter Service

デバッグ用の処理

定数の定義

IdPのDiscovery設定用のクラスファイル

システム設定読み取り用の処理

ファイル名ファイル名 処理内容処理内容

Page 22: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 22 -Copyright © 2009 Open Source Solution Technology

OpenSSOのWSF関連処理

products/federation/library/source/com/sun/identity/wsfederation/servlet

– WSFederationServlet.javaServletの処理

– GET : doGet()– POST : doPost()

doGet(request, response){ action = WSFederationActionFactory.createAction(request,response) action.process()}

Page 23: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 23 -Copyright © 2009 Open Source Solution Technology

product/federation/library/source/com/sun/identity/wsfederation/servlet/WSFederationServlet.java : WSFederationAction.createAction()

リクエストに含まれる各種パラメーターの値の取り出しrequest.getParameter()

“wa” : action“wresult” : result“whr” : home realm“wtrealm” : requesting realm“wreply” : destination url“wct” : current time“wctx” : context value

GETの処理wtrealmがあるなら→ IPSigninRequest()wtrealmがなければ→ RPSigninRequest()

POSTの処理RPSigninResponse()

リクエストの種類に応じたインスタンスの作成

Page 24: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 24 -Copyright © 2009 Open Source Solution Technology

products/federation/library/source/com/sun/identity/wsfederation/servlet/IPSigninRequest.java : IPSigninRequest.process()

sendResponse()

まだログインしていない場合 redirectAuthentication()

セッション情報取得 WSFederationUtils.sessionProvider.getSession()

リモートPRの確認 WSFederationMetaManager.isTrustedProvider()

IdP情報の取得 WSFederationMetaManager.getEntityByMetaAlias()WSFederationMetaUtils.getRealmByMetaAlias()WSFederationMetaManager.getEntityByTokenIssuerName()

IdPのメタ情報の取得WSFederationMetaUtils.getMetaAliasByUri()

Page 25: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 25 -Copyright © 2009 Open Source Solution Technology

products/federation/library/source/com/sun/identity/wsfederation/meta/WSFederationMetaUtils.java : getMetaAliasByUri()

与えられたURIに”metaAlias” + αの文字列が含まれていれば、”metaAlias” 以降の文字列を追加して返す

定数埋め込み : index + 9 は良くないのでは...

Page 26: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 26 -Copyright © 2009 Open Source Solution Technology

products/federation/library/source/com/sun/identity/wsfederation/meta/WSFederationMetaManager.java : getEntityByMetaAlias()

metaAliasとして指定された文字列を基に、FederationIDを返す

レルム名の取得WSFederationMetaUtils.getRealmByMetaAlias()

レルム名から全entityIDの取得configInst.getAllConfigurationNames()

レルム名とentityIDからIdPかSPの設定情報の取得getEntityConfig()FederationConfigElement.getIDPSSOCOnfigOrSPSSOConfig()

エイリアス名が一致するconfig情報をリターン

Page 27: OpenSSO勉強会 ID-WSF と OpenSSO - OSSTech...Mapping Service) – ユーザーの認証情報やIdentity Tokenを提供するサービス – Identity Tokenのマッピングを実施

- 27 -Copyright © 2009 Open Source Solution Technology

参考資料

Liberty Alliance ID-WSF 2.0仕様書– http://www.projectliberty.org/resource_center/specifications/liberty_alliance_id_wsf_2_0_specifications_including_errata_v1_0_updates/

liberty-idwsf-overview-v2.0.pdf liberty-idwsf-disco-svc-v2.0-original.pdf

Liberty Alliance Wiki– http://wiki.projectliberty.org/index.php/JapanSIG/Documents/TechTutorials

Liberty Alliance ID-WSF仕様について