アクセスと権限
ユーザーとグループを管理し、アプリケーションのセキュリティを確保する方法。
はじめに
セキュリティは、あらゆるアプリケーションの基本的な柱の1つです。シンプルな社内アプリケーションであっても、API経由で数千人の外部ユーザーを抱える複雑なシステムであっても同様です。
Netunoは標準で堅牢なアクセス制御と権限管理システムを提供し、セキュリティを集中的かつ効率的に管理するために必要なツールを備えています。また、これらの機能をゼロから開発する必要をなくします。
主なセキュリティメカニズムには次のものがあります:
- ユーザーとグループの管理。
- データへの権限とデータ管理の制御。
- 認証試行の詳細な履歴。
- 連続したアクセス失敗後のIP自動ブロック。
- LDAP、Google、GitHub、Discordなどとの統合認証。
- フロントエンド向けJWT認証モジュール。
- その他。
ユーザー管理
プラットフォームにアクセスする個々のアカウントの管理です。システムにアクセスする必要がある各ユーザー、サービス、または連携は、一意のユーザーレコードを持つ必要があります。
Netunoのユーザー管理エリアでは、これらのアカウントのライフサイクルを完全に制御できます:
- 作成:新しいチームメンバーや顧客の登録。
- メンテナンス:メールアドレスの更新、パスワード変更、登録情報の変更。
- アクセス制御:履歴データを削除せずにアカウントを迅速にブロック(無効化)すること。
ユーザー管理の詳細については、インターフェースガイド:ユーザーとグループを参照してください。
グループ管理
認可ルールの定義はグループを通じて行われ、各ユーザーがアクセスまたは操作を許可されているメニュー、フォーム、サービス、データを設定します。個別に権限を設定するのではなく、グループでルールを定義し、その後ユーザーをグループに関連付けるのが理想です。この手順により以下が保証されます:
- スケーラビリティ: 数百人のユーザーを簡単に管理。
- セキュリティ: 誤って不適切なアクセス権を付与するリスクを低減。
- 整理: 管理者、マネージャー、スーパーバイザー、一般ユーザーを明確に分離。
Netunoにはdevやadminなどのネイティブグループがすでに用意されており、アプリケーションのビジネスルールに合わせてカスタムグループを作成する完全な自律性を提供します。
グループ管理の詳細については、インターフェースガイド:ユーザーとグループを参照してください。
データ権限の制御
グループの機能やユーザーの権限を保証するには、どのデータを操作する権限があるかを明確にすることが重要です。Netunoでは、アクセス制御は詳細で、アプリケーションのフォーム(テーブル)に直接適用されます。
システムは権限マトリクスを使用し、各機能について、特定のグループに以下を行う適切な権限があるかどうかを定義できます:
- 読み取り: レコードを表示するのみ。
- 書き込み: データベースにレコードを挿入および編集する。
- 削除: レコードを完全に削除する。
この柔軟性により、各担当者は業務遂行に必要な情報のみにアクセスが制限されるため、機密データの保護が確保されます。
データ権限の設定方法の詳細については、インターフェースガイド:ユーザーとグループを参照してください。
認証履歴
透明性と制御を確保するため、すべてのアクセス試行(成功または無効)が記録され、認証履歴で確認できます。
システムはユーザーの各ログイン試行の情報を詳細に監視および保存します:
- 発信元IP: リクエストの発信元ネットワークアドレス。
- 時刻: アクションの正確な時刻。
- アクセス: アクセスが許可、拒否、またはブロックされたか。
アクセスアイコンの凡例
🟩 緑色の南京錠/チェックマーク: 成功を示します。ユーザーが正しい認証情報を提供し、ログインが承認されました。また、発信元IPのブロックが解除されたことも示します。
🟧 オレンジ色の「X」アイコン: 無効な試行の回数を示します。
🟥 赤色の南京錠: 発信元IPのブロックを示します。
自動ブロック
Netunoには、アプリケーションを攻撃や不正アクセスから保護するために設計されたアクティブなセキュリティシステムがあります。
複数回の連続した無効なログイン試行など、疑わしいアクティビティが検出されると、システムは発信元IPアドレスを自動的にブロックします。
ブロックされると、IPは一定期間、または手動でブロックが解除されるまで、新しいリクエストを実行できなくなります。
ブロックルールの設定
このルールは、アプリケーション環境の設定ファイル「development.json」または「production.json」で定義されます。
1. 設定ファイルを特定する
プロジェクトのルートで、configフォルダに移動します。保護したい環境に対応するファイルを開きます:
-
開発用:
_development.json -
本番用:
_production.json
2. 保護コードを挿入する
JSONファイル内でauthセクションを見つけます。存在しない場合は、以下の例に従ってattemptsブロックを挿入します:
{
...
"auth": {
"attempts": {
"interval": 60,
"maxFails": 3
}
}
}
3. パラメータの理解
-
interval:分単位の時間枠(例:60分 = 1時間)。 -
maxFails:ブロック前にその時間枠内で許可される最大失敗回数。
4. システムの動作
-
自動ブロック後、ユーザーはアプリケーションにアクセスできなくなります。
-
デフォルトでは、システムは3回の無効な試行で1時間ブロックするように設定されています。この期間が過ぎると、試行は再び許可されます。
-
このプロセスは、アプリケーションのニーズに応じて設定できます。
インターフェースからブロックを解除する
「管理者」権限を持つユーザーのみが、データベースにアクセスすることなく、バックオフィスから直接アクセスを解除できます。
-
アプリケーションのメニューで「表示」モードにアクセスし、**「設定 > ユーザー」**セクションをクリックします。

