Skip to main content

属性ベースのアクセス制御(ABAC)セキュリティーモデル

属性ベースのアクセス制御(ABAC)は、オブジェクト(ケース、レポート、プロパティ)の特性と、オブジェクトへのアクセスを要求するオペレーターの属性を比較することで、オブジェクトへのアクセスを制御するために使用されます。 アクセス制御ポリシーは、特定のユーザーがオブジェクトにアクセスできるかどうかを判断し、アクセスグループの役割とは無関係に実行され、Pega Platformの継承機能を活用することができます。 例えば、ケースに属性Customerを割り当てて、ユーザーが担当する顧客名のリストにCustomerがあるかどうかに基づいて、ユーザーにケースを削除する権限があるかどうかを決定することができます。

アクセスグループの役割に所属しているかどうかでユーザーを大まかに限定する制限は、ロールベースのアクセス制御(RBAC)によって設定されます。 一方、ABACでは、定義されたユーザー属性に基づいて、行レベルや列レベルのセキュリティーをより詳細に制御することができます。 ABACは、RBACのセキュリティー機能を補完し、拡張します。 ABACアプローチに適したユースケースとしては、適切なクリアランスレベルを持たないユーザーからの情報を編集したり、特定の部門に割り当てられている場合にのみユーザーがアクションを実行できるようにしたりするケースなどが挙げられます。 下記の表は、Clearance Level属性を使ってタスクのアクセスを制御する例を示しています。 

User Role Clearance Level Read Reports Submit Reports Redact Reports
エージェント   はい いいえ いいえ
エージェント レベル2 はい はい いいえ
エージェント レベル3 はい はい はい

アプリケーションに属性ベースのアクセス制御を設定するには、まず、アクセス制御の目的において使用する属性を決定します。 次に、オブジェクトの属性値とユーザーの属性値を比較するアクセス制御ポリシーの条件を定義します。 最後に、条件ロジックの評価によって制御されるアクションを指定するアクセス制御ポリシーを定義します。

ヒント: 過去にABACを無効にしたことがある場合は、動的システム設定を更新することでABACを再び有効にすることができます。 Dev Studioで、動的システム設定EnableAttributeBasedSecurityを検索して開きます。 Value フィールドにtrueと入力してSaveをクリックし、属性ベースのアクセス制御を有効にします。 

アクセス制御ポリシーの条件

ABACの制限は、許可されたアクセスの種類を指定するアクセス制御ポリシーによって課されます。 各ポリシーに対して、1つまたは複数のアクセス制御ポリシー条件が、アクセスを許可するかどうかを決定します。

使用する予定の属性を設定した後、Access Control Policy Condition rule画面(Rule-Access-PolicyCondition)を設定します。 ccess Control Policy Condition rule画面では、フィルターのセットを定義し、アクセス制御ポリシーの条件を組み合わせるロジックを追加します。 Rule画面では、保護されたオブジェクトにアクセスタイプが付与される条件を記述します。 Access Control Policy Condition rule画面の条件が満たされると、ユーザーはアクセス制御ポリシーで定義されているアクションを実行できます。 例えば、Access Control Policy Condition rule画面で定義された条件は、サポートエージェントの特定のチームのマネージャーのみが、そのチームのメンバーが処理したサービスクレジットを承認できるようにすることができます。

Access Control Policy Condition rule画面では、フィルターロジック値を持つ複数の条件セットを入力できます。 各フィルターロジックの仕様は、Access Whenルールに関連付けられています。 各フィルターセットは、ケースの属性(プロパティ値)と、任意のクリップボードのプロパティ値を、実行時に比較します。 この比較値は、通常、保護されたオブジェクトにアクセスしようとするユーザーの情報を表します。 
 

アクセス制御ポリシー

Access Control Policy Condition rule画面を設定した後、Access Control Policy rule画面を設定します(Rule-Access-Policy)。 Policy画面では、オブジェクトへのアクセス時にユーザーに許可される事項を制限するアクションを次のいずれかから選択します。

  • Read
  • Update
  • Discover
  • Delete
  • PropertyRead

Pega PlatformデータベースのAssign-Data-Index-Work-クラスのみにアクセス制御ポリシーを定義することができ、アクセス制御ポリシーは複数のクラスを継承することができます。 ポリシー条件は関連するすべてのポリシーから組み合わされ、すべてのポリシー条件が満たされたときにのみアクセスを許可します。 RBACとは異なり、ABACポリシーはPega Platformに内蔵されている継承機能を利用します。

ABACポリシーがアクセスを許可する場合、RBACも適用され、アクセスを許可しなければなりません。  

属性のアサインメント

属性ベースのアクセス制御をアプリケーションで設定するには、使用するユーザーとオブジェクトの属性を定義します。 ユーザー属性はさまざまな方法で定義できます。 例えば、ユーザーの認証に外部身分証明プロバイダー(IDP)を使用している場合、IDPに保存されている情報の中からユーザーに属性を割り当てることができます。 次に、それらの属性をPega Platformアプリケーションのユーザーのオペレーターレコードまたはリクエスターレベルのデータページにマッピングします。 オプションとして、オブジェクトクラスのプロパティフィールドに属性値を追加することで、オブジェクトの属性を追加することができます。

属性の表現には、単一文字列値、文字列値リスト、数値の3つのデータタイプを使用できます。

単一文字列値

文字列型のプロパティを使用して、ユーザーにアクセスを許可する前に一致しなければならない特定の属性を定義することができます。 以下の例では、Security ClearanceがTop Secretのユーザーにアクセスが許可されています。 

Operator.SecurityClearance = “Top Secret”

文字列値リスト

特殊な比較演算子であるAll ofおよびOne ofを使用して、コンマ区切りの文字列値リストを評価することができます。 例えば、セキュリティーポリシーでSecurity ClearanceレベルがTop SecretまたはSecretであることが要求されている場合、One of演算子はどちらの属性のユーザーにもアクセスを許可します。 All of演算子は、文字列値のリストに含まれるすべての属性を評価し、すべての属性が存在する場合にのみアクセスを許可します。

補足: ポリシー条件フィルターで参照される比較値は、既存のRequestorプロパティまたはリクエスターが指定したスコープのデータページである必要があります。

数値

属性を数値データタイプで表すことができます。 属性の値は、オブジェクト(ケース)とサブジェクト(オペレーター)の両方で、トップレベルの数値プロパティにマッピングされなければなりません。 これは、セキュリティー仕様でアクセス階層が必要な場合に役立ちます。 例えば、Top Secret、Secret、Unclassifiedの各属性を使って、以下のような数値マッピングを作成することができます。

属性名 数値プロパティ
Top Secret 1
Secret 2
Unclassified 3

そして、アクセスレベルを決定するために、数値比較を伴う単一の条件を使用することができます。

Operator.SecurityClearance >= .SecurityClearance

次の問題に答えて、理解度をチェックしましょう。

トレーニングを受講中に何か問題がありましたら、こちらをご覧ください: Pega Academy サポートのよくある質問 (FAQ).

このコンテンツは役に立ちましたか?

改善できるところはありますか?

We'd prefer it if you saw us at our best.

Pega Academy has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice