このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください
NocoBase セキュリティガイド
NocoBaseは、機能設計からシステム実装に至るまで、データとアプリケーションのセキュリティを重視しています。プラットフォームには、ユーザー認証、アクセス制御、データ暗号化など、複数のセキュリティ機能が組み込まれており、実際のニーズに応じてセキュリティポリシーを柔軟に設定できます。ユーザーデータの保護、アクセス権限の管理、開発環境と本番環境の分離など、NocoBaseは実用的なツールとソリューションを提供します。本ガイドは、NocoBaseを安全にご利用いただくための指針を提供し、ユーザーの皆様がデータ、アプリケーション、環境を保護し、安全を確保しながらシステム機能を効率的に利用できるよう支援することを目的としています。
ユーザー認証
ユーザー認証は、ユーザーの身元を識別し、不正なシステムへのアクセスを防ぎ、ユーザーIDの悪用を防止するために使用されます。
トークンキー
デフォルトでは、NocoBaseはJWT (JSON Web Token) を使用してサーバーサイドAPIの認証を行います。ユーザーはシステム環境変数 APP_KEY を通じてトークンキーを設定できます。アプリケーションのトークンキーは適切に管理し、外部への漏洩を防いでください。APP_KEY が変更された場合、古いトークンも無効になることに注意してください。
トークンポリシー
NocoBaseは、ユーザーのトークンに対して以下のセキュリティポリシー設定をサポートしています。
通常、管理者の方には以下の設定をお勧めします。
- トークンの露出時間を制限するため、トークン有効期間を短めに設定してください。
- ユーザーエクスペリエンスとセキュリティのバランスを取るため、トークン有効期間よりも長く、しかし長すぎない妥当なセッション有効期間を設定してください。トークンの自動更新メカニズムを利用して、アクティブなユーザーセッションを中断させずに、長期セッションが悪用されるリスクを軽減します。
- ユーザーが長時間非アクティブな場合に、新しいトークンが発行されずにトークンが自然に期限切れになるよう、妥当な期限切れトークン更新期限を設定し、アイドル状態のユーザーセッションが悪用されるリスクを低減します。
トークンのクライアントストレージ
デフォルトでは、ユーザーのトークンはブラウザのLocalStorageに保存されます。ブラウザページを閉じて再度開いた場合で も、トークンが有効期間内であれば、ユーザーは再ログインする必要はありません。
ユーザーがページを開くたびに再ログインを求める場合は、環境変数 API_CLIENT_STORAGE_TYPE=sessionStorage を設定し、ユーザーのトークンをブラウザのSessionStorageに保存することで、この目的を達成できます。
パスワードポリシー
プロフェッショナル版以上
NocoBaseは、すべてのユーザーに対してパスワードルールとパスワードログイン試行ロックポリシーを設定することをサポートしており、パスワードログインが有効なNocoBaseアプリケーションのセキュリティを強化します。各設定項目の詳細については、パスワードポリシーをご参照ください。
パスワードルール
パスワード有効期限設定
パスワードログインセキュリティ
通常、以下のことをお勧めします。
- 強度の高いパスワードルールを設定し、パスワードが推測されたり、ブルートフォース攻撃を受けたりするリスクを低減します。
- ユーザーに定期的なパスワード変更を強制するため、妥当なパスワード有効期間を設定します。
- 無効なパスワードログイン回数と時間の設定を組み合わせ、短時間での高頻度なパスワードログイン試行を制限し、ブルートフォース攻撃を防ぎます。
- セキュリティ要件が非常に厳しいシナリオでは、ログイン制限を超過した後のユーザーロック時間を妥当に設定できます。ただし、ロック時間の設定は悪用される可能性があることに注意してください。攻撃者が標的のアカウントに対して意図的に複数回誤ったパスワードを入力し、アカウントをロックさせて正常な利用を妨害する可能性があります。実際の運用では、IP制限やAPIレート制限などの手段と組み合わせて、このような攻撃を防ぐことができます。
- NocoBaseのデフォルトのrootユーザー名、メールアドレス、パスワードを変更し、悪用されないようにしてください。
- パスワードの期限切れやアカウントロックは、管理者アカウントを含め、システムへ のアクセスを不可能にします。そのため、パスワードのリセットやユーザーのロック解除権限を持つ複数のアカウントをシステム内に設定することをお勧めします。

