アイデンティティ管理の基礎~fim adfsアーキテクチャ
DESCRIPTION
2012/09/22 .NETラボ勉強会資料 ・アイデンティティ管理の基礎 ・Forefront Identity Manager 2010 R2 アーキテクチャ解説 ・Active Directory Federation Services 2.0 アーキテクチャ解説TRANSCRIPT
アイデンティティ管理の基礎 ~FIM / AD FS アーキテクチャ解説2012/09/22MVP for Forefront Identity ManagerNaohiro Fujie / @phr_eidentity
自己紹介 アイデンティティ関係
◦ NPO 日本ネットワークセキュリティ協会( JNSA)アイデンティティ管理 WG 書籍「クラウド環境におけるアイデンティティ管理ガイドライン」( http://amzn.to/A6MukD)
◦ Kantara Initiative Japan WG◦ OpenID Foundation Japan 翻訳・教育WG
OAuth 2.0 Spec 翻訳(https://github.com/openid-foundation-japan/openid-foundation-japan.github.com)
◦ Facebook ページ(http://www.facebook.com/eidentity)
FIM / AD FS 関係◦ MVP for Forefront Identity Manager◦ @IT連載
Windowsで構築する、クラウド・サービスと社内システムの SSO環境(http://www.atmarkit.co.jp/fwin2k/operation/adsf2sso01/adsf2sso01_01.html)
クラウド・サービス連携の基本と最新トレンド( http://www.atmarkit.co.jp/fwin2k/operation/idftrend01/idftrend01_01.html)
◦ Blog IdM 実験室(http://idmlab.eidentity.jp)
2
目次アイデンティティ管理の基礎
◦アイデンティティとは◦アイデンティティ管理とは
FIM / AD FS アーキテクチャ解説◦Forefront Identity Manager 2010 R2◦Active Directory Federation Services
2.03
アイデンティティ管理の基礎
4
アイデンティティとは“ID” から連想するよくある間違い
◦識別子( Identifier ) 番号 ログイン ID
“ID”=“ アイデンティティ”◦実体( Entity )を構成する属性の集合
ISO/IEC 247605
アイデンティティの構成要素要素 解説 例
属性 後天的に取得された主体に関わる情報(後から変化する)
名前、電話番号、社員番号、メールアドレス、認証状態、位置情報
好み 主体の嗜好に関わる情報 甘いものが好き
形質 主体の先天的な特有の性質(後から変化しにくい)
生年月日、性別?
関係性 他の主体との関係に関わる情報(一部属性と重複)
XX 大学卒業、 YY 部所属
6
これらをコンピューターシステム上に反映したもの(コンピューターシステム上での実体を表すもの)
⇒ デジタル・アイデンティティ
アイデンティティ管理とは3 つの“ A” を切り口に管理する
7
構成要素 意味
認証( Authentication )
ユーザが本人であることを証明すること(デジタル・アイデンティティとリアル・アイデンティティの紐付を行う)
認可( Authorization )
認証されたユーザに権限を与えること(デジタル・アイデンティティに何を許可するかを決定する)
属性( Attribute ) ユーザを構成する情報(何でデジタル・アイデンティティを構成するかを決定する)
実装と管理 実装手段
◦ 認証:パスワード、証明書、 OTP、リスクベース◦ 認可:リソース(フォルダ等)へのアクセス権付与◦ 属性:ユーザ DB の整備(AD、DBMSなど)
分散システムにおける管理手段◦ プロビジョニング
オーソリティにある属性情報を他システムへ反映する◦ フェデレーション
認証状態などを含むアイデンティティ情報をシステム間で受け渡す 受け取ったシステム側に保持しているアイデンティティ情報との渡され
た情報を紐付けることでシングルサインオンなどを実現する
8
実装例:プロビジョニング
9
ユーザ
利用
対象システム
ID 管理システム人事 DB
入社、異動、退社などのイベントに合わせて人事情報を取込み
利用ポリシーに合わせて各システムへ ID を配布
各システム間のアイデンティティ情報の
整合性を担保
事前信頼指定
実装例:フェデレーション
10
認証サーバ フェデレーションサーバ( Identity Provider /
IdP )
アプリケーション( Relying Party /
RP )
① アクセス
② 認証状態チェック
③ リダイレクト
④ 認証指示
⑤ 認証
⑥ トークン発行
ユーザ
信頼できるサーバから発行されたトークンの中の ID 情報を自前の
ID 情報と紐付ける⇒SSO の実現
FIM / AD FSアーキテクチャ解説
11
FIM
12
FIM とはアイデンティティ情報のライフサイ
クル管理を行うエンジン
13
1997
1999
2003
2005
2007
2010
2011
2012
歴史
14
Linkage/LDE買収
VIA/ Zoomit買収
⇒MMS
FIM2010
MIIS2003SP2+CLMILM200
7MIIS20
03BHOLD買収
FIM2010 R2
Alacris/
IdNexus買収
⇒CLM
主な機能様々なアイデンティティ・ストアとの同期( AD DS /
SQL Server / SAP / Notes / Sun Oracle LDAP / Novell LDAP ・・・)
グループ管理(セキュリティ・グループ、配布グループ)
ID 管理ワークフローセルフ・プロファイル管理セルフ・サービス・パスワード・リセットアテステーション、レポーティング証明書ライフサイクル管理
15
FIM 2010 R2
ハイレベル・アーキテクチャ
16
FIM Service
FIM Reporting
FIM Portal
FIM Clients
FIM Sync Service
FIM CM
Identity Stores
Certification Authority
※BHOLD Suite は除く
SCSM
※PCNS ( AD )
コンポーネントとスタック
17
WSS / MOSS
SQL Server
FIM Portal
IIS / ASP.NET
Password Reset
Password Regist
FIM Service
FIM Sync
ServiceSCSM
FIM Repotin
g
※BHOLD Suite は除く
FIM CM Portal
FIM Component
s
コンポーネントと役割コンポーネント 役割
FIM Portal FIM Service を構成するためのポータル
FIM Service FIM の中心機能。ポリシー実行エンジン
FIM Sync Service 各 ID ストアとのデータ同期エンジン
FIM Password Registration Portal
パスワードリセット用の秘密のキーワードを登録するためのポータル
FIM Password Reset Portal パスワードをリセットするためのポータル
FIM Password Reset Extensions
OS のログイン画面にパスワードリセット機能を追加するクライアント拡張機能
FIM Add-ins for Outlook 申請・承認を Outlook で実行するアドイン
FIM Reporting SCSM を使ったレポーティングモジュール
Password Change Notification Service
AD へのパスワード変更をフックするために各ドメインコントローラへ導入するモジュール
FIM CM Portal 証明書管理を行うためのポータル18
コア・アーキテクチャFIM Service
◦FIM Service Database 内にアイデンティティ情報を保持する
◦そのアイデンティティ情報を管理(作成、変更、削除)するための管理ポリシーを定義する
19
コア・アーキテクチャFIM Service
◦管理ポリシー規則の処理パイプライン
20
Request Processo
r
Delegation &Permissio
ns
AuthN Workflow
AuthZ Workflow
FIM Service Database
Action Workflow
申請を受信
申請者の権限をチェック
認証を行う
認可を行う
データを更新する
更新後のアクションを実行する
必須用語
21
用語 解説
管理ポリシー規則( MPR )
FIM Service 内のオブジェクトを操作する際の規則(誰が何を出来るか、など)
同期規則( SR ) 各種アイデンティティ・ストアとの ID 情報の同期を行うための規則(属性のマッピングなど)
セット( SET ) FIM Service の中でオブジェクトのグルーピングを行う単位(条件ベースでのメンバシップ、明示的なメンバシップ)
ワークフロー 認証( AuthN )、認可( AuthZ )、アクションが存在。特にアクションは管理ポリシー規則を適用した結果何を行うかを定義する(同期規則の実行など)
プロビジョニング実行時の例定義対象 定義内容
セット 処理対象となるオブジェクトの条件を定義(例:部署属性の値が「営業部」なら)
アクションワークフロー
実行する内容を定義(例: AD DS への発信同期規則を追加する ⇒ AD DS へユーザが作られる)
同期規則 FIM Sync Service 上の管理エージェントを使ってターゲットシステムとの同期を行う際のルールを定義(例: AD DS の sAMAccountName 属性には FIM Service 上の 表示名をマッピングする)
22
管理ポリシー規則
セットアクションワークフロー
同期規則
適用対象条件 適用内容定義
この組み合わせが
管理ポリシー
規則
コア・アーキテクチャFIM Sync Service
◦各種アイデンティティ・ストアと情報を同期する
◦FIM Sync Service のレポジトリと各アイデンティティ・ストア用のステージング領域を同期し、各管理エージェントを使って実際の各アイデンティティ・ストアと情報をやり取りする
23
必須用語
24
用語 解説
Metaverse FIM Sync Service の中央レポジトリ
Connector Space ( CS )
各 ID Store 用のステージング領域
Management Agent ( MA )
各 CS のデータを実際の ID Store と接続するためのエージェント
Synchronization Metaverse と各 CS の間のデータを同期する(差分、フル)
Import 各 ID Store から対応する CS にデータを取り込む(差分、フル)
Export 各 CS から対応する ID Store にデータを出力する
Run Profile Import / Export / Synchronization の処理の定義
コア・アーキテクチャ
25
Metaverse
MAID Store
CS
CS
CS
CS
MA
MA
MA IDStor
e
各 ID Store用のデータ
中央データ ストア
同期 インポート
各 ID Store用の接続
Agentエクスポート
FIM Service + FIM Sync ServiceFIM Service とのオブジェクト同期
は FIM Sync Service の MA を介して行う
FIM Sync Service の構成情報(他 CS の構成など)は Web Service 経由で FIM Service に伝搬する
26
同期規則の取り込みFIM Sync Service で MA を作成
◦FIM Service に対して以下の申請が発行 Create ma-data ‘MA 名’ Request Update to mv-data: ‘Metaverse
configuration object’ Request⇒FIM Service が MA を認識、同期規則を作成する際のターゲットシステムとして設定が可能になる
27
同期規則の取り込みFIM Service で同期規則の作成
◦FIM Service Database 内に同期規則オブジェクトが作成される
◦FIM Sync Service で FIM Service MA の Import / Synchronization を実行 Metaverse 内に作成された同期規則オブジェ
クトが作成される
28
同期規則の取り込み
29
MVFIM CSFIM
Service
インポート 同期
SRSR SR
FIM Portal
MA に対応する SR の作成
New MA / CS
MA の作成
MA
MA の作成Request
MA 定義の作成
MA
プロビジョニングFIM Service でオブジェクトを作成
◦管理ポリシー規則により対象オブジェクトに同期規則を割り当てる Expected Rules Entry 属性にアクション・ワークフロー
で定義された同期規則への参照が設定される◦FIM Sync Service で FIM Service MA の Import
/ Synchronization を実行する Metaverse 内にオブジェクトが作成される ERE 属性に設定された同期規則オブジェクトの内容に従
い対象 CS との Synchronization が実行される
30
プロビジョニング
31
MVFIM CSFIM
Service
インポート 同期
SR
FIM Portal
ユーザ作成、SET へ割当
て
New MA / CS
MPR
AW
SET SR
⇒ERE:SR への参照
関連付け
自動同期
IDStor
e
エクスポート
AD FS 2.0
32
事前信頼指定
AD FS 2.0 とは
33
認証サーバ フェデレーションサーバ( Identity Provider /
IdP )
アプリケーション( Relying Party /
RP )
① アクセス
② 認証状態チェック
③ リダイレクト
④ 認証指示
⑤ 認証
⑥ トークン発行
ユーザ
ここがAD FS 2.0
ここがAD DS
AD FS 2.0 とはセキュリティ・トークン・サービス
( STS )◦Active Directory を使った認証◦Active Directory / SQL Server などにス
トアされている属性情報(クレーム)をセキュリティ・トークンとして発行・変換
◦SAML 2.0 / ws-federation 等のプロトコルに対応
34
主な機能セキュリティ・トークンを
◦発行する◦変換する
セキュリティ・トークンを伝搬する◦SAML 2.0 プロトコル◦ws-federation プロトコル
35
SAML
アーキテクチャSAML オーソリティの構造と AD FS
2.0
36
認証オーソリティ
認証アサーション
属性オーソリティ
属性アサーション
決ポリシー定ポイント
認可決定アサーション
実ポリシー施ポイント
SAMLリクエスト
アクセス要求を受けたサーバ
クレデンシャル情報
アプリケーション要求
AD FS 2.0 の世界では認証 はオーソリティ AD DS のみ
属性 はオーソリティ AD DS/SQL/ カスタム決定 はポリシー ポイント AD DS/SQL/ カス
タム
SAML トークン / プロトコルSAML トークン(アサーション)
◦やり取りするメッセージ自身◦アイデンティティ情報を表現する方法
SAML プロトコル◦SAML トークンを IdP ⇔ RP の間でや
り取りするための手順を定めたもの
37
SAML 2.0 の構成要素構成要素 解説
トークン(アサーション)
IdP が発行するトークンでありアイデンティティ情報が記載されたもの
プロトコル アサーションを要求・返答するための方法
バインディング プロトコルを通信に乗せる方法( HTTP / SOAP /PAOS など)
プロファイル プロトコルとバインディングとアサーションを 組み合わせた方法
メタデータ プロトコルやサービスエンドポイントが記載されたもの
38
SAML トークン構造 発行者( Issuer )
◦ 誰が、いつ発行したトークンなのか 識別子( Subject )
◦ 何(誰)に関するトークンなのか 受信者( AudienceRestriction )
◦ 誰宛に発行されたトークンなのか アサーション( AD FS2.0 ではクレーム)
◦ 認証アサーション( AuthNStatement ) 認証された時間、手段
◦ 属性アサーション( AttributeStatement ) 属性情報(属性と値)
◦ 認可決定アサーション( AuthzDecisionStatement ) 特定リソースへのアクセス許可されているか
デジタル署名 39
トークン
属性アサーション
認可決定アサーション
デジタル署名
認証アサーション
SAML トークン構造発行者( Issuer )
40
<saml:Issuer> https://myadfs.example.local/adfs/services/trust</saml:Issuer>
フェデレーションにおける事前信頼⇒ アプリケーション( RP )はこの発行者情報(エンドポイントアドレス)およびトークンに付与されるデジタル署名の情報を登録する⇒AD FS 2.0 の「フェデレーションサービスの識別子」の URI※SAML トークンは BASE64 でエンコードされ、やり取りされるので、 XML 形式に復号するには SAML 2.0 Debugger などを利用する。 - SAML 2.0 Debugger https://rnd.feide.no/simplesaml/module.php/saml2debug/debug.php
SAML トークン構造識別子( Subject )
41
<saml:Subject> <saml:NameID> [email protected] </saml:NameID></saml:Subject>
フェデレーションにおけるアイデンティティの紐付け⇒ アプリケーション( RP )はこの識別子の属性名および属性値が自身の保持するアイデンティティと一致することで紐付を行う。例) Google Apps の場合、 NameIdentifier 属性に入っているメールアドレスの値が GoogleApps 上のアカウントと一致すればそのユーザに関する情報とみなす。
SAML トークン構造受信者( AudienceRestriction )
42
<saml:AudienceRestriction> <saml:Audience>google.com/a/mydomain</saml:Audience></saml:AudienceRestriction>フェデレーションにおける事前信頼
⇒ アプリケーション( RP )はこの発行者情報(エンドポイントアドレス)およびトークンに付与されるデジタル署名の情報を登録する⇒AD FS 2.0 の「証明書利用者信頼の識別子」の URI
SAML トークン構造認証 (アサーション AuthNStatement )
43
<saml:AuthnStatement AuthnInstant="2012-09-22T00:00:00.000Z"> <saml:AuthnContext> <saml:AuthnContextClassRef> urn:federation:authentication:windows </saml:AuthnContextClassRef> </saml:AuthnContext></saml:AuthnStatement>
※統合 Windows 認証の場合
SAML トークン構造属性 (アサーション AttributeStatement )
44
<saml:AttributeStatement> <saml:Attribute Name="organization_id"> <saml:AttributeValue xsi:type="xs:anyType">ABCDEFG </saml:AttributeValue> </saml:Attribute></saml:AttributeStatement>
※organization_id 属性の値が ABCDEFG となる例
SAML トークン構造認可決定アサーション
( AuthzDecisionStatement )
45
<saml:AuthzDecisionStatement Resource="http://www.example.com/secret.html" Decision="Permit"> <saml:Action Namespace="urn:oasis:names:tc:SAML:1.0:action:ghpp"> GET </saml:Action></saml:AuthzDecisionStatement>
※http://www.example.com/secret.html に対して GET を許可する例
SAML トークン構造デジタル署名
46
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> …… (デジタル署名に関する情報)……</ds:Signature>
フェデレーションにおける事前信頼⇒ アプリケーション( RP )はこのデジタル署名に関する情報を事前に登録する⇒AD FS 2.0 のトークン署名証明書
SAML プロトコル・フロー
47
ブラウザ IdP RP
サービスへアクセス
リダイレクト認証要求を IdP へ送付
認証Servi
ce
ユーザ認証
アサーション発行
ACSアサーションを POST
Assertion の生成と署
名Assertion 署名の検証
サービスへリダイレクト
サービスを利用
※WebSSO Profile / SP Initiated / POST Binding の例※ACS : Assertion Consumer Service
とりあえず・・・概念を説明してもらっても??な世界
デモだけ見ても??な世界
48
説明を聞いて、見て、触って、、、ようやくなんとなく理解できる
⇒ハンズオンをやってみましょう。