SAML認証

用 語

用 語

説 明

Sp(Service Provider)

ここではFileBlogのことです。

Idp(Identity Provider)

Microsoft Entra(Azure AD)などのユーザー認証の仕組みを提供するシステムまたはサービスのことです。

前提条件

FileBlogのSAML連携機能の使用には2つの要件を満たすことが必要です。

  1. Active Directoryドメインの環境でFileBlogサーバーがドメイン参加している。

    • FileBlogサーバーのネットワークドライブを検索対象にする場合、Active Directoryサーバーで委任許可の設定が必要です。

    • Active Directoryに登録されているドメインユーザーアカウントでFileBlogにログインできることが必要です。

  2. ドメインユーザーアカウントと一致する情報が、SAML認証を提供するIdP側に登録されている。

Active Directoryの設定

ドキュメントルートフォルダがFileBlogサーバーのネットワークドライブである場合、ログインユーザーの代理でCIFSサービスを利用するための委任設定が必要です。

ドキュメントルートフォルダがFileBlogサーバーのローカルフォルダの場合は設定不要です。

設定方法については統合Windows認証の[Active Directoryサーバーの設定]欄を参照してください。

委任設定では、「任意の認証プロトコルを使う」を選択します。「Kerberosのみを使う」は選択しません。

基本設定例

FileBlog(Sp)の設定[1]

  1. [管理ツール > 設定全般 > WEBサーバー > 認証 > SAML認証]を選択します。

    ../../../../_images/20241023-152607-857.png
  2. [WebServer/Authentication/Saml/enabled]を選択してチェックを入れるとSAML認証機能が有効になります。

  3. [WebServer/Authentication/Saml/Scope > 変更]でSAML認証を許可する範囲を定義します。

    ../../../../_images/20241023-152926-389.png
  4. [WebServer/Authentication/Saml/EntityId]にFileBlogに接続するURLを指定します。

    ../../../../_images/20241023-153344-713.png
    例) https://servername.domain.jp/fileblog/
    
    • ユーザーが接続可能なURLを指定します。

    • servername.domain.jpの部分はピリオドを含まない単一ホスト名またはIPアドレスでもかまいません。

    • URLの末尾は/fileblog/にします。(末尾の/を必ず含めてください)

    • プロトコルはHTTPまたはHTTPSのどちらでもかまいません。

      • なおIdpの仕様によってはHTTPSが有効なSpでないと連携できない場合があります。

      • HTTPSにするにはサーバー証明書の設定が必要です。

  5. [保存する]を選択してサービスを再起動します。

  6. 再起動後 にWEBブラウザで[EntityId]に指定したURLに/samlを足したURLに接続します。

    • Sp側のメタデータファイル(xml形式)がダウンロードされます。

    例) https://servername.domain.jp/fileblog/saml
    

Idpの設定

  1. Idpの設定方法に従ってSpから取得したメタデータファイル(xml形式)をインポートします。

    • Idpによってはメタデータのインポート機能が備わっていません。その場合は手入力で各情報を設定してください。

    • 必要な情報はメタデータファイルに記載されています。

  2. 設定の完了後、Idpのメタデータファイル(XML形式)をエクスポート(ダウンロード)します。

FileBlog(Sp)の設定[2]

  1. [管理ツール > 設定全般 > WEBサーバー > 認証 > SAML認証]を選択します。

    ../../../../_images/20241023-171953-780.png
  2. [WebServer/Authentication/Saml/IdpMetadataFile]を選択します。

  3. Idpから取得したメタデータファイル(xml形式)をインポートします。

  4. [保存する]を選択してサービスを再起動します。

動作確認

  1. [EntityId]に指定したURLに接続します。

  2. SAML認証フロー(シングルサインオン)を経てFileBlogのトップ画面が表示されれば成功です。

    • FileBlogにログインが成功してもドキュメントルートフォルダが表示されない場合は、Active Directoryの委任設定まわりに原因があることが多いです。

詳細設定

運用環境に応じて設定を行ってください。SAML認証を成功させるために必須の設定ではありません。

[管理ツール > 設定全般 > WEBサーバー > 認証 > SAML認証]で各設定項目が表示されます。

FileBlog(Sp)の設定[3]

WebServer/Authentication/Saml/UpnTemplate

