49
アアアアアアアアアアアアア FIM / AD FS アアアアアアアアア 2012/09/22 MVP for Forefront Identity Manager Naohiro Fujie / @phr_eidentity

アイデンティティ管理の基礎~Fim adfsアーキテクチャ

Embed Size (px)

DESCRIPTION

2012/09/22 .NETラボ勉強会資料 ・アイデンティティ管理の基礎 ・Forefront Identity Manager 2010 R2 アーキテクチャ解説 ・Active Directory Federation Services 2.0 アーキテクチャ解説

Citation preview

Page 1: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

アイデンティティ管理の基礎 ~FIM / AD FS アーキテクチャ解説2012/09/22MVP for Forefront Identity ManagerNaohiro Fujie / @phr_eidentity

Page 2: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

自己紹介 アイデンティティ関係

◦ 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

Page 3: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

目次アイデンティティ管理の基礎

◦アイデンティティとは◦アイデンティティ管理とは

FIM / AD FS アーキテクチャ解説◦Forefront Identity Manager 2010 R2◦Active Directory Federation Services

2.03

Page 4: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

アイデンティティ管理の基礎

4

Page 5: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

アイデンティティとは“ID” から連想するよくある間違い

◦識別子( Identifier ) 番号 ログイン ID

“ID”=“ アイデンティティ”◦実体( Entity )を構成する属性の集合

ISO/IEC 247605

Page 6: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

アイデンティティの構成要素要素 解説 例

属性 後天的に取得された主体に関わる情報(後から変化する)

名前、電話番号、社員番号、メールアドレス、認証状態、位置情報

好み 主体の嗜好に関わる情報 甘いものが好き

形質 主体の先天的な特有の性質(後から変化しにくい)

生年月日、性別?

関係性 他の主体との関係に関わる情報(一部属性と重複)

XX 大学卒業、 YY 部所属

6

これらをコンピューターシステム上に反映したもの(コンピューターシステム上での実体を表すもの)

⇒ デジタル・アイデンティティ

Page 7: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

アイデンティティ管理とは3 つの“ A” を切り口に管理する

7

構成要素 意味

認証( Authentication )

ユーザが本人であることを証明すること(デジタル・アイデンティティとリアル・アイデンティティの紐付を行う)

認可( Authorization )

認証されたユーザに権限を与えること(デジタル・アイデンティティに何を許可するかを決定する)

属性( Attribute ) ユーザを構成する情報(何でデジタル・アイデンティティを構成するかを決定する)

Page 8: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

実装と管理 実装手段

◦ 認証:パスワード、証明書、 OTP、リスクベース◦ 認可:リソース(フォルダ等)へのアクセス権付与◦ 属性:ユーザ DB の整備(AD、DBMSなど)

分散システムにおける管理手段◦ プロビジョニング

オーソリティにある属性情報を他システムへ反映する◦ フェデレーション

認証状態などを含むアイデンティティ情報をシステム間で受け渡す 受け取ったシステム側に保持しているアイデンティティ情報との渡され

た情報を紐付けることでシングルサインオンなどを実現する

8

Page 9: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

実装例:プロビジョニング

9

ユーザ

利用

対象システム

ID 管理システム人事 DB

入社、異動、退社などのイベントに合わせて人事情報を取込み

利用ポリシーに合わせて各システムへ ID を配布

各システム間のアイデンティティ情報の

整合性を担保

Page 10: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

事前信頼指定

実装例:フェデレーション

10

認証サーバ フェデレーションサーバ( Identity Provider /

IdP )

アプリケーション( Relying Party /

RP )

① アクセス

② 認証状態チェック

③ リダイレクト

④ 認証指示

⑤ 認証

⑥ トークン発行

ユーザ

信頼できるサーバから発行されたトークンの中の ID 情報を自前の

ID 情報と紐付ける⇒SSO の実現

Page 11: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

FIM / AD FSアーキテクチャ解説

11

Page 12: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

FIM

12

Page 13: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

FIM とはアイデンティティ情報のライフサイ

クル管理を行うエンジン

13

Page 14: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

1997

1999

2003

2005

2007

2010

2011

2012

歴史

14

Linkage/LDE買収

VIA/ Zoomit買収

⇒MMS

FIM2010

MIIS2003SP2+CLMILM200

7MIIS20

03BHOLD買収

FIM2010 R2

Alacris/

IdNexus買収

⇒CLM

Page 15: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

主な機能様々なアイデンティティ・ストアとの同期( AD DS /

SQL Server / SAP / Notes / Sun Oracle LDAP / Novell LDAP ・・・)

グループ管理(セキュリティ・グループ、配布グループ)

ID 管理ワークフローセルフ・プロファイル管理セルフ・サービス・パスワード・リセットアテステーション、レポーティング証明書ライフサイクル管理

15

Page 16: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

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 )

Page 17: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

コンポーネントとスタック

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

Page 18: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

