新規エージェントおよびポリシーを作成する
post
/oaa-policy/aggregation/v1/
指定されたアクションで新しいエージェント、保証レベルおよびポリシーを作成します。
リクエスト
問合せパラメータ
- detailresponse: boolean
フラグがtrueの場合は、このリクエストに対して存在するすべてのアーティファクト(エージェント、保証レベル、ポリシー、ルールなど)が返されます。
サポートされるメディア・タイプ
- application/xml
- application/json
ルート・スキーマ : schema
型:
objectエージェント、保証レベル、ポリシー、デフォルト・ルールなど、ポリシーに関連するすべてのアーティファクトを作成するリクエスト。
ソースの表示
-
actions(required): array actions
保証レベルのあるポリシーが実行されたときに返されるアクションのリスト。
-
agentid(required): string
既存のエージェントの一意のエージェントID。
-
agentname: string
agentidがない場合のエージェントの名前は、この名前で新しいエージェントを作成するために使用されます。
-
assuranceLevelId: string
保証レベルのID。存在しない場合は、システムによって生成されます。
-
type: string
クライアントのタイプ。api、oam、radiusのいずれかの値を指定できます。
ルート・スキーマ : schema
型:
objectエージェント、保証レベル、ポリシー、デフォルト・ルールなど、ポリシーに関連するすべてのアーティファクトを作成するリクエスト。
ソースの表示
-
actions(required): array actions
保証レベルのあるポリシーが実行されたときに返されるアクションのリスト。
-
agentid(required): string
既存のエージェントの一意のエージェントID。
-
agentname: string
agentidがない場合のエージェントの名前は、この名前で新しいエージェントを作成するために使用されます。
-
assuranceLevelId: string
保証レベルのID。存在しない場合は、システムによって生成されます。
-
type: string
クライアントのタイプ。api、oam、radiusのいずれかの値を指定できます。
レスポンス
サポートされるメディア・タイプ
- application/xml
- application/json
201レスポンス
エージェントとすべての保証レベルおよびポリシーが作成されます。
ルート・スキーマ: AggregationResponse
型:
objectポリシーの作成されたすべてのアーティファクト(エージェント、保証レベル、ポリシーおよびデフォルト・ルールを含む)がここに表示されます。
ソースの表示
-
agent: object schema
エージェントの詳細
-
assuranceLevel: object AssuranceLevel
単一の保証レベルの詳細。
-
group: object Group
新しいグループ構造を定義します
-
policy: object Policy
ポリシーを作成、変更およびフェッチするためのポリシー・オブジェクト。
-
rule: object Rule
システム内のポリシー・ルールを定義します
ネストされたスキーマ: schema
型:
objectエージェントの詳細
ソースの表示
-
agentgid: string
エージェントの一意の識別子。
-
agentName(required): string
エージェントの一意の名前
-
clientId: string
エージェントの識別に使用されるエージェントのクライアントID
-
clientSecret: string
クライアントの認証に使用されるクライアント・シークレット
-
clientType(required): string
クライアント・タイプ。このフィールドで使用可能な値はOAM、RadiusまたはAPIです。
-
createTime: string (date-time)
"rfc3339セクション5.6の形式の日時文字列。https://tools.ietf.org/html/rfc3339#section-5.6"
-
description: string
エージェントの説明
-
privateKey: string
リクエスト・パラメータを暗号化/復号化するために使用できるエージェントの秘密キーの文字列表現。
-
privateKeyFile: string
秘密キーのファイル名。
-
privateKeyPassword: string
秘密キーのBase64でエンコードされたパスワード。
-
updateTime: string (date-time)
"rfc3339セクション5.6の形式の日時文字列。https://tools.ietf.org/html/rfc3339#section-5.6"
ネストされたスキーマ: AssuranceLevel
型:
object単一の保証レベルの詳細。
ソースの表示
-
agentid(required): string
保証レベルが属するエージェント識別子
-
description(required): string
保証レベルの説明
-
id: string
保証レベル識別子
-
name(required): string
保証レベルの名前
ネストされたスキーマ: Group
型:
object新しいグループ構造を定義します
ソースの表示
-
agentid: string
グループを所有するエージェントの識別子。
-
description: string
グループの説明。
-
groupid(required): string
グループの一意の識別子。
-
groupname(required): string
システム内のグループの一意の名前。
-
grouptype(required): string
グループのタイプ。ユーザーID、汎用文字列、アクション、IP範囲、IPのいずれかです
-
values: array values
グループ内の要素の値。値はグループのタイプによって異なります。
ネストされたスキーマ: Policy
型:
objectポリシーを作成、変更およびフェッチするためのポリシー・オブジェクト。
ソースの表示
-
agentgid(required): string
ポリシーが属するエージェントの識別子
-
assuranceLevelId(required): string
ポリシーに関連付けられた保証レベルの識別子
-
description(required): string
ポリシーの説明。
-
name(required): string
ポリシー名。
-
policygid: string
ポリシーの識別子
-
scoringEngine: string
ポリシーのスコアリングに使用されるエンジン(集計済、平均、最大、最小、加重平均、加重最大、加重最小)
-
status(required): string
ポリシーのステータス。次のいずれかの値です。Active、DisabledまたはDeleted。
-
weight: integer
保証レベルに複数のポリシーがある場合、ポリシーの重みを定義する0から100までの数値。
ネストされたスキーマ: Rule
型:
objectシステム内のポリシー・ルールを定義します
ソースの表示
-
conditionMap: array conditionMap
UIルールを再構築するためのキー値のペアのマップ。OAAルールの必須要素は、entityRefId、操作、値(文字列の配列)、式、モード、isgroupです。
-
conditions: array conditions
ルールの実行時に評価される条件の配列。ルールに関連付けられたアクションを返すには、すべての条件がtrueである必要があります。
-
name(required): string
ルールの名前。
-
note: string
ルールのノート(ある場合)
-
policygid(required): string
ポリシーのグローバルID。ルール定義がポリシー定義結果の一部である場合、ポリシーIDは必須ではない可能性があります
-
results(required): object RuleAction
ルールがtrueと評価されたときに返されるアクション。
-
rulegid: string
ルールのグローバル一意識別子。
-
status: string
アクティブまたは無効
-
transactiongid: string
ルール評価に使用されるトランザクションの一意IDであり、フィルタ条件を使用してチェックされます
ネストされたスキーマ: items
型:
objectネストされたスキーマ: conditionMap
型:
arrayUIルールを再構築するためのキー値のペアのマップ。OAAルールの必須要素は、entityRefId、操作、値(文字列の配列)、式、モード、isgroupです。
ソースの表示
- Array of: object ConditionMap
ルールの再構築に使用されるキー/値のペアのマップ、またはルールに必要な追加パラメータをマップで渡すことができます
ネストされたスキーマ: conditions
型:
arrayルールの実行時に評価される条件の配列。ルールに関連付けられたアクションを返すには、すべての条件がtrueである必要があります。
ソースの表示
- Array of: object Condition
評価する条件。パラメータを指定しない場合、すべての条件がデフォルト値で評価されます。
ネストされたスキーマ: RuleAction
型:
objectルールがtrueと評価されたときに返されるアクション。
ソースの表示
-
action: string
アクション・グループ名
-
alert: string
アラート・グループ名
-
score: integer
ルールによって返されるスコア
-
weight: integer
コンテキストに複数のルールがある場合のスコアの重み。
ネストされたスキーマ: ConditionMap
型:
objectルールの再構築に使用されるキー/値のペアのマップ、またはルールに必要な追加パラメータをマップで渡すことができます
ソースの表示
-
key: string
-
value: object value
値は、jsonオブジェクトまたは単純な文字列になります。
ネストされたスキーマ: value
型:
object値は、jsonオブジェクトまたは単純な文字列になります。
ネストされたスキーマ: Condition
型:
object評価する条件。パラメータを指定しない場合、すべての条件がデフォルト値で評価されます。
ソースの表示
-
conditionId: string
ルール内の条件の更新に使用できる条件のグローバル識別子。
-
conditionKey(required): string
条件の一意キー。同じタイプの複数の条件に対して繰り返すことができます。
-
parameters: array parameters
すべてのオーバーライド・パラメータのリスト。
-
remove: boolean
ルールから条件を削除します。これはオプションです。
ネストされたスキーマ: parameters
型:
arrayすべてのオーバーライド・パラメータのリスト。
ソースの表示
- Array of: object ConditionParameter
条件の評価時に必要な条件のパラメータ。
ネストされたスキーマ: ConditionParameter
型:
object条件の評価時に必要な条件のパラメータ。
ソースの表示
-
operations: string
キーに対して実行された操作。操作は必要でない可能性があります
-
paramname: string
操作に使用するキー
-
scope: string
フィルタ条件。ValueまたはCurrentのいずれか。スコープは必要ありません。
-
value: string
スコープに基づいて照合される値。
401レスポンス
未認可
405レスポンス
無効な入力
ルート・スキーマ: AggregationResponse
型:
objectポリシーの作成されたすべてのアーティファクト(エージェント、保証レベル、ポリシーおよびデフォルト・ルールを含む)がここに表示されます。
ソースの表示
-
agent: object schema
エージェントの詳細
-
assuranceLevel: object AssuranceLevel
単一の保証レベルの詳細。
-
group: object Group
新しいグループ構造を定義します
-
policy: object Policy
ポリシーを作成、変更およびフェッチするためのポリシー・オブジェクト。
-
rule: object Rule
システム内のポリシー・ルールを定義します
ネストされたスキーマ: schema
型:
objectエージェントの詳細
ソースの表示
-
agentgid: string
エージェントの一意の識別子。
-
agentName(required): string
エージェントの一意の名前
-
clientId: string
エージェントの識別に使用されるエージェントのクライアントID
-
clientSecret: string
クライアントの認証に使用されるクライアント・シークレット
-
clientType(required): string
クライアント・タイプ。このフィールドで使用可能な値はOAM、RadiusまたはAPIです。
-
createTime: string (date-time)
"rfc3339セクション5.6の形式の日時文字列。https://tools.ietf.org/html/rfc3339#section-5.6"
-
description: string
エージェントの説明
-
privateKey: string
リクエスト・パラメータを暗号化/復号化するために使用できるエージェントの秘密キーの文字列表現。
-
privateKeyFile: string
秘密キーのファイル名。
-
privateKeyPassword: string
秘密キーのBase64でエンコードされたパスワード。
-
updateTime: string (date-time)
"rfc3339セクション5.6の形式の日時文字列。https://tools.ietf.org/html/rfc3339#section-5.6"
ネストされたスキーマ: AssuranceLevel
型:
object単一の保証レベルの詳細。
ソースの表示
-
agentid(required): string
保証レベルが属するエージェント識別子
-
description(required): string
保証レベルの説明
-
id: string
保証レベル識別子
-
name(required): string
保証レベルの名前
ネストされたスキーマ: Group
型:
object新しいグループ構造を定義します
ソースの表示
-
agentid: string
グループを所有するエージェントの識別子。
-
description: string
グループの説明。
-
groupid(required): string
グループの一意の識別子。
-
groupname(required): string
システム内のグループの一意の名前。
-
grouptype(required): string
グループのタイプ。ユーザーID、汎用文字列、アクション、IP範囲、IPのいずれかです
-
values: array values
グループ内の要素の値。値はグループのタイプによって異なります。
ネストされたスキーマ: Policy
型:
objectポリシーを作成、変更およびフェッチするためのポリシー・オブジェクト。
ソースの表示
-
agentgid(required): string
ポリシーが属するエージェントの識別子
-
assuranceLevelId(required): string
ポリシーに関連付けられた保証レベルの識別子
-
description(required): string
ポリシーの説明。
-
name(required): string
ポリシー名。
-
policygid: string
ポリシーの識別子
-
scoringEngine: string
ポリシーのスコアリングに使用されるエンジン(集計済、平均、最大、最小、加重平均、加重最大、加重最小)
-
status(required): string
ポリシーのステータス。次のいずれかの値です。Active、DisabledまたはDeleted。
-
weight: integer
保証レベルに複数のポリシーがある場合、ポリシーの重みを定義する0から100までの数値。
ネストされたスキーマ: Rule
型:
objectシステム内のポリシー・ルールを定義します
ソースの表示
-
conditionMap: array conditionMap
UIルールを再構築するためのキー値のペアのマップ。OAAルールの必須要素は、entityRefId、操作、値(文字列の配列)、式、モード、isgroupです。
-
conditions: array conditions
ルールの実行時に評価される条件の配列。ルールに関連付けられたアクションを返すには、すべての条件がtrueである必要があります。
-
name(required): string
ルールの名前。
-
note: string
ルールのノート(ある場合)
-
policygid(required): string
ポリシーのグローバルID。ルール定義がポリシー定義結果の一部である場合、ポリシーIDは必須ではない可能性があります
-
results(required): object RuleAction
ルールがtrueと評価されたときに返されるアクション。
-
rulegid: string
ルールのグローバル一意識別子。
-
status: string
アクティブまたは無効
-
transactiongid: string
ルール評価に使用されるトランザクションの一意IDであり、フィルタ条件を使用してチェックされます
ネストされたスキーマ: items
型:
objectネストされたスキーマ: conditionMap
型:
arrayUIルールを再構築するためのキー値のペアのマップ。OAAルールの必須要素は、entityRefId、操作、値(文字列の配列)、式、モード、isgroupです。
ソースの表示
- 配列: object ConditionMap
ルールの再構築に使用されるキー/値のペアのマップ、またはルールに必要な追加パラメータをマップで渡すことができます
ネストされたスキーマ: conditions
型:
arrayルールの実行時に評価される条件の配列。ルールに関連付けられたアクションを返すには、すべての条件がtrueである必要があります。
ソースの表示
- 配列: object Condition
評価する条件。パラメータを指定しない場合、すべての条件がデフォルト値で評価されます。
ネストされたスキーマ: RuleAction
型:
objectルールがtrueと評価されたときに返されるアクション。
ソースの表示
-
action: string
アクション・グループ名
-
alert: string
アラート・グループ名
-
score: integer
ルールによって返されるスコア
-
weight: integer
コンテキストに複数のルールがある場合のスコアの重み。
ネストされたスキーマ: ConditionMap
型:
objectルールの再構築に使用されるキー/値のペアのマップ、またはルールに必要な追加パラメータをマップで渡すことができます
ソースの表示
-
key: string
-
value: object value
値は、jsonオブジェクトまたは単純な文字列になります。
ネストされたスキーマ: value
型:
object値は、jsonオブジェクトまたは単純な文字列になります。
ネストされたスキーマ: Condition
型:
object評価する条件。パラメータを指定しない場合、すべての条件がデフォルト値で評価されます。
ソースの表示
-
conditionId: string
ルール内の条件の更新に使用できる条件のグローバル識別子。
-
conditionKey(required): string
条件の一意キー。同じタイプの複数の条件に対して繰り返すことができます。
-
parameters: array parameters
すべてのオーバーライド・パラメータのリスト。
-
remove: boolean
ルールから条件を削除します。これはオプションです。
ネストされたスキーマ: parameters
型:
arrayすべてのオーバーライド・パラメータのリスト。
ソースの表示
- 配列: object ConditionParameter
条件の評価時に必要な条件のパラメータ。
ネストされたスキーマ: ConditionParameter
型:
object条件の評価時に必要な条件のパラメータ。
ソースの表示
-
operations: string
キーに対して実行された操作。操作は必要でない可能性があります
-
paramname: string
操作に使用するキー
-
scope: string
フィルタ条件。ValueまたはCurrentのいずれか。スコープは必要ありません。
-
value: string
スコープに基づいて照合される値。
500レスポンス
内部サーバー・エラー
503レスポンス
サービス使用不可
例
次の例は、新規ポリシーおよびエージェントを作成するサンプルのリクエストとレスポンスを示します。
JSON形式でポリシーおよびエージェントを作成するcURLコマンド
curl --location --request POST '<PolicyUrl>/oaa-policy/aggregation/v1?detailresponse=true' \
--header 'Authorization: Basic <Base64Encoded(<username>:<password>)>' \
--header 'Content-Type: application/json' \
--data '{
"agentname" : "AggregationAPIAgent",
"assuranceLevelId" : "AggregationAgentAssuranceLevel",
"type" : "API",
"actions" : ["ChallengeEmail" , "ChallengeSMS" , "ChallengeOMATOTP", "ChallengeYubicoOTP", "ChallengeFIDO2"]
}'JSON形式のサンプル・レスポンス
{
"agent": {
"agentName": "AggregationAPIAgent",
"clientId": "da3b521d-5ec2-4956-a412-046df1c8c9ea",
"clientSecret": "8cce2702-824b-4377-b1a3-99419cfcec7f",
"clientType": "api",
"agentgid": "0463b32d-70a1-4ca8-81e1-58f1a8728690",
"createTime": {
"parseFailed": false,
"dateTime": "2021-04-01T01:49:20.470Z",
"rawParam": "2021-04-01T01:49:20.470Z"
},
"updateTime": {
"parseFailed": false,
"dateTime": "2021-04-01T01:49:20.471Z",
"rawParam": "2021-04-01T01:49:20.471Z"
}
},
"assuranceLevel": {
"id": "AggregationAgentAssuranceLevel",
"name": "AggregationAgentAssuranceLevel",
"description": "Created by Aggregation API for agentAggregationAPIAgent",
"agentid": "0463b32d-70a1-4ca8-81e1-58f1a8728690"
},
"policy": {
"agentgid": "0463b32d-70a1-4ca8-81e1-58f1a8728690",
"assuranceLevelId": "AggregationAgentAssuranceLevel",
"name": "AggregationAPIAgent68d3f589",
"description": "Created by Aggregation API for agentAggregationAPIAgent",
"status": "ACTIVE",
"scoringEngine": "Weighted Average",
"weight": 100,
"policygid": "174_128fe9d6967edf9c90283c84e002d18d211cbe082bf168b1376e3e07e4512dcd"
},
"rule": {
"name": "AggregationAPIAgent68d3f589",
"rulegid": "178_663c4a4fbb4c6ef1bd9c9563c259de2de7baad626921de3255a8b633e32fc1be",
"policygid": "174_128fe9d6967edf9c90283c84e002d18d211cbe082bf168b1376e3e07e4512dcd",
"status": "ACTIVE",
"note": "Created by Aggregation API for agentAggregationAPIAgent",
"conditions": [
{
"conditionKey": "always_on_user.condition0",
"conditionId": "177_192b8bdc19927812d85ec01c71664b670290596c9d171eeaa82e46a63ffb5688",
"parameters": [
{
"paramname": "isTrue",
"value": "true"
}
]
}
],
"results": {
"action": "173_db05090771e58ef53d0549c7014a090613b96b6f5a90f2347abe59d1fdc9a292",
"score": 1000,
"weight": 100
}
},
"group": {
"groupid": "173_db05090771e58ef53d0549c7014a090613b96b6f5a90f2347abe59d1fdc9a292",
"agentid": "0463b32d-70a1-4ca8-81e1-58f1a8728690",
"grouptype": "Actions",
"groupname": "AggregationAPIAgent68d3f589",
"description": "Created by Aggregation API for agentAggregationAPIAgent",
"values": [
"ChallengeEmail",
"ChallengeSMS",
"ChallengeOMATOTP",
"ChallengeYubicoOTP",
"ChallengeFIDO2"
]
}
}XML形式でポリシーおよびエージェントを作成するcURLコマンド
curl --location --request POST '<PolicyUrl>/oaa-policy/aggregation/v1?detailresponse=true' \
--header 'Authorization: Basic <Base64Encoded(<username>:<password>)>' \
--header 'Content-Type: application/json' \
--data '<?xml version="1.0" encoding="UTF-8" ?>
<AggregationRequest>
<agentname>AggregationAPIAgent</agentname>
<assuranceLevelId>AggregationAgentAssuranceLevel</assuranceLevelId>
<type>API</type>
<actions>ChallengeEmail</actions>
<actions>ChallengeSMS</actions>
<actions>ChallengeOMATOTP</actions>
<actions>ChallengeYubicoOTP</actions>
<actions>ChallengeFIDO2</actions>
</AggregationRequest>'XML形式のサンプル・レスポンス
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AggregationResponse>
<agent>
<agentName>AggregationAPIAgent</agentName>
<clientId>da3b521d-5ec2-4956-a412-046df1c8c9ea</clientId>
<clientSecret>8cce2702-824b-4377-b1a3-99419cfcec7f</clientSecret>
<clientType>api</clientType>
<agentgid>0463b32d-70a1-4ca8-81e1-58f1a8728690</agentgid>
<createTime>
<parseFailed>false</parseFailed>
<dateTime>2021-04-01T01:49:20.470Z</dateTime>
<rawParam>2021-04-01T01:49:20.470Z</rawParam>
</createTime>
<updateTime>
<parseFailed>false</parseFailed>
<dateTime>2021-04-01T01:49:20.471Z</dateTime>
<rawParam>2021-04-01T01:49:20.471Z</rawParam>
</updateTime>
</agent>
<assuranceLevel>
<id>AggregationAgentAssuranceLevel</id>
<name>AggregationAgentAssuranceLevel</name>
<description>Created by Aggregation API for agentAggregationAPIAgent</description>
<agentid>0463b32d-70a1-4ca8-81e1-58f1a8728690</agentid>
</assuranceLevel>
<policy>
<agentgid>0463b32d-70a1-4ca8-81e1-58f1a8728690</agentgid>
<assuranceLevelId>AggregationAgentAssuranceLevel</assuranceLevelId>
<name>AggregationAPIAgent68d3f589</name>
<description>Created by Aggregation API for agentAggregationAPIAgent</description>
<status>ACTIVE</status>
<scoringEngine>Weighted Average</scoringEngine>
<weight>100</weight>
<policygid>174_128fe9d6967edf9c90283c84e002d18d211cbe082bf168b1376e3e07e4512dcd</policygid>
</policy>
<rule>
<name>AggregationAPIAgent68d3f589</name>
<rulegid>178_663c4a4fbb4c6ef1bd9c9563c259de2de7baad626921de3255a8b633e32fc1be</rulegid>
<policygid>174_128fe9d6967edf9c90283c84e002d18d211cbe082bf168b1376e3e07e4512dcd</policygid>
<status>ACTIVE</status>
<note>Created by Aggregation API for agentAggregationAPIAgent</note>
<conditions>
<conditionKey>always_on_user.condition0</conditionKey>
<conditionId>177_192b8bdc19927812d85ec01c71664b670290596c9d171eeaa82e46a63ffb5688</conditionId>
<parameters>
<paramname>isTrue</paramname>
<value>true</value>
</parameters>
</conditions>
<results>
<action>173_db05090771e58ef53d0549c7014a090613b96b6f5a90f2347abe59d1fdc9a292</action>
<score>1000</score>
<weight>100</weight>
</results>
</rule>
<group>
<groupid>173_db05090771e58ef53d0549c7014a090613b96b6f5a90f2347abe59d1fdc9a292</groupid>
<agentid>0463b32d-70a1-4ca8-81e1-58f1a8728690</agentid>
<grouptype>Actions</grouptype>
<groupname>AggregationAPIAgent68d3f589</groupname>
<description>Created by Aggregation API for agentAggregationAPIAgent</description>
<values>ChallengeEmail</values>
<values>ChallengeSMS</values>
<values>ChallengeOMATOTP</values>
<values>ChallengeYubicoOTP</values>
<values>ChallengeFIDO2</values>
</group>
</AggregationResponse>