例 2 : リソースを使ったアプリケーションの保護
例のこの部分では、リソースを使用して Web アプリケーションを保護します。このリソースへの許可を付与するロールのメンバであるユーザだけが、HomePage.cls にアクセスできます。
開始する前に、以下の準備手順を実行します。
-
InterSystems IRIS にユーザ (ユーザ名は JSmith、パスワードは JSmith) を追加します。手順については、"ユーザの作成" を参照してください。
-
新しいリソース (SecurityTutorialResource) を追加します。このリソースには、パブリック許可を割り当てません。手順については、"リソースの作成" を参照してください。
-
新しいロール (SecurityTutorialRole) を作成します。ロールに SecurityTutorialResource:USE 特権を追加します。手順については、"ロールの作成" を参照してください。
上記の準備手順が完了したら、以下の手順を実行します。
-
/csp/user アプリケーションの CSP アプリケーション定義を編集します。[アプリケーションの実行に必要なリソース] ドロップダウン・ボックスで、[SecurityTutorialResource] を選択します。[有効] ボックスにチェックが付いていることを確認します。[保存] をクリックします。
-
REST クライアントで、もう一度 GET 要求を実行します。基本認証を使用し、ユーザ名/パスワードとして JSmith/JSmith を使用します。権限がないことを示すエラーが表示されます。
-
次に、JSmith を SecurityTutorialRole ロールに追加します。手順については、"ロールへのユーザの追加" を参照してください。
-
GET で JSmith の認証情報を正常に使用するには、まだ十分ではありません。現時点では、この認証情報はアプリケーションに対する権限は提供しますが、SecurityTutorial.AuthenticationExample コードがある USER データベースに対する権限は提供しません。そのため、もう一度 GET を実行しても、依然として権限がないことを示すステータスで失敗します。
-
必要な権限を提供するには、さまざまな方法があります。例えば、%DB_USER リソースに対する権限を SecurityTutorialRole に追加できます。また、JSmith を %DB_USER ロールに追加する方法もあります。このロールは既定で既にシステム内に存在しており、USER データベースに対する読み込み権限と書き込み権限の両方を JSmith に付与します。さらに別の方法として、アプリケーション・ロールを使用する方法もあります。これはチュートリアルの次の部分で説明します。