SAML認証
用語
Sp(Service Provider) : ここではFileBlogのことです。
Idp(Identity Provider) : Azure ADなどのユーザー認証の仕組みを提供するシステムまたはサービスのことです。
前提条件
FileBlogのSAML連携機能の使用には2つの要件を満たすことが必要です。
Active Directoryドメインの環境でFileBlogサーバーがドメイン参加している。
FileBlogサーバーのネットワークドライブを検索対象にする場合、Active Directoryサーバーで委任許可の設定が必要です。
Active Directoryに登録されているユーザーアカウントでFileBlogにログインできることが必要です。
Active Directoryのユーザーアカウントと一致する情報が、SAML認証を提供するIdP側に登録されている。
Active Directoryの設定
ドキュメントルートフォルダがネットワークのファイルサーバーである場合、ログインユーザーの代理でCIFSサービスを利用するための委任設定が必要です。
ドキュメントルートフォルダがFileBlogサーバーのローカルフォルダの場合は設定不要です。
設定方法については統合Windows認証の[Active Directoryサーバーの設定]欄を参照してください。
委任設定では、「任意の認証プロトコルを使う」を選択します。「Kerberosのみを使う」は選択しません。
基本設定例
FileBlog(Sp)の設定[1]
[管理ツール > 設定全般]を選択します。
[すべての設定 > WEBサーバー > 認証 > SAML認証]を選択します。
[enabled]にチェックを入れます。
[EntityId]にFileBlogに接続するURLを指定します。
例) https://servername.domain.jp/fileblog/
ユーザーが接続可能なURLを指定します。
servername.domain.jp
の部分はピリオドを含まない単一ホスト名またはIPアドレスでもかまいません。URLの末尾は
/fileblog/
にします。(末尾の / を必ず含めてください)プロトコルは HTTP または HTTPS のいずれでもかまいません。
なおIdpによってはHTTPSが有効なSpでないと連携できない仕様の場合があります。
HTTPSにするにはサーバー証明書の設定が別途必要です。
[保存する]を選択してサービスを再起動します。
再起動後 にWEBブラウザで[EntityId]に指定したURLに
/saml
を足したURLに接続します。Sp側のメタデータファイル(xml形式)がダウンロードされます。
例) https://servername.domain.jp/fileblog/saml
Idpの設定
Idpの設定方法に従ってSpから取得したメタデータファイル(xml形式)をインポートします。
Idpによってはメタデータのインポート機能が備わっていません。その場合は手入力で各情報を設定してください。
必要な情報はメタデータファイルに記載されています。
設定の完了後、Idpのメタデータファイル(XML形式)をエクスポート(ダウンロード)します。
FileBlog(Sp)の設定[2]
[管理ツール > 設定全般 > すべての設定 > WEBサーバー > 認証 > SAML認証]を選択します。
[IdpMetadataFile]にIdpから取得したメタデータファイル(xml形式)をインポートします。
[保存する]を選択してサービスを再起動します。
動作確認
[EntityId]に指定したURLに接続します。
SAML認証フロー(シングルサインオン)を経てFileBlogのトップ画面が表示されれば成功です。
FileBlogにログインが成功してもドキュメントルートフォルダが表示されない場合は、Active Directoryの委任設定まわりに原因があることが多いです。
詳細設定
運用環境に応じて設定を行ってください。SAML認証を成功させるために必須の設定ではありません。
UpnTemplate
Idpとの認証成功後にFileBlogサーバー上でS4U(Windowsへのシングルサインオン)する際に利用するUserPrincipalNameの形式です。
Idpから提供されるNameId値(NameIdFormatで指定した値)が「userid@domain」形式と一致するようにします。
例として、NameId値がドメイン名を含まない場合の設定です。(Windowsドメイン名FQDN形式:
contso.local
)
$(resource)@contso.local
NameIdFormat
Idpから認証成功後に提供されるNameId値(ユーザーの識別子)の形式です。
FileBlogはNameId値を用いてWindowsにシングルサインオンするため、原則は「userid@domain」の値を入手できる形式を選択します。
[UpnTemplate]とセットで設定します。
Certificate
次の動作を実現するにはSp側にX509形式の証明書が必要です。証明書は自己証明書で機能しますがIdp側の仕様に依存します。
SpからIdpへ送るSAMLリクエスト(AuthnRequest)を署名付きで送信する
シングルログアウトを行う
公開鍵はメタデータで公開され、秘密鍵は復号化/署名に使用されます。
Certificate:証明書ファイルをインポートします
Key:秘密鍵ファイルをインポートします
Password:証明書形式がpfxの場合にパスワードを登録します
PublicOrigin
ロード バランサーまたはリバースプロキシを使用する場合、HTTPリクエストのOriginがEntityId設定値のとおりにならないでSAML認証に失敗する可能性があります。このような場合にはPublicOriginをEntityIdと同じ値に設定して下さい。
AuthenticateRequestSigningBehavior
SpからIdpへのSAMLリクエスト(AuthnRequest)の署名動作を設定します。[Certificate]にて証明書を設定しているのに、AuthnRequestに署名が埋め込まれない(Idpから署名が不足していると拒絶された場合)、Alwaysに設定することで改善が期待できます。
IfIdpWantAuthnRequestsSigned:idpのmetadataにWantAuthnRequestsがtrueに設定されている場合に限り、AuthnRequestsに署名します。(既定値)
Always:常にすべてのAuthnRequestに署名します
Never:AuthnRequestに署名することはありません
LogonScript
Idpとの認証(ハンドシェイク)に成功後、Windowsへシングルサインオンする直前に実行されるスクリプトのパス(物理パス)です。原則として設定不要です。
フォーム認証を制限する
フォーム認証(ID/パスワード入力)を制限するとSAML認証でのみFileBlogにログインできるようになります。(SAML認証設定が完了してから必要に応じて設定してください)
[管理ツール > 設定全般 > すべての設定 > WEBサーバー > 認証 > フォーム認証]を選択する
[Enabled]のチェックをはずします。
[保存する]を選択してサービスを再起動します。
ログインできるように設定を戻す(トラブルシューティング)
SAML認証設定の成功前にフォーム認証を制限すると、SAML認証設定が首尾よく動作しない場合にFileBlogにログインできなくなってしまいます。(ログイン方法がなくなってしまいます)
そのようなことに陥った場合には、SAML認証を解除してフォーム認証を許可してください。
[管理ツール > 設定全般 > すべての設定 > Webサーバー > 認証 > SAML認証]で[Enabled]のチェックを外します。
[管理ツール > 設定全般 > すべての設定 > Webサーバー > 認証 > フォーム認証]で[Enabled]にチェックを入れます。
[保存する]を選択してサービスを再起動します。