ユーザーロック
プロフェッショナル版以上(パスワードポリシープラグインに含まれます)
無効なパスワードログイン制限を超過してロックされたユーザーを管理します。手動でロック解除することも、異常なユーザーをロックリストに手動で追加することも可能です。ユーザーがロックされると、APIキーを含むいかなる認証方法でもシステムへのアクセスが禁止されます。

APIキー
NocoBaseはAPIキーを介したシステムAPIの呼び出しをサポートしており、ユーザーはAPIキープラグインの設定でAPIキーを追加できます。
- APIキーには適切なロールを紐付け、ロールに関連付けられた権限が正しく設定されていることを確認してください。
- APIキーの使用中は、APIキーの外部への漏洩を防いでください。
- 通常、APIキーには有効期間を設定し、「期限なし」オプションは使用しないことをお勧めします。
- APIキーが異常に使用されていることが判明し、漏洩のリスクがある場合は、該当するAPIキーを削除して無効化できます。

シングルサインオン (SSO)
商用プラグイン
NocoBaseは、OIDC、SAML 2.0、LDAP、CASなど、複数の主要プロトコルをサポートする豊富なSSO認証プラグインを提供しています。また、NocoBaseには完全な認証方式拡張インターフェースがあり、他の認証タイプを迅速に開発・統合できます。既存のIdPとNocoBaseを簡単に連携させ、IdP上でユーザーIDを一元的に管理することで、セキュリティを向上させることができます。

二要素認証 (Two-factor authentication)
エンタープライズ版
二要素認証は、ユーザーがパスワードでログインする際に、身元を証明する2つ目の有効な情報を提供することを要求します。例えば、ユーザーの信頼できるデバイスにワンタイム動的認証コードを送信することでユーザーの身元を確認し、ユーザーIDの悪用を防ぎ、パスワード漏洩によるリスクを低減します。
IPアクセス制御
エンタープライズ版
NocoBaseは、ユーザーアクセスIPに対してブラックリストまたはホワイトリストを設定することをサポートしています。
- セキュリティ要件が厳格な環境では、IPホ ワイトリストを設定し、特定のIPまたはIP範囲のみがシステムにアクセスできるようにすることで、不正な外部ネットワーク接続を制限し、根本的なセキュリティリスクを低減できます。
- 公開ネットワークアクセス条件下で、管理者が異常なアクセスを発見した場合、IPブラックリストを設定して、既知の悪意あるIPアドレスや疑わしいアクセス元をブロックし、悪意のあるスキャンやブルートフォース攻撃などのセキュリティ脅威を軽減します。
- 拒否されたアクセスリクエストについては、ログ記録を保持します。
権限制御
システム内で異なるロールを設定し、それらのロールに適切な権限を付与することで、ユーザーがリソースにアクセスする権限をきめ細かく制御できます。管理者は、実際のシナリオのニーズに合わせて適切に設定し、システムリソースの漏洩リスクを低減する必要があります。
Rootユーザー
NocoBaseを初めてインストールする際、アプリケーションはrootユーザーを初期化します。ユーザーはシステム環境変数を設定してrootユーザーの関連情報を変更し、悪用されないようにすることをお勧めします。
INIT_ROOT_USERNAME- rootユーザー名INIT_ROOT_EMAIL- rootユーザーのメールアドレスINIT_ROOT_PASSWORD- rootユーザーのパスワード。強度の高いパスワードを設定してください。
システムを継続して使用する際には、他の管理者アカウントを設定して使用し、rootユーザーで直接アプリケーションを操作することは極力避けてください。
ロールと権限
NocoBaseは、システム内でロールを設定し、異なるロールに権限を付与し、ユーザーを対応するロールに紐付けることで、ユーザーがリソースにアクセスする権限を制御します。各ユーザーは複数のロールを持つことができ、ユーザーはロールを切り替えることで、異なる視点からリソースを操作できます。部署プラグインがインストールされている場合、ロールと部門を紐付けることもでき、ユーザーは所属部門に紐付けられたロールを持つことができます。

システム設定権限
システム設定権限には以下の設定が含まれます。
- 設定画面の許可
- プラグインのインストール、有効化、無効化の許可
- プラグインの設定の許可
- キャッシュのクリア、アプリケーションの再起動の許可
- 各プラグインの設定権限
メニュー権限
メニュー権限は、デスクトップ版とモバイル版の両方で、ユーザーが異なるメニューページにアクセスする権限を制御するために使用されます。


