Skip to main content

属性ベースのアクセス制御(ABAC)を使用したアプリケーションのセキュリティー保護

Archived

4 タスク

30 分

Visible to: All users
中級 Pega Platform 8.6 セキュリティ 日本語
This content is now archived and is no longer updated. Progress is not calculated. Pega Cloud instances are disabled, and badges are no longer awarded. ここをクリックして to continue your progress in the latest version.

シナリオ

各「Candidate」ケースには、候補者を特定するための納税者識別番号(TIN)が含まれます。 これらの情報は機密性の高い個人情報とみなされます。 人事部(HR)では、機密性の高い個人情報への不正アクセスを防止することが必要です。 この要件を満たすために、ユーザーが人事部と採用部のいずれかの組織単位のメンバーでない限り、人事部はTINをマスクすることが必要であると考えています。 ただし、ユーザーがフォームにTINを入力できるように、ケースライフサイクルの最初のステップでフィールドを編集できるようにする必要があります。

「Candidate」ケースタイプのアクセスコントロールポリシー条件を作成します。 以下のテストを行うための条件を設定します。

  • 「Access When」レコードを作成して、ユーザーが採用部または人事部のいずれかの組織単位のメンバーであるかどうかをテストします。 次に、アクセスコントロールポリシーの条件に「Access When」レコードを適用します。
  • ユーザーが採用部または人事部のいずれかの組織単位のメンバーである場合に、プロパティpxCreateOperatorがNULLであるかどうかをテストするポリシー条件を作成します。
  • ユーザーが採用部または人事部のいずれかの組織単位のメンバーでない場合に、プロパティpxCreateOperatorがNULLでないかどうかをテストするポリシー条件を作成します。

「Candidate」ケースタイプにアクセスコントロールポリシーを作成します。 ポリシーを設定して、アクセスコントロールポリシーの条件がtrueの場合、「TIN」プロパティのすべての数字をマスクするようにします。

ユーザーが「Collect Personal Information」アサインメントを完了したら、「Collect Candidate Details」プロセスを更新してプロパティpxCreateOperatorの値を設定します。 そのためには、pyWorkPageからpxCreateOperatorの値をコピーします。

以下の表は、チャレンジに必要なログイン情報をまとめたものです。

ロール ユーザー名 パスワード
システムアーキテクト SSA@TGB rules
エンドユーザー Recruiter@TGB rules
補足: 練習環境では、複数のチャレンジの完了をサポートする場合があります。 その結果、チャレンジのウォークスルーに表示される設定は、お客様の環境と完全に一致しない場合があります。

チャレンジ ウォークスルー

詳細なタスク

1 Access Whenレコードの作成

補足: アクセスコントロールポリシーの条件は、クリップボードのデータに対してのみテストすることができます。 ポリシーの条件では、要件を満たすために、「HR」と「Recruiting」という2つの定数文字列に対して、演算子の組織単位をテストする必要があります。 「HR」や「Recruiting」などの定数をテストするために、「Access When」レコードを設定します。
  1. Dev Studioの「Create」メニューから「Security」>「Access When」を選択し、「Create Access When」フォームを開きます。
  2. 「Label」フィールドに、 「Is HR Or Recruiting」と入力し、「Access When」レコードの名前を付けます。
  3. 「Apply to」フィールドに、「TGB-HRApps-Data-Candidate」と入力するか、選択します。
  4. 「Create Access When」フォームで、「Create and open」をクリックして、「Access When」レコードを作成します。
  5. 「Access When」レコードで、テキスト「Double click to add condition」をダブルクリックして、Conditionダイアログを開きます。
  6. Conditionダイアログで、「OperatorID.pyOrgUnit = “HR”」という条件を入力します。

    access-when-condition
  7. 「Submit」をクリックして、「Access When」レコードに戻ります。
  8. OperatorID.pyOrgUnit= “HR”の条件を選択し、「Actions」>「Insert Condition」をクリックして「Condition」ダイアログを開き、2つ目の条件を作成します。
  9. 「Condition」ダイアログで、「OperatorID.pyOrgUnit = “Recruiting”」という条件を入力します。
  10. 「Submit」をクリックして、「Access When」レコードに戻ります。
  11. OperatorID.pyOrgUnit= “Recruiting”の条件の左側で、「AND」をクリックして「OR」を選択すると条件が変更され、組織単位がHRまたはRecruitingのいずれかである場合は、結果としてtrueを返します。
    access-when-HR-or-Recruiting
  12. 変更を保存します。

