属性ベースのアクセス制御(ABAC)を使用したアプリケーションのセキュリティー保護
4 タスク
30 分
シナリオ
各候補者ケースには、候補者を特定するための納税者識別番号(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 | pega123! |
エンドユーザー | Recruiter@TGB | pega123! |
補足: 練習環境では、複数のチャレンジの完了をサポートする場合があります。 その結果、チャレンジのウォークスルーに表示される設定は、お客様の環境と完全に一致しない場合があります。
チャレンジ ウォークスルー
詳細なタスク
1 Access Whenレコードの作成
補足: アクセスコントロールポリシーの条件は、クリップボードのデータに対してのみテストすることができます。 ポリシーの条件では、要件を満たすために、「HR」と「Recruiting」という2つの定数文字列に対して、演算子の組織単位をテストする必要があります。 「HR」や「Recruiting」などの定数をテストするために、「Access When」レコードを設定します。
- Dev Studioの「Create」メニューから「Security」>「Access When」を選択し、「Create Access When」フォームを開きます。
- 「Label」フィールドに、 「Is HR Or Recruiting」と入力し、「Access When」レコードの名前を付けます。
- 「Apply to」フィールドに、「TGB-HRApps-Data-Candidate」と入力するか、選択します。
- 「Create Access When」フォームで、「Create and open」をクリックして、「Access When」レコードを作成します。
- 「Access When」レコードで、テキスト「Double click to add condition」をダブルクリックして、Conditionダイアログを開きます。
-
Conditionダイアログで、「OperatorID.pyOrgUnit = “HR””」という条件を入力します。
- 「Submit」をクリックして、「Access When」レコードに戻ります。
- OperatorID.pyOrgUnit= “HR”の条件を選択し、「Actions」>「Insert Condition」をクリックして「Condition」ダイアログを開き、2つ目の条件を作成します。
- 「Condition」ダイアログで、「OperatorID.pyOrgUnit = “Recruiting”」という条件を入力します。
- 「Submit」をクリックして、「Access When」レコードに戻ります。
- OperatorID.pyOrgUnit= “Recruiting”の条件の左側で、「AND」をクリックして「OR」を選択すると条件が変更され、組織単位がHRまたはRecruitingのいずれかである場合は、結果としてtrueを返します。
- 変更を保存します。
2 アクセスコントロールポリシーの条件レコードを作成する
- 「Create」メニューで「Security」>「Access Control Policy Condition」を選択し、「Create Access Control Policy Condition」フォームを開きます。
- 「Create Access Control Policy Condition」フォームの「Label」フィールドに「HR or Recruiting」と入力します。
- 「Apply to」フィールドに「TGB-HRApps-Data-Candidate」と入力して、納税者番号プロパティと同じクラスにポリシー条件を作成します。
- 「Create and open」をクリックし、次の画像または表を使用してAccess Control Policy Conditionsとロジックを定義します。
Conditional logic Column Source Relationship Treat Empty As Null Condition A When: IsHROrRecruiting .pxCreateOperator is not null Selected Condition B Otherwise .pxCreateOperator is null Selected - 「Pages & Classes」タブをクリックします。
- 「Page name」フィールドに「OperatorID」と入力します。
- 「Class」フィールドで「Data-Admin-Operator-ID」と入力するか選択します。
- 「Save」をクリックして、アクセスコントロールポリシー条件の設定を完了します。
補足: 複数のオペレーターのセキュリティー属性を複数のソースで評価する必要がある場合は、これらの値を1つのページに集約するためのデータタイプとデータページの作成を検討してください。
3 アクセスコントロールポリシーレコードの作成
- 新しいAccess Control Policyを作成します。
- 「Create Access Control Policy」フォームの「Label」フィールドに「Restrict TIN」と入力します。
- 「Action」ドロップダウンリストで「PropertyRead」を選択し、プロパティ値の読み取り時にポリシー条件を適用します。
- 「Apply to」フィールドに「TGB-HRApps-Data-Candidate」と入力して、納税者番号プロパティと同じクラスにポリシーを作成します。
- Access Control Policyレコードを作成して開く
- Access Control Policyレコードの「Permit access if」フィールドに、「HROrRecruiting」を入力または選択し、HR or Recruitingアクセスコントロールポリシーの条件を適用します。
- 「Add Property」をクリックします。
- 「Property」フィールドに、「.TIN」と入力するか選択し、ポリシーを「TIN」フィールドに適用します。
- TINのすべての桁をマスクするフルマスクを適用します。
- 歯車アイコンをクリックして、「Masking」ダイアログと「Formatting Options」ダイアログを開きます。
- 次の画像または表に示すように、「Masking and Formatting Options」ダイアログで、すべてのフィールドに入力します。
フィールド 値 Restriction Method Full Mask Masking character * Display length is fixed Selected Display characters length 9 - 「Submit」をクリックして「Masking and Formatting Options」ダイアログを閉じ、アクセスコントロールポリシーレコードに戻ります。
- アクセスコントロールポリシーへの変更を保存します。
4 「Collect Candidate Details」プロセスを更新し、ポリシーの条件に.pxCreateOperatorの値を設定します。
- Dev StudioのApp Explorerで、「Candidate」>「Process」>「Flow」>「CollectCandidateDetails_0」をクリックしてCollect Candidate Details_0プロセスを開きます。
- 「Collect Candidate Details」フローで、「Collect Personal Details」コネクターをダブルクリックして「Connector properties」ダイアログを開きます。
- 「Set Properties」セクションの「Name」フィールドで、「.Candidate.pxCreateOperator」を入力または選択して、「Candidate」ページの「pxCreateOperator」プロパティの値を設定します。
- 「Value」フィールドで、「.pxCreateOperator」を入力または選択して、pyWorkPageの「pxCreateOperator」プロパティの値をコピーします。
- 「Submit」をクリックして、「Collect Candidate Details」プロセスに戻ります。
- 変更を保存します。
作業の確認
- 新しいCandidateケースを作成します。 ケース番号をメモします。
- 「Collect Personal Information」画面の「Taxpayer Identification Number (TIN)」フィールドに、「111-22-2222」と入力します。
補足: 米国では、社会保障局がTaxpayer Identification Number(納税者番号)(一般的にはSocial Security Number(SSN)(社会保障番号)という)を発行します。 SSNは9桁の数字で、「NNN-NN-NNNN」という形式で入力します。
- 他のすべての必須フィールドに情報を入力します。
- 「Submit」をクリックして、「Collect Personal Information」画面をサブミットします。
- ケースを「Conduct Phone Screen」画面に進めます。
- 「Taxpayer Identification Number (TIN)」フィールドにアステリスクが9個表示されていることを確認します。
- Dev Studioからログアウトします。
- Recruiter@TGBユーザーとしてログインします。
- User portalの「Dashboard 」タブで、手順7でメモしたケースを開き、そのケースを「Conduct Phone Screen」画面に進めます。
ヒント: Worklist ウィジェットをダッシュボードに追加して、Recruiter ワークキューのワークを表示します。
- 「Taxpayer Identification Number (TIN)」フィールドに「111-22-2222」がマスクされずに表示されていることを確認します。
このチャレンジは、下記のモジュールで学習したことを実践するための内容です。
- アクセス制御 v1
このモジュールは、下記のミッションにも含まれています。
トレーニングを実施中に問題が発生した場合は、Pega Academy Support FAQsをご確認ください。