share point における id管理と認証・認可
Post on 24-May-2015
4.775 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
自己紹介 アイデンティティ関係
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
Contents アイデンティティ管理の基礎
アイデンティティとは
アイデンティティの構成要素
実装と管理
実装例
SharePoint のアイデンティティ管理
SharePoint で扱うアイデンティティ
SharePoint における認証
SharePoint における属性管理
SharePoint における認可
デモ
フェデレーションの先にあるもの
分散環境に置ける信頼
トラストフレームワークという考え方
3
アイデンティティ管理の基礎
4
アイデンティティとは
“ID”から連想するよくある間違い
識別子(Identifier)
番号
ログインID
“ID”=“アイデンティティ”
実体(Entity)に関連する属性の集合
ISO/IEC 24760
5
アイデンティティの構成要素
要素 解説 例
属性 後天的に取得された主体に関わる情報(後から変化する)
名前、電話番号、社員番号、メールアドレス、認証状態、位置情報
好み 主体の嗜好に関わる情報 甘いものが好き
形質 主体の先天的な特有の性質(後から変化しにくい)
生年月日、性別?
関係性 他の主体との関係に関わる情報(一部属性と重複)
XX大学卒業、YY部所属
6
これらをコンピューターシステム上に反映したもの(コンピューターシステム上での実体を表すもの)
⇒デジタル・アイデンティティ
アイデンティティの構成要素:3A 7
構成要素 意味
認証(Authentication)
ユーザの正当性を検証すること(ユーザがデジタル・アイデンティティを利用する権利があることを検証する)
認可(Authorization)
認証されたユーザに権限を与えること(デジタル・アイデンティティに何を許可するかを決定する)
属性(Attribute) ユーザを構成する情報(何でデジタル・アイデンティティを構成するかを決定する)
※注)大前提として、デジタル・アイデンティティの正当性の保証を行うことが大切である(実体に紐づく属性の精度・鮮度の保証、存在の確認など)
実装と管理
実装手段
認証:パスワード、証明書、OTP、リスクベース
認可:リソース(フォルダ等)へのアクセス権付与
属性:ユーザ DB の整備(AD、DBMSなど)
分散システムにおける管理手段
プロビジョニング
オーソリティにある属性情報を他システムへ反映する
フェデレーション
認証状態などを含むアイデンティティ情報をシステム間で受け渡す
受け取ったシステム側に保持しているアイデンティティ情報と渡された情報を紐付けることでシングルサインオンなどを実現する
8
実装例:プロビジョニング 9
ユーザ
利用
対象システム
ID管理システム人事DB
入社、異動、退社などのイベントに合わせて人事情報を取込み
利用ポリシーに合わせて各システムへ ID を配布
各システム間のアイデンティティ情報の
整合性を担保
事前信頼指定
実装例:フェデレーション 10
認証サーバ フェデレーションサーバ(Identity Provider /
IdP)
アプリケーション(Relying Party /
RP)
①アクセス
②認証状態チェック
③リダイレクト
④認証指示
⑤認証
⑥トークン発行
ユーザ
信頼できるサーバから発行されたトークンの中のID情報を自前のID
情報と紐付ける⇒SSOの実現
SharePoint のアイデンティティ管理
11
SharePoint で扱うアイデンティティ
ユーザ
認証に利用する属性
識別子(Identifier)
クレデンシャル
プロファイル
アクセス権管理(認可)に利用する属性
連絡先等で利用する属性
アプリケーション
認証に利用する属性
識別子(client_id)
クレデンシャル(client_secret)
認可に利用する属性
アクセストークン
認証プロバイダで管理する情報
SharePoint 上で主に管理する対象となる情報
Windows Azure Access Control Service(ACS)を利用(OAuth2.0)した認可に必要な情報
12
SharePoint における認証
ユーザを認証する(ユーザの真正確認)
クレームベース(デフォルト):セキュリティトークン
Office Web App を使う場合はこちら
クラシック:Windowsトークン
アプリケーション / サーバ(アプリケーション / サーバの真正確認)
Windows Azure Access Control Service(ACS)と連携
client_id / client_secret でのアプリケーション認証
13
ユーザを認証する
方式 実現手段 テクノロジ
クレームベース認証 Windows認証 NTLM
Kerberos
ダイジェスト
基本
フォームベース認証 AD DS
SQL等のデータストア
LDAP
SAMLトークンベース認証 SAML-P 1.1
ws-federation/Passive
クラシックモード認証 Windows認証 NTLM
Kerberos
ダイジェスト
基本
その他 匿名認証
IISで設定
Web.configで設定
PowerShellで設定
14
今回はこの辺りを中心に解説
フォームベース認証
SharePoint が提供する認証フォームを使った認証
認証 DB として LDAP / AD / SQL Serverなどが利用可能
15
SharePoint Server認証 DB
ユーザー
① ID / パスワードの入力
② ID / パスワードの検証
認証フォーム
SAML トークンベース認証
SAML 1.1 / ws-federation プロトコルを使った認証連携(フェデレーション)
事前に外部 ID プロバイダを登録(信頼関係の構築)
New-SPTrustedIdentityTokenIssuer コマンドレットを使用
認証の仕組み
SharePoint は未認証ユーザを外部 ID プロバイダへリダイレクト
ID プロバイダ側でユーザ認証を行い、結果としてセキュリティ・トークン(SAML
トークン)を発行
SharePoint は提示(POST)されたセキュリティ・トークンの署名および発行者(Issuer)、対象(Realm)を検証し、提示したユーザを認証
16
SAML トークン構造(※SAML2.0。1.1でも似たようなもの)
発行者(Issuer)
誰が、いつ発行したトークンなのか
識別子(Subject)
何(誰)に関するトークンなのか
受信者(AudienceRestriction)
誰宛に発行されたトークンなのか
アサーション(クレーム)
認証アサーション(AuthNStatement)
認証された時間、手段
属性アサーション(AttributeStatement)
属性情報(属性と値)
認可決定アサーション(AuthzDecisionStatement)
特定リソースへのアクセス許可されているか
デジタル署名
17
トークン
属性アサーション
認可決定アサーション
デジタル署名
認証アサーション
認証の流れ 18
サービスへアクセス
認証要求を ID プロバイダへリダイレクト
認証
Service
ユーザ認証
トークン発行
ACS
トークンを POST
トークンの生成と署名 トークン署名
の検証
サービスへリダイレクト
サービスを利用
※ACS : Assertion Consumer Service
ユーザ IDプロバイダ SharePoint
SharePoint における属性管理(プロファイル管理)
SharePoint を使う上で必要な各種属性の管理
基本的に外部データソースとの同期(プロビジョニング)で実現
ユーザ自身によるセルフサービスもあり
各種同期手法
SharePoint 標準機能
User Profile Service
Active Directory インポート
FIM 2010 R2 SP1
SharePoint Connector for FIM 2010(Preview)
19
プロファイル同期の方法
同期手段 同期元(データソース) 同期対象 特徴
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
基本的な流れ
同期元データソースとの接続設定
各属性のマッピング設定(ユーザプロパティの管理)
同期の実行(定期的に自動実行)
21
22
現状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
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となる
各同期元から属性データを読み込む
25実行履歴の確認
詳細な同期内容の確認
参考)FIM Synchronization Service
各種アイデンティティ・ストアと情報を同期する
FIM Sync Service のレポジトリと各アイデンティティ・ストア用のステージング領域を同期し、各管理エージェントを使って実際の各アイデンティティ・ストアと情報をやり取りする
26
参考)必須用語 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 の処理の定義
参考)コア・アーキテクチャ 28
MetaverseMAID Store CS
CS
CS
CS
MA
MA
MA ID
Store
各ID Store用のデータ
中央データストア
同期 インポート
各ID Store用の接続Agent エクスポート
認証連携の世界
クレームマッピングルール
認証ユーザとプロファイルのマッピング
ID プロバイダ SAML トークン
29
プロファイル
プロファイルマッピングルールプロファイル
同期元
プロファイル同期の世界
認証されたユーザとプロファイルの紐づけ
Mail nameIdentifier upn
SPS-ClaimID
氏名
氏名
displayName
SharePoint における認可
リソースオーナーからユーザへの認可
Web アプリケーションへのアクセス
サイトへのアクセス
個別オブジェクトへのアクセス
リソースオーナーからアプリケーションへ認可
3rd パーティアプリケーションから SharePoint 上のリソースへのアクセス
Windows Azure Access Control Service / OAuth を使用した認可
30
アプリケーションへの認可
ユーザの代わりにアプリケーションが SharePoint 上のリソースへアクセスするようなケース
課題
ユーザがログインしていない(認証されていない)状態でもアプリケーションが SharePoint へアクセスできる必要がある
アプリケーションへユーザ ID とパスワードを埋め込みたくない
解決策
OAuth の利用
31
OAuth の基礎
認可のためのプロトコル
OAuth 認証という言葉が Technet や MSDN にも出てくるが間違い
アプリケーション(クライアントと呼ぶ)がユーザの代わりにリソースへアクセスする時の認可情報を受け渡すためのプロトコル
メリットはクライアントにユーザIDとパスワードを持たせなくても良い点
クライアントはあらかじめ認可サーバへ登録しておく必要がある
client_id / client_secret の払い出しを受ける
以後、アプリケーションは client_id / client_secret を使ってリソースへアクセス(アプリケーション自体の認証)
ユーザ(リソースオーナー)は許可する権限の範囲(スコープ)を指定しクライアントを認可
認可を受けたクライアントへはアクセストークンが発行され、そのトークンを使うことでリソースを利用できる
32
OAuth を利用した認可フロー 33
サービスへアクセス
認可要求・リダイレクト
認可(承認)
認可コード発行・リダイレクト
認可コード
認可コード・client_id・client_secret
アクセス・トークン発行
リソース利用(アクセス・トークン提示)
User Agentブラウザ
3rd Party APLクライアント
リソース
SharePoint
認可サーバ
Azure ACS
注意点
client_secret の取り扱い
client_id / client_secret でアプリケーションを「認証」している
ユーザ ID / パスワードと同じ扱い
Web.config に埋め込むことになるので漏れない様に注意が必要
アクセストークンの取り扱い
アクセストークンはリソースへ適切な権限でアクセスするためのトークン
発行先のクライアント以外でも使いまわせてしまう
アクセストークンを持っているからといって本人確認としない(OAuthを認証に使用しない)
他のクライアントへアクセストークンが漏れない様に注意が必要
34
デモ
35
デモ内容
フォームベース認証
認証DB:Active Directory
SAML トークンベース認証
Windows Azure Access Control Service 経由
36
デモ環境 37
Windows Azure
Access Control
Service (ACS)
SharePoint
ServerActive Directory
認証フォーム
ユーザ
プロファイル同期
信頼(IdP)
信頼(IdP)
信頼(IdP)
認証
認証
認証
利用
環境構築手順概要
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
39
40
環境構築手順概要
SharePoint Server 2013
フォームベース認証
SharePoint STS、Central Adminitration、Web アプリケーションのweb.configの編集
Web アプリケーションの認証プロバイダへ作成した ID プロバイダを設定
ユーザーポリシー(アクセス許可)の設定
SAML トークンベース認証
ID プロバイダの作成(New-SPTrustedIdentityTokenIssuer)
Web アプリケーションの認証プロバイダへ作成した ID プロバイダを設定
ユーザーポリシー(アクセス許可)の設定
プロファイル管理
User Profile Service の有効化
同期接続の作成
ユーザプロパティマッピング
41
42
43
フェデレーションの先にあるもの
44
分散システムにおける信頼
外部の認証プロバイダを信頼できるか?
本当にちゃんと認証しているのか?
本当に認証対象のユーザは存在するのか?
45
http://en.wikipedia.org/wiki/On_the_Internet,_nobody_knows_you're_a_dog
トラストフレームワークという考え方
信頼の枠組み
ポリシー(基準)を定め、
評価軸・評価基準を定め、
認定された評価者が評価する
認定レベル
LoA(Level of Assurance)
LoP(Level of Protection)
適用対象
認証プロバイダ
サービスプロバイダ
利用者の視点
第3者機関によって認定されたサービス
を安心して利用する
46
47
おしまい
top related