-
**「既存ユーザーを編集」**フィールドで、目的のユーザーを選択します。

-
**「認証履歴」**セクションで、ステータス「アクセス」に緑色の「南京錠」アイコンが表示されていることを確認します;

-
時計アイコンをクリックして、ユーザーの完全なアクセスリストを確認します。

-
**「アクセス」**列の緑色の南京錠をクリックして、ユーザーのブロックを解除します。この操作後、成功メッセージが表示されます。
解除は即時に行われ、ユーザーは再びログインを試行できます。
統合認証
アプリケーションでは、特にモバイルアプリを構築している場合や企業ネットワークと統合している場合、より高度なログイン方法が必要になることがあります。
Netunoは柔軟に設計されており、組織のエコシステムと統合できます。標準のログイン(ユーザー名とパスワード)に加えて、プラットフォームはさまざまな業界標準の認証プロトコルをサポートしています。
これにより、ユーザーがすでに持っている認証情報を使用してシステムにアクセスするシングルサインオン(SSO)戦略を実装でき、アクセス管理を一元化できます。
企業環境: ユーザーディレクトリ(LDAPやActive Directoryなど)との互換性があり、イントラネットや内部システムに最適です。
ソーシャルログイン(OAuth): Google、Microsoft、GitHubなどのプロバイダーとの統合が可能で、公開アプリケーションでの登録とアクセスを容易にします。
トークン認証(JWT)
専用のフロントエンド(React、Vue.jsのサイト、モバイルアプリなど)を使用するプロジェクトでは、Netunoの従来のログイン画面は使用されません。このようなシナリオでは、JWT(JSON Web Token)標準が採用されます。
Netunoはこれらのトークンを自動的に生成および検証するネイティブサービスを提供し、API経由の通信におけるセキュリティと効率性を確保します。
設定ファイルでJWTを実装および構成する方法の詳細については、JWT認証ガイドを参照してください。
結論
Netunoのセキュリティ機能を習得することは、プロジェクトの健全性にとって重要です。ユーザー管理、グループ管理、履歴監視のツールを正しく使用することで、データ保護と使いやすさのバランスが取れた環境を構築できます。
これにより、Netuno上のシステムが次のようになることを保証できます:
-
安全: 機密情報を不正アクセスから保護します。
-
整理されている: 明確な階層と責任を確立します。
-
スケーラブル: 最新の統合とともに成長できる準備ができています。
ベストプラクティスを維持しましょう: グループの権限を定期的に見直し、アクセス履歴を確認して、環境を健全に保ちましょう。