• 検索結果がありません。

オープンソース・ソリューション・テクノロジ株式会社 会社紹介

N/A
N/A
Protected

Academic year: 2021

シェア "オープンソース・ソリューション・テクノロジ株式会社 会社紹介"

Copied!
20
0
0

読み込み中.... (全文を見る)

全文

(1)

1

-Open Source Solution Technology

Open Source Solution Technology

OpenSSO勉強会

OpenSSOのID-WSF実装

オープンソース・ソリューション・テクノロジ株式会社 2010/02/02 武田 保真

(2)

ID-WSFサービスの構築

(3)

3

-ID-WSFのサービス設定

IdP設定、SP設定

– 「エンティティプロバイダ」の「新規」作成 – 「プロバイダのプロトコル選択」 SAMLv2、IDFF、WS連携(AD連携) – 各サービスの値の設定

(4)

OpenSSOのID-WSF実装

管理画面の「Webサービス」

– 「個人プロファイル」

idpp : ID Personal Profile

– 「ディスカバリサービス」

disco: discovery service

– 「SOAPバインドサービス」 – 「認証サービス」

関連ソースコード

(5)

5

-「個人プロファイル」

Liberty AllianceのID-SISに基づいて、個人のプロファイ

(6)

「個人プロファイル」パラメーター

リソースIDマッパー

– ユーザーIDとリソースIDをマッピングするためのJavaのクラス を指定 デフォルト値 – com.sun.identity.liberty.ws.interfaces.ResourceIDMapper.java を指定  getResourceID() : ユーザーIDからリソースIDを取得  getUserID() : リソースIDからユーザーIDを取得 

オーサライザ

– 個人プロファイルを要求するWSCの承認を行うためのJavaの クラスを指定 デフォルト値 – com.sun.identity.liberty.ws.idpp.plugin.IDPPAuthorizer (ソースが無い?)

(7)

「個人プロファイル」パラメーター

属性マッパー

– 個人プロファイルの属性を、OpenSSOの属性にマッピングする クラスを指定 デフォルト値 – com.sun.identity.liberty.ws.idpp.plugin.IDPPAttributeMapper  getDSAttribute() Personal Profileの属性名に対するLDAPの属性名を返す 

プロバイダID

– Personal Profileサービスを提供するID デフォルト値 – http://サーバー:8080/opensso/Liberty/idpp

(8)

「個人プロファイル」パラメーター

ネーミング方式

– 「FirstMiddleLast」しか選択できない... – ヘルプには「名姓」もあると書かれているが... 

ネームスペースプレフィックス

– PPサービスのXMLプロトコルに含まれる要素名のプレフィック ス 

サポートされるコンテナ

– PPサービスで利用可能な属性名のリスト

(9)

「個人プロファイル」パラメーター

PPLDAP属性マップリスト

(10)

SignKey SignKey

「個人プロファイル」サービス

http://server:8080/opensso/Liberty/idpp OpenSSO OpenSSO IDPP サービス LDAP 承認 オーサライザ 属性マッパー PP属性名 LDAP属性名 コンテナ CommonName AddressCard InformalName SignKey WSC PP要求

(11)

IDPPサービスの実装

com.sun.identity.liberty.ws.idpp

– PPRequestHandler.java IDPPサービスに対するSOAPメッセージ要求を、解析し、 PersonalProfileに対する要求へと処理する。 – PersonalProfile.java WSCからのPP要求に対して、Directory Serviceから値の取得や更新を 行う – WSCの認証  SessionManager.getProvider().isValid() – Directory Serviceに登録されているユーザーのDN取得  getUserDN() – 要求されたユーザーの属性値の取得  getUserData()

(12)

PersonalProfile.java

queryData()

– IDPPサービスに対して要求されたリソースIDに対して、LDAP に登録されている該当ユーザーの各属性値を返す WSCの認証 – SessionManager.getProvider().isValid() リソースIDからユーザーのDNへのマッピング – getUserDN() IDPPに要求された属性情報をLDAPから取得 – getUserData() 取得したデーターをXMLに変換 – container.toXMLDocument()

(13)

ディスカバリーサービス

IDサービスを提供しているWebサービスプロバイダの情

(14)

「ディスカバリサービス」パラメーター

プロバイダID

– ディスクカバリサービスを提供するURI デフォルト値 – http://server:8080/opensso/Liberty/disco 

