Share point における id管理と認証・認可

47
SharePoint Server アイデンティティ管理 2013/05/18 NAOHIRO FUJIE / MVP FOR FOREFRONT IDENTITY MANAGER 1 Twitter : @phr_eidentity Facebook : naohiro.fujie / eidentity blog : IdM実験室 / http://idmlab.eidentity.jp

description

Japan SharePoint Group #9 5/18 の資料

Transcript of Share point における id管理と認証・認可

Page 1: Share point における id管理と認証・認可

SharePoint Server とアイデンティティ管理2013/05/18

NAOHIRO FUJIE / MVP FOR FOREFRONT IDENTITY MANAGER

1

Twitter : @phr_eidentity

Facebook : naohiro.fujie / eidentityblog : IdM実験室 / http://idmlab.eidentity.jp

Page 2: Share point における id管理と認証・認可

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

NPO 日本ネットワークセキュリティ協会(JNSA)アイデンティティ管理 WG

書籍「クラウド環境におけるアイデンティティ管理ガイドライン」(http://amzn.to/A6MukD)

Kantara Initiative Japan WG

OpenID Foundation Japan 翻訳・教育WG / Enterprise Identity 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 ( Jan 2010 – Dec 2013 )

@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: Share point における id管理と認証・認可

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

アイデンティティとは

アイデンティティの構成要素

実装と管理

実装例

SharePoint のアイデンティティ管理

SharePoint で扱うアイデンティティ

SharePoint における認証

SharePoint における属性管理

SharePoint における認可

デモ

フェデレーションの先にあるもの

分散環境に置ける信頼

トラストフレームワークという考え方

3

Page 4: Share point における id管理と認証・認可

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

4

Page 5: Share point における id管理と認証・認可

アイデンティティとは

“ID”から連想するよくある間違い

識別子(Identifier)

番号

ログインID

“ID”=“アイデンティティ”

実体(Entity)に関連する属性の集合

ISO/IEC 24760

5

Page 6: Share point における id管理と認証・認可

アイデンティティの構成要素

要素 解説 例

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

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

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

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

生年月日、性別?

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

XX大学卒業、YY部所属

6

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

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

Page 7: Share point における id管理と認証・認可

アイデンティティの構成要素:3A 7

構成要素 意味

認証(Authentication)

ユーザの正当性を検証すること(ユーザがデジタル・アイデンティティを利用する権利があることを検証する)

認可(Authorization)

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

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

※注)大前提として、デジタル・アイデンティティの正当性の保証を行うことが大切である(実体に紐づく属性の精度・鮮度の保証、存在の確認など)

Page 8: Share point における id管理と認証・認可

実装と管理

実装手段

認証:パスワード、証明書、OTP、リスクベース

認可:リソース(フォルダ等)へのアクセス権付与

属性:ユーザ DB の整備(AD、DBMSなど)

分散システムにおける管理手段

プロビジョニング

オーソリティにある属性情報を他システムへ反映する

フェデレーション

認証状態などを含むアイデンティティ情報をシステム間で受け渡す

受け取ったシステム側に保持しているアイデンティティ情報と渡された情報を紐付けることでシングルサインオンなどを実現する

8

Page 9: Share point における id管理と認証・認可

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

ユーザ

利用

対象システム

ID管理システム人事DB

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

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

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

整合性を担保

Page 10: Share point における id管理と認証・認可

事前信頼指定

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

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

IdP)

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

RP)

①アクセス

②認証状態チェック

③リダイレクト

④認証指示

⑤認証

⑥トークン発行

ユーザ

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

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

Page 11: Share point における id管理と認証・認可

SharePoint のアイデンティティ管理

11

Page 12: Share point における id管理と認証・認可

SharePoint で扱うアイデンティティ

ユーザ

認証に利用する属性

識別子(Identifier)

クレデンシャル

プロファイル

アクセス権管理(認可)に利用する属性

連絡先等で利用する属性

アプリケーション

認証に利用する属性

識別子(client_id)

クレデンシャル(client_secret)

認可に利用する属性

アクセストークン

認証プロバイダで管理する情報

SharePoint 上で主に管理する対象となる情報

