スキーマJSONファイル・リファレンス

データベース・アプリケーション表のオーケストレート済システムの作成時に、エージェントは、統合データベース表とOracle Access Governanceの間でアイデンティティ・データをマップするschema.jsonをエージェント・ディレクトリ(<agent-volume>/data/schema)に作成します。このファイルは、そのまま受け入れるか、キャンペーンおよびレビューで考慮するためにOracle Access Governanceにマップされるエンティティおよび属性を構成するためにユーザーが変更できます。

スキーマ検出フロー

データベース・アプリケーション表のスキーマ検出フローは次のとおりです。

  1. Day0: データベース・アプリケーション表のオーケストレート済システムを作成すると、入力した統合設定に基づいて、初期schema.jsonファイルが作成されます。スキーマ・ファイルは、アカウント・エンティティ、権限エンティティおよび参照エンティティのユーザー・データを含む表および列の詳細とともに作成されます。関係情報は、データベースに設定された制約(主キーおよび外部キー)とともに、指定した構成からロードされます。中間スキーマのJSONファイルには、次の属性のマッピングがデフォルトで含まれます(定義されている場合)。追加の属性をマップするには、schema.jsonファイルを編集する必要があります。
    • UID: __UID__
    • 名前: __NAME__
    • ステータス: __ENABLE__
    • パスワード: __PASSWORD__
  2. DayN: DayNアクティビティは、中間スキーマJSONファイルを生成した後、任意の時点で行われます。エージェントによって作成されたデフォルト・ファイルはテストに使用できますが、UID属性と名前属性のみがもたらされるため、完全なデータ・ロードはサポートされません。フル・データ・ロードの場合は、ファイルを編集して、Oracle Access Governanceに渡されるエンティティおよび属性を決定する必要があります。schema.jsonの編集時に使用可能な構造およびオプションの詳細は、スキーマJSONファイル・リファレンスを参照してください。
    ノート

    Day0以降では、ソース・データベースに対してスキーマ検出を再実行し、新しいスキーマ・ファイルを生成できません。エージェントにあるスキーマJSONファイルは、DayNアクティビティの信頼できるソースであり、ファイル内で更新を行う必要があります。
    DayN活動には、以下のものが含まれることがあります。
    1. 限定されたスキーマでデータロードを実行します。Day0で生成された制限付きスキーマを使用して、テスト・データロードを実行できます。これには、属性uid、名前、ステータスおよびパスワード(使用可能な場合)のみが含まれます。
    2. スキーマ・ファイルの変更: schema.jsonファイルを変更して、必要に応じてアカウント、権限および参照の詳細を更新できます。これを行う理由をいくつか示します:
      • あなたは、デフォルトのUID、名前、ステータスおよびパスワードの属性を追加でオンボーディングしようと考えています。これを行うには、含める属性のnameプロパティを設定します。
      • ソース・データベースに変更がある場合は、これをスキーマ・ファイルに反映する必要があります。たとえば、ACCOUNT表に新しい列を追加する場合は、その列を属性としてスキーマ・ファイルに追加する必要があります。
    3. 最新のカスタム属性情報をフェッチするスキーマ検出操作を実行する必要があります。このタスクの実行方法の詳細は、最新のカスタム属性のフェッチを参照してください。
    4. アウトバウンド変換を適用するには、Oracle Access Governanceコンソールから更新する必要があります。Schema.json内で適用される変換ルールは考慮されません。変換ルールを適用するには、アイデンティティ属性のアウトバウンド変換の適用を参照してください。ただし、Schema.jsonの属性を変更したり、属性を削除すると、その特定のアカウント属性に関連する変換ルールがスキーマ検出操作中に削除されます。
    5. データ・ロードおよびプロビジョニング操作の実行: 検出されたスキーマを使用して、統合データベースからOracle Access Governanceにユーザー・データをロードし、Oracle Access Governanceで統合データベースにアカウントおよび権限をプロビジョニングできるようにします。

中間スキーマJSON