コンポーネントと役割コンポーネント 役割

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

Page 19: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

コア・アーキテクチャFIM Service

◦FIM Service Database 内にアイデンティティ情報を保持する

◦そのアイデンティティ情報を管理(作成、変更、削除)するための管理ポリシーを定義する

19

Page 20: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

コア・アーキテクチャFIM Service

◦管理ポリシー規則の処理パイプライン

20

Request Processo

r

Delegation &Permissio

ns

AuthN Workflow

AuthZ Workflow

FIM Service Database

Action Workflow

申請を受信

申請者の権限をチェック

認証を行う

認可を行う

データを更新する

更新後のアクションを実行する

Page 21: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

必須用語

21

用語 解説

管理ポリシー規則( MPR )

FIM Service 内のオブジェクトを操作する際の規則(誰が何を出来るか、など)

同期規則( SR ) 各種アイデンティティ・ストアとの ID 情報の同期を行うための規則(属性のマッピングなど)

セット( SET ) FIM Service の中でオブジェクトのグルーピングを行う単位(条件ベースでのメンバシップ、明示的なメンバシップ)

ワークフロー 認証( AuthN )、認可( AuthZ )、アクションが存在。特にアクションは管理ポリシー規則を適用した結果何を行うかを定義する(同期規則の実行など)

Page 22: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

プロビジョニング実行時の例定義対象 定義内容

セット 処理対象となるオブジェクトの条件を定義(例:部署属性の値が「営業部」なら)

アクションワークフロー

実行する内容を定義(例: AD DS への発信同期規則を追加する ⇒ AD DS へユーザが作られる)

同期規則 FIM Sync Service 上の管理エージェントを使ってターゲットシステムとの同期を行う際のルールを定義(例: AD DS の sAMAccountName 属性には FIM Service 上の 表示名をマッピングする)

22

管理ポリシー規則

セットアクションワークフロー

同期規則

適用対象条件 適用内容定義

この組み合わせが

管理ポリシー

規則

Page 23: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

コア・アーキテクチャFIM Sync Service

◦各種アイデンティティ・ストアと情報を同期する

◦FIM Sync Service のレポジトリと各アイデンティティ・ストア用のステージング領域を同期し、各管理エージェントを使って実際の各アイデンティティ・ストアと情報をやり取りする

23

Page 24: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

必須用語

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 の処理の定義

Page 25: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

コア・アーキテクチャ

25

Metaverse

MAID Store

CS

CS

CS

CS

MA

MA

MA IDStor

e

各 ID Store用のデータ

中央データ ストア

同期 インポート

各 ID Store用の接続

Agentエクスポート

Page 26: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

FIM Service + FIM Sync ServiceFIM Service とのオブジェクト同期

は FIM Sync Service の MA を介して行う

FIM Sync Service の構成情報(他 CS の構成など)は Web Service 経由で FIM Service に伝搬する

26

Page 27: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

同期規則の取り込みFIM Sync Service で MA を作成

◦FIM Service に対して以下の申請が発行 Create ma-data ‘MA 名’ Request Update to mv-data: ‘Metaverse

configuration object’ Request⇒FIM Service が MA を認識、同期規則を作成する際のターゲットシステムとして設定が可能になる

27

Page 28: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

同期規則の取り込みFIM Service で同期規則の作成

◦FIM Service Database 内に同期規則オブジェクトが作成される

◦FIM Sync Service で FIM Service MA の Import / Synchronization を実行 Metaverse 内に作成された同期規則オブジェ

クトが作成される

28

Page 29: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

同期規則の取り込み

29

MVFIM CSFIM

Service

インポート 同期

SRSR SR

FIM Portal

MA に対応する SR の作成

New MA / CS

MA の作成

MA

MA の作成Request

MA 定義の作成

MA

Page 30: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

プロビジョニングFIM Service でオブジェクトを作成

◦管理ポリシー規則により対象オブジェクトに同期規則を割り当てる Expected Rules Entry 属性にアクション・ワークフロー

で定義された同期規則への参照が設定される◦FIM Sync Service で FIM Service MA の Import

/ Synchronization を実行する Metaverse 内にオブジェクトが作成される ERE 属性に設定された同期規則オブジェクトの内容に従

い対象 CS との Synchronization が実行される

30

Page 31: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

プロビジョニング

31

MVFIM CSFIM

Service

インポート 同期

SR

FIM Portal

ユーザ作成、SET へ割当

New MA / CS

MPR

AW

SET SR

⇒ERE:SR への参照

関連付け

自動同期

IDStor

e

エクスポート

Page 32: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

AD FS 2.0

32

Page 33: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

事前信頼指定

AD FS 2.0 とは

33

認証サーバ フェデレーションサーバ( Identity Provider /

IdP )

アプリケーション( Relying Party /

RP )

① アクセス

② 認証状態チェック

③ リダイレクト

④ 認証指示

⑤ 認証

⑥ トークン発行