Windows Azure Access Control Service(ACS)を利用(OAuth2.0)した認可に必要な情報

12

Page 13: Share point における id管理と認証・認可

SharePoint における認証

ユーザを認証する(ユーザの真正確認)

クレームベース(デフォルト):セキュリティトークン

Office Web App を使う場合はこちら

クラシック:Windowsトークン

アプリケーション / サーバ(アプリケーション / サーバの真正確認)

Windows Azure Access Control Service(ACS)と連携

client_id / client_secret でのアプリケーション認証

13

Page 14: Share point における id管理と認証・認可

ユーザを認証する

方式 実現手段 テクノロジ

クレームベース認証 Windows認証 NTLM

Kerberos

ダイジェスト

基本

フォームベース認証 AD DS

SQL等のデータストア

LDAP

SAMLトークンベース認証 SAML-P 1.1

ws-federation/Passive

クラシックモード認証 Windows認証 NTLM

Kerberos

ダイジェスト

基本

その他 匿名認証

IISで設定

Web.configで設定

PowerShellで設定

14

今回はこの辺りを中心に解説

Page 15: Share point における id管理と認証・認可

フォームベース認証

SharePoint が提供する認証フォームを使った認証

認証 DB として LDAP / AD / SQL Serverなどが利用可能

15

SharePoint Server認証 DB

ユーザー

① ID / パスワードの入力

② ID / パスワードの検証

認証フォーム

Page 16: Share point における id管理と認証・認可

SAML トークンベース認証

SAML 1.1 / ws-federation プロトコルを使った認証連携(フェデレーション)

事前に外部 ID プロバイダを登録(信頼関係の構築)

New-SPTrustedIdentityTokenIssuer コマンドレットを使用

認証の仕組み

SharePoint は未認証ユーザを外部 ID プロバイダへリダイレクト

ID プロバイダ側でユーザ認証を行い、結果としてセキュリティ・トークン(SAML

トークン)を発行

SharePoint は提示(POST)されたセキュリティ・トークンの署名および発行者(Issuer)、対象(Realm)を検証し、提示したユーザを認証

16

Page 17: Share point における id管理と認証・認可

SAML トークン構造(※SAML2.0。1.1でも似たようなもの)

発行者(Issuer)

誰が、いつ発行したトークンなのか

識別子(Subject)

何(誰)に関するトークンなのか

受信者(AudienceRestriction)

誰宛に発行されたトークンなのか

アサーション(クレーム)

認証アサーション(AuthNStatement)

認証された時間、手段

属性アサーション(AttributeStatement)

属性情報(属性と値)

認可決定アサーション(AuthzDecisionStatement)

特定リソースへのアクセス許可されているか

デジタル署名

17

トークン

属性アサーション

認可決定アサーション

デジタル署名

認証アサーション

Page 18: Share point における id管理と認証・認可

認証の流れ 18

サービスへアクセス

認証要求を ID プロバイダへリダイレクト

認証

Service

ユーザ認証

トークン発行

ACS

トークンを POST

トークンの生成と署名 トークン署名

の検証

サービスへリダイレクト

サービスを利用

※ACS : Assertion Consumer Service

ユーザ IDプロバイダ SharePoint

Page 19: Share point における id管理と認証・認可

SharePoint における属性管理(プロファイル管理)

SharePoint を使う上で必要な各種属性の管理

基本的に外部データソースとの同期(プロビジョニング)で実現

ユーザ自身によるセルフサービスもあり

各種同期手法

SharePoint 標準機能

User Profile Service

Active Directory インポート

FIM 2010 R2 SP1

SharePoint Connector for FIM 2010(Preview)

19

Page 20: Share point における id管理と認証・認可

プロファイル同期の方法

同期手段 同期元(データソース) 同期対象 特徴

User Profile Service(FIM 2010ベース)

Active Directory ユーザ、グループ 無償

Active Directoryのログオンデータ ユーザ、グループ

Active Directoryリソース ユーザ、グループ

Business Data Connectivity ユーザ

IBM Tivoli Directory Server ユーザ

Novell eDirectory(増分同期不可) ユーザ