Idpとの認証成功後にFileBlogサーバーでS4U(Windowsへのシングルサインオン)する際に利用するUPN(UserPrincipalName)の形式です。

../../../../_images/image.png
  • Idpから提供されるNameId値(NameIdFormatで指定した値)が「userid@domain」形式と一致するようにします。

  • 例として、NameId値がドメイン名を含まない場合の設定です。(Windowsドメイン名FQDN形式:contso.local)

    $(resource)@contso.local
    

WebServer/Authentication/Saml/NameIdFormat

Idpから認証成功後に提供されるNameId値(ユーザーの識別子)の形式です。

../../../../_images/20241023-174520-915.png
  • FileBlogはNameId値を用いてWindowsにシングルサインオンするため、原則は「userid@domain」の値を入手できる形式を選択します。

  • [UpnTemplate]とセットで設定します。

証明書

次の動作を実現するにはSp側にX509形式の証明書が必要です。

  • FileBlog(Sp)からIdpへのSAMLリクエスト(AuthnRequest)を署名付きで送信する

  • シングルログアウトを行う

証明書は自己署名証明書でも機能しますがIdp側の仕様に依存します。公開鍵はメタデータで公開され、秘密鍵は復号化/署名に使用されます。

  1. [管理ツール > 設定全般 > WEBサーバー > 認証 > SAML認証 > 証明書 > Certificate]を選択します。

    ../../../../_images/20241023-173020-006.png
  2. 証明書ファイルをインポートします。

  3. Key]に秘密鍵ファイルをインポートします。

    ../../../../_images/20241023-173420-561.png
    • 証明書形式がpfxの場合には[Password]にパスワードを登録します。

      ../../../../_images/20241023-173518-297.png

WebServer/Authentication/Saml/PublicOrigin

ロードバランサーやリバースプロキシを経由すると、HTTPリクエストのOriginがEntityId設定値どおりにならずSAML認証に失敗する可能性があります。このような場合は[PublicOrigin]を[EntityId]と同じ値に設定します。

  • [管理ツール > 設定全般 > WEBサーバー > 認証 > SAML認証 > 証明書 > PublicOrigin../../../../_images/20241023-173802-391.png

WebServer/Authentication/Saml/AuthenticateRequestSigningBehavior

SpからIdpへのSAMLリクエスト(AuthnRequest)の署名動作を設定します。

  • [管理ツール > 設定全般 > WEBサーバー > 認証 > SAML認証 > 証明書 > AuthenticateRequestSigningBehavior

[Certificate]にて証明書を設定しているのに、AuthnRequestに署名が埋め込まれない(Idpから署名が不足していると拒絶される)場合、[Always]に設定することで改善が期待できます。

../../../../_images/20241023-175436-434.png

説 明

IfIdpWantAuthnRequestsSigned

idpのmetadataにWantAuthnRequestsがtrueに設定されている場合に限り、AuthnRequestsに署名します。(既定値)

Always

常にすべてのAuthnRequestに署名します。

Never

AuthnRequestに署名することはありません。

WebServer/Authentication/Saml/LogonScript

Idpとの認証(ハンドシェイク)に成功後、Windowsへシングルサインオンする直前に実行されるスクリプトのパス(物理パス)です。原則として設定不要です。

../../../../_images/20241023-175939-486.png

フォーム認証を制限する

フォーム認証を制限するとSAML認証でのみFileBlogにログインできるようになります。(SAML認証設定が完了してから必要に応じて設定してください)

フォーム認証は完全に無効化しないで、FileBlogサーバーのローカル接続(127.0.0.1)やローカルユーザーでは有効にしておくことをおすすめします。

トラブルシューティング

SAML認証設定の成功前にフォーム認証を制限すると、SAML認証設定が期待どおりに動作しない場合にFileBlogにログインできなくなってしまいます。(ログイン方法がなくなってしまいます)

そのようなときはSAML認証を解除してフォーム認証を許可してください。

  1. [管理ツール > 設定全般 > すべての設定 > Webサーバー > 認証 > SAML認証]で[Enabled]のチェックを外します。

  2. [管理ツール > 設定全般 > すべての設定 > Webサーバー > 認証 > フォーム認証]で[Enabled]にチェックを入れます。

  3. [保存する]を選択してサービスを再起動します。