中間schema.jsonファイルは、オーケストレートされたシステムの作成時に指定した構成から使用可能なすべての情報を使用して生成されます。これは、オンボーディングできるユーザー・データに影響を与える変更を加えることができるテンプレートとして機能します。中間schema.jsonファイルの構造は次のとおりです。
{
 "schemaTemplates":[
    {
        "type": "", // Type of entity "ACCOUNT", "ENTITLEMENT", "TARGETACCOUNT" or "LOOKUP"
        "name": "", // Name of entity
        "displayName": "", // display name of entity
        "data": {
            // Key-value pairs representing static lookup data if any, or else it will be missing from here.
        }
        "attributes": [
            {
                "name": "", // AG side Name of attribute
                "targetName": "", // Target side name of attribute
                "displayName": "" // Optional display name for the attribute which will be given priority if provided, else attribute name will be used for display name.
                "dataType": "", // Either of TEXT, DATE, NUMBER, DECIMAL_NUMBER, FLAG
                "nature": [ // One or more of "REQUIRED", "MULTIVALUED", "SENSITIVE". It can be missing from here if nothing applies.
                ],
                "usage": [ // One or more of "READ", "PROVISION". It can be missing from here if nothing applies.
                ],
                "relationship": { // Entity relationship details
                    "relatedTo": "", // Entity name in relationship with
                    "relatedBy": "", // Attribute to define the relation
                    "relationshipProperties": [ // Additional relationship properties
                        {
                            "name": "", // Name of additional attribute
                            "dataType": "", // Either of TEXT, DATE, NUMBER, DECIMAL_NUMBER, FLAG
                            "nature": [ // Only READ_ONLY is possible, or else it will be missing from here
                            ],
                            "uiProperties": { // ARMD if applicable, or it will be missing from here
                                "inputType": "" // Either of Auto, User, Admin
                                "widget": "", // Widget to use on UI i.e. Either of Text, Password, Number, Date, SelectOne, RepeatableFieldSet, CheckboxSet
                                "title": "", // Title to use on UI
                                "labelHint": "", // Labelhint to use on UI
                                "minLength": {SOME_POSITIVE_NUMBER},
                                "maxLength": {SOME_POSITIVE_NUMBER},
                                "defaultValues": [ // Default values if applicable, or it will be missing from here
                                ]
                            }
                        }
                    ]
                },
                "outboundTransformation": { // Outbound transformation script if applicable, or it will be missing from here
                    "script": "" // Script to execute for transformation
                },
                "uiProperties": { // ARMD if applicable, or it will be missing from here
                    "inputType": "" // Either of Auto, User, Admin
                    "widget": "", // Widget to use on UI i.e. Either of Text, Password, Number, Date, SelectOne, RepeatableFieldSet, CheckboxSet
                    "title": "", // Title to use on UI
                    "labelHint": "", // Labelhint to use on UI
                    "minLength": {SOME_POSITIVE_NUMBER},
                    "maxLength": {SOME_POSITIVE_NUMBER},
                    "defaultValues": [ // Default values if applicable, or it will be missing from here
                    ]
                }
            }
        ]
    }
  ]
}
ノート

uiProperties属性は、TARGETACCOUNTエンティティ・タイプのスコープ内にのみ存在します。ACCOUNT、ENTITLEMENTまたはLOOKUPエンティティ・タイプには使用しないでください。
スキーマには、次のタイプのエンティティを含めることができます。
  • ACCOUNT: ACCOUNTエンティティ・タイプは、Oracle Access Governanceのアイデンティティ・エンティティにマップされます。ACCOUNTエンティティ・タイプの属性は、Oracle Access Governance内のアイデンティティの移入に使用されます。
  • TARGETACCOUNT: TARGETACCOUNTエンティティ・タイプは、Oracle Access GovernanceのAccountエンティティをマップします。データベース・アプリケーションでアカウントをプロビジョニングすると、ACCOUNT Oracle Access Governanceエンティティ・タイプの属性を使用して、TARGETACOUNTデータベース・エンティティが移入されます。
  • ENTITLEMENT: ENTITLEMENTはOracle Access Governance Permissionにマップされます。
  • LOOKUP: LOOKUPは、Oracle Access GovernanceのLOOKUP情報にマップされます。
中間スキーマJSONが生成されると、データベース表内の各ユーザーのACCOUNTとTARGETACCOUNTの両方に移入されます。これは、オーケストレート済システム、信頼できるソースまたは管理対象システム(あるいはその両方)を構成したモードに関係なく発生します。ただし、データロードが実行されると、これらのエンティティのうち、Oracle Access Governanceで実際に作成されるエンティティに関して、次のルールが適用されます。
  1. 選択したモードは「認可ソース」のみです:
    • ACCOUNTおよびTARGETACCOUNTは、スキーマJSONで生成されます。
    • ACCOUNTの値に基づいて、アイデンティティのみがOracle Access Governanceに作成されます。
    • TARGETACCOUNTは無視できます。
  2. 選択したモードは「管理対象システム」のみです:
    • ACCOUNTおよびTARGETACCOUNTは、スキーマJSONで生成されます。
    • TARGETACCOUNTの値に基づいて、アカウントのみがOracle Access Governanceに作成されます。
    • ACCOUNTは無視できます。
  3. 選択したモードは、「認可ソース」および「管理対象サーバー」です。
    • ACCOUNTおよびTARGETACCOUNTは、スキーマJSONで生成されます。
    • アイデンティティは、ACCOUNTの値に基づいてOracle Access Governanceで作成されます。
    • アカウントは、TARGETACCOUNTの値に基づいてOracle Access Governanceで作成されます。