ユーザ

ここがAD FS 2.0

ここがAD DS

Page 34: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

AD FS 2.0 とはセキュリティ・トークン・サービス

( STS )◦Active Directory を使った認証◦Active Directory / SQL Server などにス

トアされている属性情報(クレーム)をセキュリティ・トークンとして発行・変換

◦SAML 2.0 / ws-federation 等のプロトコルに対応

34

Page 35: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

主な機能セキュリティ・トークンを

◦発行する◦変換する

セキュリティ・トークンを伝搬する◦SAML 2.0 プロトコル◦ws-federation プロトコル

35

Page 36: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

SAML

アーキテクチャSAML オーソリティの構造と AD FS

2.0

36

認証オーソリティ

認証アサーション

属性オーソリティ

属性アサーション

決ポリシー定ポイント

認可決定アサーション

実ポリシー施ポイント

SAMLリクエスト

アクセス要求を受けたサーバ

クレデンシャル情報

アプリケーション要求

AD FS 2.0 の世界では認証 はオーソリティ AD DS のみ

属性 はオーソリティ AD DS/SQL/ カスタム決定 はポリシー ポイント AD DS/SQL/ カス

タム

Page 37: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

SAML トークン / プロトコルSAML トークン(アサーション)

◦やり取りするメッセージ自身◦アイデンティティ情報を表現する方法

SAML プロトコル◦SAML トークンを IdP ⇔ RP の間でや

り取りするための手順を定めたもの

37

Page 38: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

SAML 2.0 の構成要素構成要素 解説

トークン(アサーション)

IdP が発行するトークンでありアイデンティティ情報が記載されたもの

プロトコル アサーションを要求・返答するための方法

バインディング プロトコルを通信に乗せる方法( HTTP / SOAP /PAOS など)

プロファイル プロトコルとバインディングとアサーションを 組み合わせた方法

メタデータ プロトコルやサービスエンドポイントが記載されたもの

38

Page 39: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

SAML トークン構造 発行者( Issuer )

◦ 誰が、いつ発行したトークンなのか 識別子( Subject )

◦ 何(誰)に関するトークンなのか 受信者( AudienceRestriction )

◦ 誰宛に発行されたトークンなのか アサーション( AD FS2.0 ではクレーム)

◦ 認証アサーション( AuthNStatement ) 認証された時間、手段

◦ 属性アサーション( AttributeStatement ) 属性情報(属性と値)

◦ 認可決定アサーション( AuthzDecisionStatement ) 特定リソースへのアクセス許可されているか

デジタル署名 39

トークン

属性アサーション

認可決定アサーション

デジタル署名

認証アサーション

Page 40: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

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

Page 41: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

SAML トークン構造識別子( Subject )

41

<saml:Subject> <saml:NameID> [email protected] </saml:NameID></saml:Subject>

フェデレーションにおけるアイデンティティの紐付け⇒ アプリケーション( RP )はこの識別子の属性名および属性値が自身の保持するアイデンティティと一致することで紐付を行う。例) Google Apps の場合、 NameIdentifier 属性に入っているメールアドレスの値が GoogleApps 上のアカウントと一致すればそのユーザに関する情報とみなす。

Page 42: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

SAML トークン構造受信者( AudienceRestriction )

42

<saml:AudienceRestriction> <saml:Audience>google.com/a/mydomain</saml:Audience></saml:AudienceRestriction>フェデレーションにおける事前信頼

⇒ アプリケーション( RP )はこの発行者情報(エンドポイントアドレス)およびトークンに付与されるデジタル署名の情報を登録する⇒AD FS 2.0 の「証明書利用者信頼の識別子」の URI

Page 43: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

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 認証の場合

Page 44: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

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 となる例

Page 45: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

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 を許可する例

Page 46: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

SAML トークン構造デジタル署名

46

<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> …… (デジタル署名に関する情報)……</ds:Signature>

フェデレーションにおける事前信頼⇒ アプリケーション( RP )はこのデジタル署名に関する情報を事前に登録する⇒AD FS 2.0 のトークン署名証明書

Page 47: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

SAML プロトコル・フロー

47

ブラウザ IdP RP

サービスへアクセス

リダイレクト認証要求を IdP へ送付

認証Servi

ce

ユーザ認証

アサーション発行

ACSアサーションを POST

Assertion の生成と署

名Assertion 署名の検証

サービスへリダイレクト

サービスを利用

※WebSSO Profile / SP Initiated / POST Binding の例※ACS : Assertion Consumer Service

Page 48: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

とりあえず・・・概念を説明してもらっても??な世界

デモだけ見ても??な世界

48

説明を聞いて、見て、触って、、、ようやくなんとなく理解できる

⇒ハンズオンをやってみましょう。

Page 49: アイデンティティ管理の基礎~Fim adfsアーキテクチャ

お疲れ様でした。

◦問合せ先 富士榮 尚寛( [email protected]

49