Sun Java System Directory Server ユーザ

Active Directory インポート Active Directory ユーザ、グループ 無償、高速

SharePoint Connector for

FIM 2010

任意(FIM 2010 に設定したデータソース)

ユーザ、グループ 有償、柔軟

20

Page 21: Share point における id管理と認証・認可

基本的な流れ

同期元データソースとの接続設定

各属性のマッピング設定(ユーザプロパティの管理)

同期の実行(定期的に自動実行)

21

Page 22: Share point における id管理と認証・認可

22

Page 23: Share point における id管理と認証・認可

現状FIM2010R2(SP1)の最新ビルドは4.1.3441.0

ちなみにOffice365のディレクトリ同期は5.0.227.2

23

User Profile Service は FIM 2010 ベースなので Synchronization Service

Managerを利用可能(サポート外。知ってるとトラブル時は役に立つ)C:¥Program Files¥Microsoft Office Servers¥15.0¥Synchronization Service¥UIShell¥miisclient.exe

Page 24: Share point における id管理と認証・認可

User Profile Service と FIM Sync

設定すると以下のコネクタ(Management Agent)が作成される

基本的な流れ(実行プロファイル)は

同期元からの Import⇒ FIM 内部での Sync ⇒ SharePoint への Export

完全同期(FULL)と増分同期(DELTA)

属性マッピングを変更した場合など構成変更をした後は完全同期

24

MA名 用途

ILMMA なし(使わない)

MOSS-UserProfile SharePoint へプロファイルを書き出す

MOSS[XX]-[接続名]

※IDProviderという名称でActive Directoryへ接続する場合はMOSSAD-IDProviderとなる

各同期元から属性データを読み込む

Page 25: Share point における id管理と認証・認可

25実行履歴の確認

詳細な同期内容の確認

Page 26: Share point における id管理と認証・認可

参考)FIM Synchronization Service

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

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

26

Page 27: Share point における id管理と認証・認可

参考)必須用語 27

用語 解説

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 28: Share point における id管理と認証・認可

参考)コア・アーキテクチャ 28

MetaverseMAID Store CS

CS

CS

CS

MA

MA

MA ID

Store

各ID Store用のデータ

中央データストア

同期 インポート

各ID Store用の接続Agent エクスポート

Page 29: Share point における id管理と認証・認可

認証連携の世界

クレームマッピングルール

認証ユーザとプロファイルのマッピング

ID プロバイダ SAML トークン

29

プロファイル

プロファイルマッピングルールプロファイル

同期元

プロファイル同期の世界

認証されたユーザとプロファイルの紐づけ

Mail nameIdentifier upn

SPS-ClaimID

氏名

mail

氏名

mail

displayName

mail

Page 30: Share point における id管理と認証・認可

SharePoint における認可

リソースオーナーからユーザへの認可

Web アプリケーションへのアクセス

サイトへのアクセス

個別オブジェクトへのアクセス

リソースオーナーからアプリケーションへ認可

3rd パーティアプリケーションから SharePoint 上のリソースへのアクセス

Windows Azure Access Control Service / OAuth を使用した認可

30

Page 31: Share point における id管理と認証・認可

アプリケーションへの認可

ユーザの代わりにアプリケーションが SharePoint 上のリソースへアクセスするようなケース

課題

ユーザがログインしていない(認証されていない)状態でもアプリケーションが SharePoint へアクセスできる必要がある

アプリケーションへユーザ ID とパスワードを埋め込みたくない

解決策

OAuth の利用

31

Page 32: Share point における id管理と認証・認可

OAuth の基礎

認可のためのプロトコル

OAuth 認証という言葉が Technet や MSDN にも出てくるが間違い

アプリケーション(クライアントと呼ぶ)がユーザの代わりにリソースへアクセスする時の認可情報を受け渡すためのプロトコル

メリットはクライアントにユーザIDとパスワードを持たせなくても良い点

クライアントはあらかじめ認可サーバへ登録しておく必要がある

client_id / client_secret の払い出しを受ける

以後、アプリケーションは client_id / client_secret を使ってリソースへアクセス(アプリケーション自体の認証)

