ユーザーロール
ロールを使用すると、アプリケーションの特定の画面や操作に対するエンドユーザーのアクセスを制限または許可できます。
ロールは設計の際に設定します。アプリケーションのロジックの設計の際に使用することが可能で、以下の要素と関連付けることができます。
- 画面
- Human Activity
システムロールおよびカスタムロール
Service Studioで新しいモジュールを作成すると、OutSystemsではデフォルトのシステムロールが提供されますが、独自のカスタムロールを定義することもできます。
**
OutSystemsでは、以下のシステムロールが用意されています。
-
Anonymous(匿名): ログインしていないユーザーを含むすべてのエンドユーザー(非認証ユーザー)に対して、要素へのアクセスを許可します。Anonymousは最も一般的なロールで、たとえば画面などにAnonymousを関連付けると、既存のすべてのロールが自動的に関連付けられます。
-
Registered(登録済み): 同じプラットフォームサーバーで実行中のアプリケーションにログインしているすべてのエンドユーザー(認証済みユーザー)に対して、要素へのアクセスを許可します。OutSystemsのシングルサインオンの仕組みにより、アプリケーションまたはモジュール間でエンドユーザーのセッションが共有でき、このような制御が可能になります。このロールを要素に関連付けると、Anonymousロールを除く既存のすべてのロールが自動的に関連付けられます。
システムロールが用意されていますが、独自のカスタムロールを定義して、アプリケーションの画面や操作に対するエンドユーザーのアクセスを管理することもできます。
ロールの永続性
実行中のロールの付与や取り消し(Grant<ロール名>RoleやRevoke<ロール名>Roleアクションを使用)は、複数のセッションにわたって永続的に行うことも、単一セッションに対してのみ行うこともできます。
この設定は従来のWebアプリでのみ変更可能です。
-
永続的: 実行中のロールの付与や取り消しはデータベースに保存され、ログインセッション間で保持されます。ロールの
Is Persistent
プロパティを[Yes
]に設定します。 -
非永続的: 実行中のロールの付与や取り消しはデータベースに保存されず、単一セッションでのみ有効です。エンドユーザーがログアウトすると、実行中のロールの付与や取り消しは無効になります。ロールの
s Persistent
プロパティをNo
に設定します。
外部システムを使用してエンドユーザーの認証や認可を行う場合は、非永続的ロールを使用する必要があります。Active Directoryのような外部システムで定義された権限と、OutSystemsのロールのマッピングが容易になります。非永続的ロールを使用すると、外部システムで行ったエンドユーザーの権限の変更がOutSystemsに確実に反映されるようになります。
OutSystemsメタモデルのユーザーロール
OutSystemsプラットフォームで作成したロールは、Roleエンティティに保存されます。 開発者は2つの異なるエンティティでユーザーのロールを確認することができます。
-
User_Roleエンティティは、ユーザーとロールの関連付けが保存されるメタモデルテーブルです。このエンティティには、Usersアプリケーションを使用して特定のユーザーに直接追加されたロールのみが保存されます。
-
User_Effective_Roleエンティティは、ユーザー固有のロールが保存されるメタモデルビューです。このエンティティには、ユーザーに直接割り当てられたロールと、ユーザーが属しているグループに割り当てられたロールが含まれます。
User_RoleとUser_Effective_Roleをアプリで使用するには、事前に以下の手順を実行してこれらを依存関係として追加しておきます。
- [Manage Dependencies]を開きます。
- プロデューサのリストで、[(System)]を選択します。
- パブリック要素のリストで、[User_Role]と[User_Effective_Role]を選択します。
(System)内にUser_RoleエンティティやUser_Effective_Roleエンティティが表示されない場合は、パブリック要素のリストのフィルタドロップダウンで[Show all]を選択していることを確認してください。
このセクションの記事
- ユーザーロールを作成する
- 独自のカスタムロールを使用して、アプリケーションの特定の画面や操作に対するエンドユーザーの権限を管理することができます。
- アプリケーションのエンドユーザーの権限を検証する
- アプリケーションの特定の領域や操作に対するエンドユーザーのアクセスを制限する必要がある場合、権限を検証する必要があります。