の基本 Mendix アプリのセキュリティ | Mendix

メインコンテンツへスキップ

の基本 Mendix アプリのセキュリティ

アプリのセキュリティは、開発者がアプリを作成する際に正しく行う必要がある最も重要な側面の1つです。 Mendix アプリ。しかし、開発者はアプリがほぼ完成するまでセキュリティを実装するのを待ったり、そもそも正しいセキュリティ対策を実装しなかったりすることが一般的です。これにより、アプリが実稼働環境になったときに深刻な問題が発生する可能性があります。

このブログ記事では、セキュリティを成功させるためにアプリに適用する必要がある重要な基礎について説明します。

プロジェクト セキュリティとモジュール セキュリティ

「ユーザー ロール」という用語は、プロジェクト内かアプリ モジュール内かなど、アプリ内の状況に応じて異なる意味を持つことがあります。技術的には、ユーザー ロールはアプリ内でユーザーが持つロールであり、「モジュール ロール」はアプリ内の特定のモジュール内でユーザーが持つロールです。ただし、実際には、どちらの状況でも「ユーザー ロール」を使用するのが一般的です。

これは、どのロールがどのロールであるかを覚えるのに役立つ簡単な定義です。ユーザー ロールは、選択されたモジュール ロールのグループです。アプリを開発するときは、アプリで使用する予定のモジュールごとにモジュール ロールのセットを作成する必要があります (モジュールにセキュリティ タイプが必要ない場合は、モジュール ロールは必要ありません)。次に、プロジェクト自体のユーザー ロールを作成できます。

これは、ユーザー ロールに複数のモジュール ロールが関連付けられている例です。

ユーザーロールのセキュリティ設定

エンティティのセキュリティとテンプレート グリッドの可視性

エンティティ セキュリティとテンプレート グリッドの可視性をいつ使用するかを知ることは重要です。アプリのセキュリティを確保するには、機密データがデータベースから意図しないときに流出しないようにする必要があります。エンティティ セキュリティは、データベースからクライアントに送信されるデータを指定すると同時に、ユーザーにアプリ内でオブジェクトを作成および削除する機能も提供します。

アクセスルールのスクリーンショット

エンティティ セキュリティが設定されていない場合、どのページでもエンティティからデータ オブジェクトを取得できます。テンプレート グリッドの XPath 制約を使用すると、サーバーからのデータは、XPath 制約の条件を満たす場合にのみ送信されます。ただし、これは特定のテンプレート グリッドにのみ有効です。エンティティのすべてのデータがデータベースからクライアントに送信される可能性があるため、テンプレート グリッドの XPath 制約はセキュリティとは見なされず、セキュリティとして使用しないでください。これは、開発者がアプリを開発する際によくある間違いであり、この間違いによって重大なセキュリティ問題が発生する可能性があります。エンティティに特定の制約を設定してセキュリティを確保するには、エンティティ レベルで XPath 制約を設定し、アプリで作成するすべてのデータ グリッドでこの制約が自動的に有効になるようにします。

アクセスルールのスクリーンショット

このデータのセキュリティが重要ではなく、特定のデータ グリッドに表示されるデータのみをフィルター処理する場合は、次に示すように、データ グリッド自体に移動して XPath を設定できます。

XPath スクリーンショット

マイクロフローアプリのセキュリティ

アプリでマイクロフローを使用する場合、マイクロフローの実行前に行われる最初のセキュリティ チェックでは、ユーザーが適切なモジュール レベルのセキュリティを持っているかどうかが確認されます。ユーザーが適切なモジュール レベルのアクセス権を持っている場合、マイクロフローと、このトリガーされたマイクロフロー内のすべてのサブマイクロフローが実行されます。サブマイクロフローは、サブマイクロフロー レベルで設定されているモジュール レベルのセキュリティの種類に関係なく、親マイクロフローのセキュリティを継承します。したがって、実際には、複数のサブマイクロフローを持つマイクロフローがあり、サブマイクロフロー セキュリティに基づいてそれらのサブマイクロフローの一部のみが実行されると予想される場合、セットアップはサブマイクロフロー セキュリティに依存しないようにする必要があります。サブマイクロフロー セキュリティはメイン マイクロフローが実行されるたびに実行され、セキュリティの問題が発生するためです。

マイクロフローアプリのセキュリティ

マイクロフローのセキュリティは扱いが難しい場合があります。マイクロフローでエンティティセキュリティを有効にするかどうかを選択して、どのデータを使用できるかを指定できるからです。マイクロフローでエンティティセキュリティが有効になっていない場合、ユーザーロールはエンティティアクセス権を持たないエンティティからオブジェクトを取得できるため、セキュリティの問題が発生する可能性があります。 エンティティアクセスを適用する 有効になっている場合、マイクロフローの背景が黄色に変わり、データベースに対するあらゆる種類のアクションで、ユーザー ロールがそのアクションを実行するためのアクセス権を持っているかどうかが考慮されます。この追加されたセキュリティ レベルにより、アプリケーションが誤ってユーザーに、本来アクセスできないオブジェクトの読み取り、書き込み、または削除の権限を与えることがなくなります。

エンティティアクセス

セキュリティがアプリの異常な動作を引き起こす

アプリの開発とテストを行う際によく発生する問題の 1 つは、Modeler に明確に表示されているボタンまたはデータ グリッドが表示されないことです。

セキュリティがアプリの異常な動作を引き起こす

この現象が発生した場合、まずアクションボタンのセキュリティを確認してください。これは New ボタンをクリックする前に、まず 新しいオブジェクトの作成を許可する このエンティティのチェックボックスが選択されています。

新しいオブジェクトを作成する

このボックスをチェックしてもボタンが表示されない場合は、ボタンがデフォルトの表示ではなくマイクロフローをトリガーするかどうかを確認してください。 Mendix New ボタン。上記のケースでは、マイクロフローがトリガーされています。アクションボタンは、 IVK_新販売コンテンツこのマイクロフローのセキュリティを確認すると、ユーザーにはマイクロフローへのアクセス権がないため、ボタンが表示されないことがわかります。

セキュリティ モジュール

結論

アプリのセキュリティは、アプリの成功に不可欠な要素です。 Mendixアプリ開発の早い段階で時間をかけることで、上記で説明した問題の一部を回避し、アプリを可能な限り安全にすることができます。

あなたはについての詳細を知りたい場合 Mendix アプリのセキュリティについては、 Mendix 開発者向けドキュメントが見つかりました こちら.

言語を選択してください