ノート

データベース表に直接付与され、その後Oracle Access Governanceにロードされる権限は、編成されたシステムが管理対象システム・モードで構成されている場合、Oracle Access Governanceで管理できません。Oracle Access Governanceで管理できるのは、Oracle Access Governanceからのプロビジョニング・リクエストで発生した権限のみです。

コア・アイデンティティ属性

認可ソース・モードでデータベース・アプリケーション表を実行すると、統合データベースからOracle Access Governanceにユーザー・データをオンボーディングできます。このガバナンス・アイデンティティは、Oracle Access Governanceアイデンティティの作成に使用されます。

Oracle Access Governance Identityに割り当てることができるコア属性のリストを次に示します。要素"nature": ["REQUIRED"]は、ソース・データベースで属性がNOT NULLである必要があることを示します。これは、属性をスキーマ検出に含める必要があることを意味するものではなく、統合するスキーマに属性を含める場合と含めない場合があります。
[
  {
    "name": "uid",
    "dataType": "TEXT",
    "nature": [
      "REQUIRED"
    ],
    "usage": [
      "READ"
    ]
  },
  {
    "name": "name",
    "dataType": "TEXT",
    "nature": [
      "REQUIRED"
    ],
    "usage": [
      "READ"
    ]
  },
  {
    "name": "email",
    "dataType": "TEXT",
    "nature": [
      "REQUIRED"
    ],
    "usage": [
      "READ"
    ]
  },
  {
    "name": "firstName",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "middleName",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "lastName",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "displayName",
    "dataType": "TEXT",
    "nature": [
      "REQUIRED"
    ],
    "usage": [
      "READ"
    ]
  },
  {
    "name": "employeeType",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "title",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "empNo",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "status",
    "dataType": "FLAG",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "jobCode",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "state",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "risk",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "location",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "department",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "managerUid",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "managerLogin",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "organizationUid",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "organizationName",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "country",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "postalCode",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "territory",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  }
]

ユーザー・ステータス

認可ソース・モードでデータベース・アプリケーション表を実行すると、統合データベースからOracle Access Governanceにユーザー・データをオンボーディングできます。このガバナンス・アイデンティティは、Oracle Access Governanceアイデンティティの作成に使用されます。

オーケストレート済システムを構成すると、ユーザー・レコードのステータスを保持するデータベース列の入力を求められます。この列は、Oracle Access Governanceでユーザーが有効か無効かを示します。この情報は、構成済モード(認可ソースまたは管理対象システム)に関係なく、フル・データ・ロード時に常に取得されます。

有効/無効ステータスに対して次のブール値も構成します。
  • ユーザー・アカウント使用可能ステータス値: この値はデフォルトでACTIVEに設定されるか、Oracle Access Governanceで有効のステータスにマップされるデータベースの任意のテキスト値として定義できます。例として、YYestrueなどがあります。
  • ユーザー・アカウント無効ステータス値: この値はデフォルトでINACTIVEに設定されるか、Oracle Access Governanceで無効のステータスにマップされるデータベースの任意のテキスト値として定義できます。例として、NNofalseなどがあります。
データベース値からOracle Access Governance有効/無効ステータスへのマッピングでは、次のロジックが使用されます。
  • ユーザーのステータスが「ユーザー・アカウント無効ステータス値」の値と等しい場合、ユーザーはOracle Access Governanceで無効としてマークされます。
  • ユーザーに他の値がある場合は、ユーザーが有効になっており、Oracle Access Governanceでそのようにマークされていると想定されます。

中間スキーマJSONファイルの更新

中間スキーマのJSONファイルを更新して、Oracle Access Governanceスキーマに属性を含めることができます。