ユーザ(リソースオーナー)は許可する権限の範囲(スコープ)を指定しクライアントを認可

認可を受けたクライアントへはアクセストークンが発行され、そのトークンを使うことでリソースを利用できる

32

Page 33: Share point における id管理と認証・認可

OAuth を利用した認可フロー 33

サービスへアクセス

認可要求・リダイレクト

認可(承認)

認可コード発行・リダイレクト

認可コード

認可コード・client_id・client_secret

アクセス・トークン発行

リソース利用(アクセス・トークン提示)

User Agentブラウザ

3rd Party APLクライアント

リソース

SharePoint

認可サーバ

Azure ACS

Page 34: Share point における id管理と認証・認可

注意点

client_secret の取り扱い

client_id / client_secret でアプリケーションを「認証」している

ユーザ ID / パスワードと同じ扱い

Web.config に埋め込むことになるので漏れない様に注意が必要

アクセストークンの取り扱い

アクセストークンはリソースへ適切な権限でアクセスするためのトークン

発行先のクライアント以外でも使いまわせてしまう

アクセストークンを持っているからといって本人確認としない(OAuthを認証に使用しない)

他のクライアントへアクセストークンが漏れない様に注意が必要

34

Page 35: Share point における id管理と認証・認可

デモ

35

Page 36: Share point における id管理と認証・認可

デモ内容

フォームベース認証

認証DB:Active Directory

SAML トークンベース認証

Windows Azure Access Control Service 経由

Facebook

Google

36

Page 37: Share point における id管理と認証・認可

デモ環境 37

Windows Azure

Access Control

Service (ACS)

facebook

Google

SharePoint

ServerActive Directory

認証フォーム

ユーザ

プロファイル同期

信頼(IdP)

信頼(IdP)

信頼(IdP)

認証

認証

認証

利用

Page 38: Share point における id管理と認証・認可

環境構築手順概要

Windows Azure Access Control

Identity Provider の設定

Facebook : facebook アプリを作成し、client_id / client_secret を取得してACS 上に登録

Google : 特に設定不要。有効化のみ

Claim 発行ルールの設定

Facebook / Google から発行された Claim をパススルー

Relying Party の設定

SharePoint Server との接続

ws-federation での接続。SAML トークンバージョンは 1.1

トークン署名用の証明書の作成とアップロード(makecertコマンド)

38

Page 39: Share point における id管理と認証・認可

39

Page 40: Share point における id管理と認証・認可

40

Page 41: Share point における id管理と認証・認可

環境構築手順概要

SharePoint Server 2013

フォームベース認証

SharePoint STS、Central Adminitration、Web アプリケーションのweb.configの編集

Web アプリケーションの認証プロバイダへ作成した ID プロバイダを設定

ユーザーポリシー(アクセス許可)の設定

SAML トークンベース認証

ID プロバイダの作成(New-SPTrustedIdentityTokenIssuer)

Web アプリケーションの認証プロバイダへ作成した ID プロバイダを設定

ユーザーポリシー(アクセス許可)の設定

プロファイル管理

User Profile Service の有効化

同期接続の作成

ユーザプロパティマッピング

41

Page 42: Share point における id管理と認証・認可

42

Page 43: Share point における id管理と認証・認可

43

Page 44: Share point における id管理と認証・認可

フェデレーションの先にあるもの

44

Page 45: Share point における id管理と認証・認可

分散システムにおける信頼

外部の認証プロバイダを信頼できるか?

本当にちゃんと認証しているのか?

本当に認証対象のユーザは存在するのか?

45

http://en.wikipedia.org/wiki/On_the_Internet,_nobody_knows_you're_a_dog

Page 46: Share point における id管理と認証・認可

トラストフレームワークという考え方

信頼の枠組み

ポリシー(基準)を定め、

評価軸・評価基準を定め、

認定された評価者が評価する

認定レベル

LoA(Level of Assurance)

LoP(Level of Protection)

適用対象

認証プロバイダ

サービスプロバイダ

利用者の視点

第3者機関によって認定されたサービス

を安心して利用する

46

Page 47: Share point における id管理と認証・認可

47

おしまい