サポートされている認証メカニズム

– WSCが要求を行った際に、WSPで認証するためのメカニズム 

サポートされているディレクティブ

– ディレクトリサービスのリソースをWSCに提供する際に、WSC に求められるアクセスポリシーを設定 

オーサライザプラグインクラス

– WSCの認証を行うクラスの設定

(15)

「ディスカバリサービス」パラメーター

エントリハンドラプラグインクラス

– ディスカバリサービスの処理を行うハンドラクラス デフォルト値 – com.sun.identity.liberty.ws.disco.plugins.UserDiscoEntryHandler (用意さ れていない) 

リソースIDマッパープラグイン用のクラス

– 各ディスカバリーサービスに対する、IDマッパーの実装 デフォルト値 – com.sun.identity.liberty.ws.disco.plugins.Default64ResourceIDMapper

(16)

「ディスカバリーサービス」パラメーター

暗黙のリソース

– デフォルト値: 無効 – ID-WSF 1.x仕様のための実装 – 有効にした場合、エントリハンドラとして、「グローバルエントリ ハンドラプラグインクラス」が使用される。 – 無効(ID-WSF 2.0仕様)の場合、エントリハンドラとして、「エン トリハンドラプラグインクラス」が利用される(デフォルト)

(17)

「ディスカバリーサービス」パラメーター

ブートストラップとは

– SSOアサーションに、ディスカバリーサービスのプロバイダ ID(URL)などを含めて、WSCに提供する機能 – SSO完了後に、WSCは受け取ったプロバイダIDを使って、ディ スカバリーサービスに対して、WSPを探索するためのQueryを 発行することができる。 

ブートストラップのリソースオファリング

– ブートストラップには、1つだけリソース情報を含めることが可 能 ディスカバリーサービスのプロバイダIDなどを設定 http://docs.sun.com/app/docs/doc/820-3885/ggmjr?a=view

(18)

「ディスカバリーサービス」概要

WSC IDMapperResource ブートストラップ (プロバイダID) ディスカバリーサービス http://server:8080/opensso/Liberty/disco Disco ServiceManager オーサライザ エントリ ハンドラ ディレクティブ リソース オファリング

(19)

ディスカバリーサービスの実装

com.sun.identity.liberty.ws.disco.DiscovertyService

– ディスカバリーサービスの要求を処理 getAtuthenticationMechanism() – リクエスト中の認証メカニズムを判定(X509, SAML, BEARER,null) lookup() – 要求されたリソース情報を提供  getResourceID()  idMapper = DiscoServiceManager.getResourceIDMapper()  userDN = idMapper.getUserID()  entryHandler = DiscoServiceManager.getDiscoEntryHandler()  authorizer = DiscoServiceManager.getAuthorizer()  returnMap = DiscoUtils.checkPolicyAndHandleDirectives()

(20)

com.sun.identity.liberty.ws.disco.plugins.D

efault64ResourceIDMapper.java

getResourceID(providerID, userID)

– ユーザーIDを、プロバイダから取得するためのリソースIDに変 換 – 書式は、「providerID + “/” + base64encode(UserID)」 http://server:8080/opensso/Liberty/disco/xxxxxxxxx 

getUserID(providerID, resourceID)

– リソースIDから、ユーザーIDを取得

参照

関連したドキュメント

BIGIグループ 株式会社ビームス BEAMS 株式会社アダストリア 株式会社ユナイテッドアローズ JUNグループ 株式会社シップス

三洋電機株式会社 住友電気工業株式会社 ソニー株式会社 株式会社東芝 日本電気株式会社 パナソニック株式会社 株式会社日立製作所

訂正前

当法人は、40 年以上の任意団体での活動を経て 2019 年に NPO 法人となりました。島根県大田市大 森町に所在しており、この町は

東京電力パワーグリッド株式会社 東京都千代田区 東電タウンプランニング株式会社 東京都港区 東京電設サービス株式会社

東電不動産株式会社 東京都台東区 株式会社テプコシステムズ 東京都江東区 東京パワーテクノロジー株式会社 東京都江東区

東京電力パワーグリッド株式会社 東京都千代田区 東電タウンプランニング株式会社 東京都港区 東京電設サービス株式会社

東電不動産株式会社 東京都台東区 株式会社テプコシステムズ 東京都江東区 東京パワーテクノロジー株式会社 東京都江東区