設定 機能説明書 コンピュータ ハイテック株式会社 平成 28 年 12 月 12 日
目次 1. はじめに... 4 1.1 用途... 4 1.2 対象者... 4 2. SAML 概要... 5 2.1 SAML とは... 5 2.2 SAML の TeamFile の位置づけ... 5 2.3 SAML 利用の機能必要条件 ( 重要 )... 5 2.4 検証済みの Identity Provider(Idp)... 6 2.4.1 Ping Identity... 6 2.4.2 Salesforce... 6 3. SAML 設定 ( 重要 )... 7 3.1 SAML の有効 無効を設定する... 7 3.2 ディレクティブ... 7 3.2.1 TfUseSAML... 7 3.2.2 TfSAMLIdPMetaDataPath... 7 3.2.3 TfSAMLXMLPrivateKeyPath... 7 3.2.4 TfSAMLXMLPublicCertificatePath... 7 3.2.5 TfSAMLMatchedMailAddr... 8 3.3 設定ファイルの保存場所... 8 3.4 IdP への設定項目... 8 3.4.1 エンティティ ID... 8 3.4.2 Assertion Consumer Service (ASC)... 8 4. SAML 運用時の画面... 9 4.1 初期画面 ( 認証選択画面 )... 9 4.2 選択時... 10 4.3 ユーザ選択画面... 11 4.4 通常ログイン画面... 12 4.4.1 従来のログイン画面への変更... 13 5. セキュリティ... 14 5.1 認証画面の有効期限... 14 6. 既存機能への影響... 15 6.1 パスワードポリシー機能の無効化... 15 6.1.1 パスワード変更... 15 6.1.2 パスワード有効期限... 15-2 -
7. SAML が適用できない TeamFile クライアント系への対応... 16 7.1 管理系の制限を行う... 16 7.2 TeamFile クライアントの制限を行う... 16 7.2.1 TeamFile クライアントの User-Agent がアクセスすることを区別する設定を行う... 16 7.2.2 制限したいロケーションへの設定をする... 17-3 -
1. はじめに 1.1 用途 本資料は 新機能 SAML の設定方法について説明しています 1.2 対象者 サーバー管理者 TeamFile のユーザ向けではありません - 4 -
2. SAML 概要 2.1 SAML とは SAML とは Security Assertion Markup Language の略称で 異なるインターネットドメイン間でユーザ 認証を行う為の標準規格です 2.2 SAML の TeamFile の位置づけ SAML では 認証情報を提供する側を Identity Provider(Idp) 認証情報を利用する側を Service Provider(SP) と呼ばれています TeamFile では Service Provider(SP) のみの機能を提供しています IdP の機能は有しておりません 2.3 SAML 利用の機能必要条件 ( 重要 ) SAML は認証の仕組みに POST を利用する為 TeamFile の Basic 認証による仕組みが利用できませ ん TfUseSession ディレクティブは必ず On である必要があります SAML が利用できない設定をしているディレクティブ (Off では SAML 機能が有効化されません ) # Use browser session function TfUseSession off - 5 -
2.4 検証済みの Identity Provider(Idp) SAML に準拠しているのであれば どの IdP でも利用はできますが 現在動作が確認できている IdP は 次の通りです 2.4.1 Ping Identity https://www.pingidentity.com 2.4.2 Salesforce https://www.salesforce.com/ 2.4.3 G Suite https://gsuite.google.com/intl/ja/ - 6 -
3. SAML 設定 ( 重要 ) TeamFile の SAML 設定はすべてディレクティブによる設定になります SAML の機能が追加されることによる バックエンドデータベースの変更はありません 3.1 SAML の有効 無効を設定する SAML は TfUseSAML ディレクティブにより有効無効を切り替えることができます この項目を設定した場合は TeamFile サービスの再起動が必要となります 3.2 ディレクティブ 3.2.1 TfUseSAML SAML の有効無効を切り返るディレクティブです 値は on / off を指定できます このディレクティブの項目だけで SAML の有効無効を切り替えます その他の SAML 関係のディレクティブが存在していても off にすると無効化されます 3.2.2 TfSAMLIdPMetaDataPath TeamFile から参照する Idp サーバーのメタファイルを指定します メタファイルは 各 IDP から入手が行えます 値は対象のファイルまでフルパスで記載します 3.2.3 TfSAMLXMLPrivateKeyPath IdP へリクエストを行う場合 IdP サーバーからは署名 XML の送信を要求してくるかもしれません この署名要求は メタデーターファイル内の対象 EntityDescriptor の WantAuthnRequestsSigned 属性が true となっていることで分ります その場合は 本ディレクティブを利用して XML の署名を行います 値は対象ファイルまでフルパスで記載します 3.2.4 TfSAMLXMLPublicCertificatePath 3.2.3 ディレクティブは秘密鍵を指定しますが リクエストにはこのディレクティブの公開鍵を付与すること - 7 -
により Idp 側で署名の検証を行えます ( 行うか否かは IdP 次第 ) 値は対象ファイルまでフルパスで記載します 3.2.5 TfSAMLMatchedMailAddr SAML は通常 NameID が応答として返ってくることによりユーザ ID を取得することができますが その時利用されるユーザ ID はユニーク性が保証されているメールアドレスの場合が多いです 通常はこの NameID と TeamFile のユーザ ID のマッチングを行いますが TeamFile のユーザ ID はメールアドレスでない場合が多いため既に運用を開始している場合は 適用が即座に行えません 本ディレクティブではその比較を TeamFile のメールアドレスと行うことができるようになります TeamFile 上のメールアドレスはユニークではない為複数ヒットの場合は選択できるようになります 値は on / off を指定でき On にすることによりメールアドレスによる比較を行うようになります 3.3 設定ファイルの保存場所 SAML 関係のファイルは次のパスの配下に配置します /usr/local/teamfile/www/conf/conf.d/saml 3.4 IdP への設定項目 を利用する IdP へサービスプロバイダとして TeamFile を登録する為に次の情報が必要にな ります ここでは TeamFile の URL が次を想定しています https://demo.teamfile.com/teamfile 3.4.1 エンティティ ID https://demo.teamfile.com/teamfile URL の最後に, スラッシュ (/) を入れないでください 3.4.2 Assertion Consumer Service (ASC) https://demo.teamfile.com/teamfile/.saml/acs URL の最後に, スラッシュ (/) を入れないでください - 8 -
4. SAML 運用時の画面 SAML を有効にするとログインの初期値画面が変更となります 4.1 初期画面 ( 認証選択画面 ) SAML の認証と通常ログインの選択となります - 9 -
4.2 選択時 の画面を選択すると サーバー側の 3.2.2 のディレクティブのメタデータに記載されている URL を利用して対象 IdP の画面へ遷移します 次の例は Salesforce のログイン画面です - 10 -
4.3 ユーザ選択画面 IdP でのログインが成功した場合 アサーション情報が応答として返ります TeamFile はその情報を受け取り ログインを行いますが NameID と TeamFile のマッチングではなく 3.2.5 を利用した場合はメールアドレスの比較を行い その結果複数ユーザが該当した場合次の画面を表示してどのユーザでログインを行うか選択が行えます この画面は SAML 内で有効期限が設定されている場合があります 数分経過してクリックすると有効期限切れで認証選択画面へ移動します - 11 -
4.4 通常ログイン画面 4.1 の初期選択画面で通常ログインを選択し場合に表示される画面です ユーザ ID とパスワードを入力してログインを行うことができます - 12 -
4.4.1 従来のログイン画面への変更 新しいログイン画面ではなく 従来通りのログイン画面を利用したいケースは次のディレクティブを変更し て サービスを再起動してください 対象ファイル /usr/local/teamfile/www/conf/conf.d/new_xxxxx.conf new_xxxxx.conf の XXXXXX はロケーション名と同じです 追加するディレクティブ TfServerPolicy browserstyle=oldloginpage 既に TfServerPolicy が設定されていてもこの項目を複数行として追加できます - 13 -
5. セキュリティ 5.1 認証画面の有効期限 SAML の各種ログイン画面は ブックマークなどの貼り付けを行っても時間経過により初期画面 ( 認証選択 画面 ) へ遷移するように作られています - 14 -
6. 既存機能への影響 TeamFile サーバーの既存機能のいくつかは SAML を導入することにより影響を及ぼす機能があります 6.1 パスワードポリシー機能の無効化 SAML の認証を行った場合 ID 管理は IdP 側となる為に TeamFile 側でパスワードポリシーを有効にし ていても影響を受けなくなります 6.1.1 パスワード変更 変更できなくなります 6.1.2 パスワード有効期限無視されます つまり TeamFile 側のパスワード有効期限になっても SAML のログインをしている限りは SAML 側に準ずる動きを行います ただし ではなく通常認証を行った場合は パスワードポリシーの影響を受けるようになります - 15 -
7. SAML が適用できない TeamFile クライアント系への対応 SAML 機能は ブラウザの機能を利用して実現している機能の為 TeamFile クライアントからのアクセス は SAML 対象外となり通常の認証によるアクセスとなってしまいます TeamFile サーバーでは この対象外となってしまう動作を制限する方式を二種類用意しています 7.1 管理系の制限を行う TeamFile クライアント コマンドライン API による直接実行を制御するために次のディレクティブが有効で す このディレクティブは管理者アカウントのログインを制限することができます ただし グループリーダーは対象ではありません この制限が有効になるのは管理者アカウントのみです TfAdminAllowIP IP アドレス / マスク ( 複数列挙可能 空白で区切る ) /usr/local/teamfile/www/conf/conf.d/new_xxxxxx.conf に追加してサービスの再起動を行ってくだ さい # /etc/init.d/teamfile restart 7.2 TeamFile クライアントの制限を行う TeamFile クライアントそのものを制限し 完全に SAML での運用をします 7.2.1 TeamFile クライアントの User-Agent がアクセスすることを区別する設定を行う /usr/local/teamfile/www/conf/conf.d/mod_dav_tf.conf の最終行に内容を追加します BrowserMatch "TeamFile-Client/.*" tf-showgroup=off tf-enabletrash=on isteamfile このファイルは同じフォルダの mod_dav_tf.conf.default に isteamfile を除いた同じ行が存在していま す - 16 -
7.2.2 制限したいロケーションへの設定をする /usr/local/teamfile/www/conf/conf.d/new_xxxxxx.conf のファイルを編集します # Order Deny,Allow # Deny from # Order Allow,Deny # Allow from (1) 次の太字斜体部分を追加する <RequireAll> Require tf-user <RequireAny> <RequireAll> Require env isteamfile Require all denied </RequireAll> <RequireAll> Require all granted Require not env isteamfile </RequireAll> </RequireAny> </RequireAll> < 省略 > # auth AuthType teamfile AuthName "teamfile Login PassWord." #Require tf-user (2) コメントアウトする TfAuth on TfEncryptPassword off 2 箇所上記の通り編集します この設定は TeamFile クライアントが全く利用できなくなる設定です あるネットワークだけは利用したい場合は 次のディレクティブを編集します <RequireAll> Require env isteamfile Require all denied </RequireAll> 例 :172.16.0.0/16 だけはアクセス可能にしたい <RequireAll> Require env isteamfile Require ip 172.16.0.0/16 </RequireAll> - 17 -
例 :172.16.0.0/16 と 172.17.0.0/16 は可能にしたい <RequireAll> Require env isteamfile <RequireAny> Require ip 172.16.0.0/16 Require ip 172.17.0.0/16 </RequireAny> </RequireAll> 編集後に サービスの再起動を行います # /etc/init.d/teamfile restart - 18 -
本書の無断転載を禁じます TeamFile はコンピュータ ハイテック株式会社の登録商標です のロゴはコンピュータ ハイテック株式会社の商標です 本書に記載されているその他の名称及びマークは各社の登録商標または商標です コンピュータ ハイテック株式会社 (COMPUTER HI-TECH INC.) 110-0015 東京都台東区東上野 3-18-7 上野駅前ビル E-mail: teamfile@cht.co.jp Homepage: http://www.teamfile.com/ Twitter: @TeamFile - 19 -