Skip to main content

 

 

 

 

Template:OutSystems/Documentation_KB/Breadcrumb_New_Layout

 

 

Template:OutSystems/OSLanguageSwitcher

 

 

 

OutSystems

ユーザーロール

ロールを使用すると、アプリケーションの特定の画面や操作に対するエンドユーザーのアクセスを制限または許可できます。

ロールは設計の際に設定します。アプリケーションのロジックの設計の際に使用することが可能で、以下の要素と関連付けることができます。

  • 画面
  • 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をアプリで使用するには、事前に以下の手順を実行してこれらを依存関係として追加しておきます。

  1. Manage Dependencies]を開きます。
  2. プロデューサのリストで、[(System)]を選択します。
  3. パブリック要素のリストで、[User_Role]と[User_Effective_Role]を選択します。

OutSystemsのロール情報が含まれるエンティティ

(System)内にUser_RoleエンティティやUser_Effective_Roleエンティティが表示されない場合は、パブリック要素のリストのフィルタドロップダウンで[Show all]を選択していることを確認してください。

このセクションの記事

  • Was this article helpful?