Oracle Access Governanceスキーマ属性を含めるか除外するには、ACCOUNTエンティティの例を示す次のエンティティの例を検討します。

    "type" : "ACCOUNT",
    "name" : "ACCOUNT",
    "displayName" : "Account",
    "attributes" : [ {
      "name" : "joiningDate",
      "targetName" : "JOININGDATE",
      "displayName" : "",
      "dataType" : "DATE",
      "nature" : [ ],
      "usage" : [ "READ" ]
    }, {
      "name" : "",
      "targetName" : "LASTUPDATED",
      "displayName" : "",
      "dataType" : "DATE",
      "nature" : [ ],
      "usage" : [ "READ" ]
    }, {
      "name" : "firstName",
      "targetName" : "FIRSTNAME",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ ],
      "usage" : [ "READ" ]
    }, {
      "name" : "email",
      "targetName" : "EMAIL",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ "REQUIRED" ],
      "usage" : [ "READ" ]
    }, {
      "name" : "name",
      "targetName" : "__NAME__",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ "REQUIRED" ],
      "usage" : [ "READ" ]
    }, {
      "name" : "uid",
      "targetName" : "__UID__",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ "REQUIRED" ],
      "usage" : [ "READ" ]
    }, {
      "name" : "status",
      "targetName" : "__ENABLE__",
      "displayName" : "",
      "dataType" : "FLAG",
      "nature" : [ ],
      "usage" : [ "READ" ]
    }, {
      "name" : "salary",
      "targetName" : "SALARY",
      "displayName" : "",
      "dataType" : "DECIMAL_NUMBER",
      "nature" : [ ],
      "usage" : [ "READ" ]
    }, {
      "name" : "password",
      "targetName" : "__PASSWORD__",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ "SENSITIVE" ],
      "usage" : [ ]
    }, {
      "name" : "country",
      "targetName" : "COUNTRYCODE",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ ],
      "usage" : [ "READ" ],
      "relationship" : {
        "relatedTo" : "A_COUNTRY",
        "relatedBy" : "COUNTRYCODE"
      }
    }, {
      "name" : "",
      "targetName" : "DESCRIPTION",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ ],
      "usage" : [ "READ" ]
    }, {
      "name" : "lastName",
      "targetName" : "LASTNAME",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ ],
      "usage" : [ "READ" ]
    } ]
  }, {

スキーマへの属性の組込み

例に示されている属性のnameおよびtargetNameパラメータに注意してください。いずれの場合も、targetNameパラメータが移入されていることがわかります。これは、このパラメータが、統合するユーザー情報を含むOracleデータベースの列名にマップされるためです。したがって、たとえば、FIRSTNAMELASTNAMEDESCRIPTIONなどです。ただし、nameパラメータは常に移入されるとはかぎりません。これは、nameパラメータがOracle Access Governance側のスキーマの属性と相関しているためです。nameが移入されている場合、そのパラメータはOracle Access Governanceスキーマに含まれます。次に例を示します。
"name" : "firstName",
"targetName" : "FIRSTNAME",
nameが移入されていない場合、そのパラメータはOracle Access Governanceスキーマに含まれません。前述の例では、パラメータDESCRIPTIONは含まれていません。
"name" : "",
"targetName" : "DESCRIPTION",

参照表を含む

スキーマにルックアップ表を含めるには、スキーマJSONファイルにnameパラメータを設定して、前述と同じ方法を使用します。nameパラメータを設定すると、すべての参照データが含まれ、関連するOracle Access Governance属性にマップされます。また、参照表を含めると、新しいアクセス・バンドルの作成時に値が値リストに表示されます。

    "type" : "LOOKUP",
    "name" : "COUNTRY",
    "displayName" : "Country",
    "attributes" : [ {
      "name" : "uid",
      "targetName" : "__UID__",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ "REQUIRED" ],
      "usage" : [ "READ" ]
    }, {
      "name" : "name",
      "targetName" : "__NAME__",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ "REQUIRED" ],
      "usage" : [ "READ" ]
    } ]
  }
さらに、参照からの値を保持するフィールドをメインのACCOUNT表に作成する必要があります。この例では、この値を保持するaccount.homeCountryのような属性があります。この属性には、ACCOUNT表との外部キー関係が必要です。次に例を示します。
    "type" : "ACCOUNT",
    "name" : "ACCOUNT",
    "displayName" : "Account",
    "attributes" : ...
{
      "name" : "country",
      "targetName" : "COUNTRYCODE",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ ],
      "usage" : [ "READ" ],
      "relationship" : {
        "relatedTo" : "COUNTRY",
        "relatedBy" : "COUNTRYCODE"
      }

コアおよびカスタム属性へのマッピング

パラメータをコア属性にマップするか、カスタム属性にマップするかを決定できます。nameでコア属性名を使用すると、対応するtargetName値がコア属性にマップされます。nameがコア属性の名前でない場合、targetName値はカスタム属性にマップされます。たとえば、次の例では、データベース列FIRSTNAMEをコア属性firstNameにマップします。
{
      "name" : "firstName",
      "targetName" : "FIRSTNAME",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ ],
      "usage" : [ "READ" ]
    }
次に、FIRSTNAMEforeNameというカスタム属性にマップします。
{
      "name" : "foreName",
      "targetName" : "FIRSTNAME",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ ],
      "usage" : [ "READ" ]
    }
.