2 アクセスコントロールポリシーの条件レコードを作成する

  1. 「Create」メニューで「Security」>「Access Control Policy Condition」を選択し、「Create Access Control Policy Condition」フォームを開きます。
  2. 「Create Access Control Policy Condition」フォームの「Label」フィールドに「HR」または「Recruiting」と入力します。
  3. 「Apply to」フィールドに「TGB-HRApps-Data-Candidate」と入力して、「Tax Identification Number」プロパティと同じクラスにポリシー条件を作成します。
  4. 「Create and open」をクリックし、次の画像を使用してAccess Control Policy Conditionsとロジックを定義します。
    access-control-policy-condition-record
  5. 「Pages & Classes」タブをクリックします。
  6. 「Page name」フィールドに「OperatorID」と入力します。
  7. 「Class」フィールドで「Data-Admin-Operator-ID」と入力するか選択します。
  8. 「Save」をクリックして、アクセスコントロールポリシー条件の設定を完了します。
補足: 複数のオペレーターのセキュリティー属性を複数のソースで評価する必要がある場合は、これらの値を1つのページに集約するためのデータタイプとデータページの作成を検討してください。

3 アクセスコントロールポリシーレコードの作成

  1. 新しいAccess Control Policyを作成します。
  2. 「Create Access Control Policy」フォームの「Label」フィールドに「Restrict TIN」と入力します。
  3. 「Action」ドロップダウンリストで「PropertyRead」を選択し、プロパティ値の読み取り時にポリシー条件を適用します。
  4. 「Apply to」フィールドに「TGB-HRApps-Data-Candidate」と入力して、「Tax Identification Number」プロパティと同じクラスにポリシーを作成します。
  5. Access Control Policyレコードを作成して開く
  6. Access Control Policyレコードの「Permit access if」フィールドに、「HROrRecruiting」を入力または選択し、HR or Recruitingアクセスコントロールポリシーの条件を適用します。
  7. 「Add Property」をクリックします。
  8. 「Property」フィールドに、「.TIN」と入力するか選択し、ポリシーを「TIN」フィールドに適用します。
  9. TINのすべての桁をマスクするフルマスクを適用します。
    Access control policy TIN mask
  10. 歯車アイコンをクリックして、「Masking」ダイアログと「Formatting Options」ダイアログを開きます。
  11. 次の図に示すように、「Masking and Formatting Options」ダイアログで、すべてのフィールドに入力します。
    masking-formatting-options
  12. 「Submit」をクリックして「Masking and Formatting Options」ダイアログを閉じ、アクセスコントロールポリシーレコードに戻ります。
  13. アクセスコントロールポリシーへの変更を保存します。

4 「Collect Candidate Details」プロセスを更新し、ポリシーの条件に.pxCreateOperatorの値を設定します。

  1. Dev StudioのApp Explorerで、「Candidate」>「Process」>「Flow」>「CollectCandidateDetails_0」をクリックしてCollect Candidate Details_0プロセスを開きます。
  2. 「Collect Candidate Details」フローで、「Collect Personal Details」コネクターをダブルクリックして「Connector properties」ダイアログを開きます。
  3. 「Set Properties」セクションの「Name」フィールドで、「.Candidate.pxCreateOperato」を入力または選択して、「Candidate」ページの「pxCreateOperator」プロパティの値を設定します。
  4. 「Value」フィールドで、「.pxCreateOperator」を入力または選択して、pyWorkPageの「pxCreateOperator」プロパティの値をコピーします。
  5. 「Submit」をクリックして、「Collect Candidate Details」プロセスに戻ります。
  6. 変更を保存します。

作業の確認

  1. 新規の「Candidate」ケースを作成します。 ケース番号をメモしておきます。
  2. 「Collect Personal Information」フォームの「Taxpayer Identification Number(TIN)」フィールドに「111-22-2222」と入力してください。
    補足: 米国では、社会保障庁が納税者識別番号(一般的には社会保障番号(SSN)と呼ばれる)を発行しています。 SSNは、NNN-NN-NNNの形式で入力される9桁の数字です。
  3. 残りの必須フィールドをすべて入力します。
  4. 「Submit」をクリックして、「Collect Personal Information」フォームを送信します。
  5. 「Conduct Phone Screen」フォームにケースを進めます。
  6. 「Taxpayer Identification Number(TIN)」フィールドに9個のアスタリスクが表示されていることを確認します。 
    conduct-ph-screen-TIN-masked
  7. Dev Studioからログアウトします。
  8. Recruiter@TGBユーザーとしてパスワード「rules」でログインします。
  9. User portalDashboard タブで、手順7で指定したケースを開き、「Conduct Phone Screen」フォームに進めます。
    ヒント: ダッシュボードにWorklist ウィジェットを追加し、Recruiter ワークキューにあるワークを表示します。
  10. 「Taxpayer Identification Number (TIN)」フィールドに、マスクなしの完全な番号、「111-22-2222」が表示されることを確認します。
    conduct-ph-screen-TIN-unmasked


このモジュールは、下記のミッションにも含まれています。

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