このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください
NocoBaseは、機能設計からシステム実装に至るまで、データとアプリケーションのセキュリティを重視しています。プラットフォームには、ユーザー認証、アクセス制御、データ暗号化など、複数のセキュリティ機能が組み込まれており、実際のニーズに応じてセキュリティポリシーを柔軟に設定できます。ユーザーデータの保護、アクセス権限の管理、開発環境と本番環境の分離など、NocoBaseは実用的なツールとソリューションを提供します。本ガイドは、NocoBaseを安全にご利用いただくための指針を提供し、ユーザーの皆様がデータ、アプリケーション、環境を保護し、安全を確保しながらシステム機能を効率的に利用できるよう支援することを目的としています。
ユーザー認証は、ユーザーの身元を識別し、不正なシステムへのアクセスを防ぎ、ユーザーIDの悪用を防止するために使用されます。
デフォルトでは、NocoBaseはJWT (JSON Web Token) を使用してサーバーサイドAPIの認証を行います。ユーザーはシステム環境変数 APP_KEY を通じてトークンキーを設定できます。アプリケーションのトークンキーは適切に管理し、外部への漏洩を防いでください。APP_KEY が変更された場合、古いトークンも無効になることに注意してください。
NocoBaseは、ユーザーのトークンに対して以下のセキュリティポリシー設定をサポートしています。
| 設定項目 | 説明 |
|---|---|
| セッション有効期間 | ユーザーがログインしてから有効となる最長期間です。セッション有効期間内であれば、トークンは自動的に更新されますが、期限が過ぎると、ユーザーは再ログインを求められます。 |
| トークン有効期間 | 発行されるAPIトークンごとの有効期間です。トークンが期限切れになっても、セッション有効期間内で更新期限を超えていない場合、サーバーはユーザーセッションを維持するために新しいトークンを自動的に発行します。それ以外の場合は、ユーザーは再ログインを求められます。(各トークンは一度だけ更新可能です) |
| 期限切れトークンの更新期限 | トークンが期限切れになった後、更新が許可される最大期間です。 |
通常、管理者の方には以下の設定をお勧めします。
デフォルトでは、ユーザーのトークンはブラウザのLocalStorageに保存されます。ブラウザページを閉じて再度開いた場合でも、トークンが有効期間内であれば、ユーザーは再ログインする必要はありません。
ユーザーがページを開くたびに再ログインを求める場合は、環境変数 API_CLIENT_STORAGE_TYPE=sessionStorage を設定し、ユーザーのトークンをブラウザのSessionStorageに保存することで、この目的を達成できます。
プロフェッショナル版以上
NocoBaseは、すべてのユーザーに対してパスワードルールとパスワードログイン試行ロックポリシーを設定することをサポートしており、パスワードログインが有効なNocoBaseアプリケーションのセキュリティを強化します。各設定項目の詳細については、パスワードポリシーをご参照ください。
| 設定項目 | 説明 |
|---|---|
| パスワードの長さ | パスワードの最小長要件です。最大長は64文字です。 |
| パスワードの複雑さ | パスワードの複雑さ要件を設定します。含めるべき文字の種類を指定します。 |
| パスワードにユーザー名を含めない | パスワードに現在のユーザー名を含めることができるかどうかを設定します。 |
| パスワード履歴の記憶 | ユーザーが最近使用したパスワードの数を記憶します。パスワード変更時に再利用することはできません。 |
| 設定項目 | 説明 |
|---|---|
| パスワード有効期間 | ユーザーパスワードの有効期間です。ユーザーはパスワードが期限切れになる前に変更する必要があり、そうすることで有効期間が再計算されます。期限切れ前にパスワードを変更しなかった場合、古いパスワードでログインできなくなり、管理者の支援によるリセットが必要になります。 他のログイン方法が設定されている場合、ユーザーはそちらを利用してログインできます。 |
| パスワード期限切れ通知チャネル | ユーザーのパスワードが期限切れになる10日以内、ユーザーがログインするたびにリマインダーを送信します。 |
| 設定項目 | 説明 |
|---|---|
| 無効なパスワードログイン試行回数の上限 | 規定の時間間隔内でユーザーが試行できるログイン回数の上限を設定します。 |
| 無効なパスワードログイン時間間隔の上限(秒) | ユーザーの無効なログイン試行回数の上限を計算するための時間間隔を秒単位で設定します。 |
| ロック時間(秒) | 無効なパスワードログイン制限を超過した後、ユーザーをロックする時間を設定します(0は制限なし)。 ユーザーがロックされている間は、APIキーを含むいかなる認証方法でもシステムへのアクセスが禁止されます。 |
通常、以下のことをお勧めします。

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

NocoBaseはAPIキーを介したシステムAPIの呼び出しをサポートしており、ユーザーはAPIキープラグインの設定でAPIキーを追加できます。

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

エンタープライズ版
二要素認証は、ユーザーがパスワードでログインする際に、身元を証明する2つ目の有効な情報を提供することを要求します。例えば、ユーザーの信頼できるデバイスにワンタイム動的認証コードを送信することでユーザーの身元を確認し、ユーザーIDの悪用を防ぎ、パスワード漏洩によるリスクを低減します。
エンタープライズ版
NocoBaseは、ユーザーアクセスIPに対してブラックリストまたはホワイトリストを設定することをサポートしています。
システム内で異なるロールを設定し、それらのロールに適切な権限を付与することで、ユーザーがリソースにアクセスする権限をきめ細かく制御できます。管理者は、実際のシナリオのニーズに合わせて適切に設定し、システムリソースの漏洩リスクを低減する必要があります。
NocoBaseを初めてインストールする際、アプリケーションはrootユーザーを初期化します。ユーザーはシステム環境変数を設定してrootユーザーの関連情報を変更し、悪用されないようにすることをお勧めします。
INIT_ROOT_USERNAME - rootユーザー名INIT_ROOT_EMAIL - rootユーザーのメールアドレスINIT_ROOT_PASSWORD - rootユーザーのパスワード。強度の高いパスワードを設定してください。システムを継続して使用する際には、他の管理者アカウントを設定して使用し、rootユーザーで直接アプリケーションを操作することは極力避けてください。
NocoBaseは、システム内でロールを設定し、異なるロールに権限を付与し、ユーザーを対応するロールに紐付けることで、ユーザーがリソースにアクセスする権限を制御します。各ユーザーは複数のロールを持つことができ、ユーザーはロールを切り替えることで、異なる視点からリソースを操作できます。部署プラグインがインストールされている場合、ロールと部門を紐付けることもでき、ユーザーは所属部門に紐付けられたロールを持つことができます。

システム設定権限には以下の設定が含まれます。
メニュー権限は、デスクトップ版とモバイル版の両方で、ユーザーが異なるメニューページにアクセスする権限を制御するために使用されます。

NocoBaseは、システム内のデータにアクセスするユーザーの権限に対してきめ細かな制御を提供し、異なるユーザーが自身の職責に関連するデータのみにアクセスできるようにすることで、権限の逸脱やデータ漏洩を防ぎます。


ユーザーが操作できるデータ範囲を設定します。ここでのデータ範囲は、ブロックで設定されるデータ範囲とは異なります。ブロックで設定されるデータ範囲は通常、フロントエンドでのデータフィルタリングにのみ使用されます。ユーザーがデータリソースにアクセスする権限を厳密に制御する必要がある場合、ここで設定する必要があり、サーバー側で制御されます。

データストレージとバックアップのプロセスにおいて、NocoBaseはデータセキュリティを確保するための効果的なメカニズムを提供します。
NocoBaseのユーザーパスワードはscryptアルゴリズムで暗号化されて保存され、大規模なハードウェア攻撃に対して効果的に対抗できます。
NocoBaseでサードパーティサービスを使用する際、サードパーティのキー情報を環境変数に設定し、暗号化して保存することをお勧めします。これにより、異なる場所での設定と利用が容易になり、セキュリティが強化されます。詳細な使用方法については、ドキュメントをご参照ください。
デフォルトでは、キーはAES-256-CBCアルゴリズムで暗号化されます。NocoBaseは32ビットの暗号化キーを自動生成し、storage/.data/environment/aes_key.datに保存します。ユーザーはキーファイルが盗まれないよう、適切に保管してください。データを移行する必要がある場合、キーファイルも一緒に移行する必要があります。

機密ファイルを保存する必要がある場合、S3プロトコル互換のクラウドストレージサービスを使用し、商用プラグインのFile storage: S3 (Pro) と連携して、ファイルのプライベートな読み書きを実現することをお勧めします。内部ネットワーク環境で使用する必要がある場合は、MinIOなど、プライベートデプロイメントをサポートし、S3プロトコル互換のストレージアプリケーションを使用することをお勧めします。

アプリケーションデータのセキュリティを確保し、データ損失を防ぐため、定期的にデータベースをバックアップすることをお勧めします。
オープンソース版ユーザーは、https://www.nocobase.com/en/blog/nocobase-backup-restore を参照してデータベースツールを利用してバックアップできます。また、データ漏洩を防ぐため、バックアップファイルを適切に保管してください。
プロフェッショナル版以上をご利用のユーザーは、バックアップマネージャーを使用してバックアップできます。バックアップマネージャーは以下の機能を提供します。

NocoBaseを正しくデプロイし、実行環境のセキュリティを確保することは、NocoBaseアプリケーションのセキュリティを確保するための重要な要素の一つです。
中間者攻撃を防ぐため、NocoBaseアプリケーションサイトにSSL/TLS証明書を追加し、ネットワーク転送中のデータのセキュリティを確保することをお勧めします。
エンタープライズ版
より厳格なデータセキュリティ要件を持つ環境では、NocoBaseはAPI通信の暗号化を有効にすることをサポートしています。これにより、APIのリクエストとレスポンスの内容を暗号化し、平文での転送を避け、データ解読のハードルを高めます。
デフォルトでは、NocoBaseはサードパーティサービスとの通信は不要であり、NocoBaseチームがユーザーのいかなる情報も収集することはありません。以下の2つの操作を実行する場合にのみ、NocoBaseサーバーへの接続が必要です。
ある程度の利便性を犠牲にするのであれば、これらの2つの操作はオフラインで完了することもでき、NocoBaseサーバーに直接接続する必要はありません。
NocoBaseは完全な内部ネットワークデプロイをサポートしています。以下をご参照ください。
プロフェッショナル版以上
実際の運用では、企業ユーザーがテスト環境と本番環境を分離することをお勧めします。これにより、本番環境におけるアプリケーションデータと実行環境のセキュリティを確保できます。移行管理プラグインを利用することで、異なる環境間でのアプリケーションデータの移行を実現できます。

エンタープライズ版
NocoBaseの監査ログ機能は、システム内のユーザーの活動記録を記録します。ユーザーの主要な操作とアクセス行動を記録することで、管理者は以下のことが可能になります。


NocoBaseは複数のログタイプを提供し、ユーザーがシステムの稼働状況と行動記録を把握できるよう支援します。これにより、システムの問題をタイムリーに発見・特定し、異なる側面からシステムのセキュリティと制御性を確保します。主なログタイプは以下の通りです。