Création d'une application d'entreprise avec une politique d'autorisation
Ces cas d'utilisation fournissent des exemples de demande de création d'une application d'entreprise avec une politique d'autorisation à l'aide de l'API REST des domaines d'identité.
Les cas d'utilisation suivants vous guident tout au long des étapes pour créer une application d'entreprise avec une politique d'autorisation à l'aide des API REST :
- Créer une application d'entreprise
- Créer une ressource d'application
- Mettre à jour la référence d'ID ressource d'application dans une application d'entreprise
- Ajouter une politique de niveau Web à une application d'entreprise
- Création d'une application d'entreprise avec une politique d'autorisation
- Créer une politique de refus d'autorisation
Créer une application d'entreprise
L'exemple suivant montre comment créer une application d'entreprise en soumettant une demande POST sur la ressource REST à l'aide de cURL. Pour plus d'informations sur cURL, voir Utiliser cURL.
Commande cURL
La commande de cet exemple utilise la structure d'URL
https://<domainURL>/resource-path
, où <domainURL>
représente l'URL du service d'identité et le chemin de ressource représente l'API du service d'identité. Voir Envoyer des demandes pour la structure d'URL appropriée à utiliser. curl
-X POST
-H "Content-Type:application/scim+json"
-H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Apps
L'ID modèle doit être mappé au modèle d'application Enterprise.
Exemple de corps d'une demande
Voici un exemple de corps de demande au format JSON :
{
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:App",
"urn:ietf:params:scim:schemas:oracle:idcs:extension:samlServiceProvider:App",
"urn:ietf:params:scim:schemas:oracle:idcs:extension:requestable:App",
"urn:ietf:params:scim:schemas:oracle:idcs:extension:managedapp:App"
],
"displayName": "Enterprise App",
"description": "Enterprise Application",
"landingPageURL": "http://google.com",
"basedOnTemplate": {
"value": "CustomEnterpriseAppTemplateId"
},
"isSamlServiceProvider": false,
"isOAuthResource": false,
"isOAuthClient": false,
"showInMyApps": false,
"isWebTierPolicy": false,
"isEnterpriseApp": true,
"urn:ietf:params:scim:schemas:oracle:idcs:extension:requestable:App": {
"requestable": false
}
}
Exemple de corps de réponse
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"isAliasApp": false,
"meta": {
"created": "2022-01-07T17:30:36.385Z",
"lastModified": "2022-01-07T17:30:36.385Z",
"resourceType": "App",
"location": "https://<domainURL>/admin/v1/Apps/69130ad799814b3a82d2cd3b19aba7ce"
},
"active": false,
"isLoginTarget": false,
"idcsCreatedBy": {
"display": "admin opc",
"type": "User",
"value": "64c266200ba04b1bb1591482f8fd204f",
"$ref": "https://<domainURL>/admin/v1/Users/64c266200ba04b1bb1591482f8fd204f"
},
"displayName": "Enterprise App",
"showInMyApps": false,
"isMobileTarget": false,
"allowOffline": false,
"isUnmanagedApp": false,
"idcsLastModifiedBy": {
"display": "admin opc",
"type": "User",
"value": "64c266200ba04b1bb1591482f8fd204f",
"$ref": "https://<domainURL>/admin/v1/Users/64c266200ba04b1bb1591482f8fd204f"
},
"isOPCService": false,
"description": "Enterprise Application",
"isOAuthClient": false,
"isManagedApp": true,
"isEnterpriseApp": true,
"isSamlServiceProvider": false,
"infrastructure": false,
"allUrlSchemesAllowed": false,
"id": "69130ad799814b3a82d2cd3b19aba7ce",
"landingPageUrl": "http://google.com",
"isWebTierPolicy": false,
"loginMechanism": "OIDC",
"allowAccessControl": false,
"isOAuthResource": false,
"migrated": false,
"isKerberosRealm": false,
"urn:ietf:params:scim:schemas:oracle:idcs:extension:managedapp:App": {
"flatFileBundleConfigurationProperties": [
{
"required": true,
"helpMessage": "Enter the character that specifies the boundary between separate, independent fields in the flat file.",
"confidential": false,
"displayName": "Field Delimiter",
"name": "fieldDelimiter",
"icfType": "String",
"value": [
","
]
},
{
"required": false,
"helpMessage": "Enter the character that specifies the boundary between sub-fields in the flat file. As an example, if Address is a field, then Street Address, City, State, and Zip Code can be designated as sub-fields of the Address field.",
"confidential": false,
"displayName": "Sub-Field Delimiter",
"name": "subFieldDelimiter",
"icfType": "String"
},
{
"required": true,
"helpMessage": "Enter the attribute name that represents the unique identifier (UID) for each record in the flat file.",
"confidential": false,
"displayName": "UID",
"name": "uidAttribute",
"icfType": "String",
"value": [
"ID"
]
},
{
"required": true,
"helpMessage": "Enter the attribute name that represents the user-friendly name for each record in the flat file.",
"confidential": false,
"displayName": "Name",
"name": "nameAttribute",
"icfType": "String",
"value": [
"NAME"
]
},
{
"required": false,
"helpMessage": "Enter the attribute name that represents the status for each record in the flat file.",
"confidential": false,
"displayName": "Status",
"name": "statusAttribute",
"icfType": "String",
"value": [
"ACTIVE"
]
},
{
"required": false,
"helpMessage": "Enter the value for the Status attribute that represents the Active or Enabled status for each record in the flat file.",
"confidential": false,
"displayName": "Active",
"name": "statusEnabledValue",
"icfType": "String",
"value": [
"true"
]
},
{
"required": false,
"helpMessage": "Enter the value for the Status attribute that represents the Inactive or Disabled status for each record in the flat file.",
"confidential": false,
"displayName": "Inactive",
"name": "statusDisabledValue",
"icfType": "String",
"value": [
"false"
]
},
{
"required": false,
"helpMessage": "Enter the fully qualified name (including the package name) of the post-process class. If you haven't implemented a post-process task, then skip this field.",
"confidential": false,
"displayName": "Post-Process Task Class Name",
"name": "postProcessClassName",
"icfType": "String"
},
{
"required": false,
"helpMessage": "Enter a number that represents how many records in the flat file will be processed before the progress will be logged.",
"confidential": false,
"displayName": "Progress Checkpoint",
"name": "progressCheckPoint",
"icfType": "Integer",
"value": [
"100"
]
},
{
"required": false,
"helpMessage": "Enter the fully qualified name (including the package name) of the parser class. If you haven't implemented a custom parser, then skip this field.",
"confidential": false,
"displayName": "Parser Class Name",
"name": "parserClassName",
"icfType": "String",
"value": [
"org.identityconnectors.flatfile.csv.CSVParser"
]
},
{
"required": false,
"helpMessage": "Enter the configuration parameters for your parser class in the following format: param1=value1;param2=value2 ;... and so on. If you haven't implemented a custom parser, then skip this field.",
"confidential": false,
"displayName": "Custom Configuration Parameters",
"name": "customConfigParams",
"icfType": "String"
},
{
"required": false,
"helpMessage": "Enter the fully qualified name (including the package name) of the pre-process class. If you haven't implemented a pre-process task, then skip this field.",
"confidential": false,
"displayName": "Pre-Process Task Class Name",
"name": "preProcessClassName",
"icfType": "String"
},
{
"required": true,
"helpMessage": "Select the flat file that you want to import.",
"confidential": false,
"displayName": "Flat File",
"name": "flatFile",
"icfType": "File"
},
{
"required": false,
"helpMessage": "Provide the encoding format of the flat file that you're importing. Refer to the Java API documentation for the Charset class for valid encoding formats.",
"confidential": false,
"displayName": "Encoding Format",
"name": "encoding",
"icfType": "String",
"value": [
"UTF-8"
]
},
{
"required": false,
"helpMessage": "Enter the character that represents the comment syntax for the flat file. The lines in the flat file starting with this character will be inert and will be ignored during parsing.",
"confidential": false,
"displayName": "Comment Syntax",
"name": "commentCharacter",
"icfType": "Character"
},
{
"required": false,
"helpMessage": "Enter the character that specifies the boundary between multiple values of a single field in the flat file. As an example, if Email is a field, then you can have multiple email addresses as values for that field.",
"confidential": false,
"displayName": "Multi-Value Field Delimiter",
"name": "multiValueDelimiter",
"icfType": "String"
},
{
"required": false,
"helpMessage": "Enter the character that marks special text in the flat file. Any text that starts and ends with this character won't be processed or won't be split further using delimiters.",
"confidential": false,
"displayName": "Special Text Character",
"name": "textQualifier",
"icfType": "Character"
}
],
"flatFileConnectorBundle": {
"wellKnownId": "FlatFileConnectorBundleId",
"value": "FlatFileConnectorBundleId",
"$ref": "https://<domainURL>/admin/v1/ConnectorBundles/FlatFileConnectorBundleId"
},
"isAuthoritative": false,
"accountFormVisible": false,
"isThreeLeggedOAuthEnabled": false,
"connected": false,
"bundleConfigurationProperties": [
{
"icfType": "String",
"displayName": "host",
"required": false,
"helpMessage": "host",
"confidential": false,
"name": "host"
}
],
"objectClasses": [
{
"value": "997f5dc686124e069489f2f4d111253c",
"type": "AccountObjectClass",
"isAccountObjectClass": true,
"display": "__ACCOUNT__",
"resourceType": "ManagedApp997f5dc686124e069489f2f4d111253c",
"$ref": "https://<domainURL>/admin/v1/AccountObjectClasses/997f5dc686124e069489f2f4d111253c"
}
],
"connectorBundle": {
"wellKnownId": "NoOperationConnectorBundleId",
"value": "NoOperationConnectorBundleId",
"$ref": "https://<domainURL>/admin/v1/ConnectorBundles/NoOperationConnectorBundleId"
}
},
"urn:ietf:params:scim:schemas:oracle:idcs:extension:enterpriseApp:App": {
"allowAuthzPolicy": {
"value": "5b246375d1774feb87e5c1be39b48c0f",
"$ref": "https://<domainURL>/admin/v1/Policies/5b246375d1774feb87e5c1be39b48c0f"
},
"denyAuthzPolicy": {
"value": "9ca3adcc0be7497cb1ea5395f368a505",
"$ref": "https://<domainURL>/admin/v1/Policies/9ca3adcc0be7497cb1ea5395f368a505"
}
},
"attrRenderingMetadata": [
{
"name": "aliasApps",
"visible": false
}
],
"basedOnTemplate": {
"value": "CustomEnterpriseAppTemplateId",
"wellKnownId": "CustomEnterpriseAppTemplateId",
"lastModified": "2022-01-07T10:16:49Z",
"$ref": "https://<domainURL>/admin/v1/AppTemplates/CustomEnterpriseAppTemplateId"
},
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:App",
"urn:ietf:params:scim:schemas:oracle:idcs:extension:enterpriseApp:App",
"urn:ietf:params:scim:schemas:oracle:idcs:extension:managedapp:App"
]
}
Créer une ressource d'application
L'exemple suivant montre comment créer une ressource d'application en soumettant une demande POST sur la ressource REST à l'aide de cURL. Pour plus d'informations sur cURL, voir Utiliser cURL.
Commande cURL
La commande de cet exemple utilise la structure d'URL
https://<domainURL>/resource-path
, où <domainURL>
représente l'URL du service d'identité et le chemin de ressource représente l'API du service d'identité. Voir Envoyer des demandes pour la structure d'URL appropriée à utiliser. curl
-X POST
-H "Content-Type:application/scim+json"
-H "Authorization: Bearer <Access Token Value>" https://<domainURL>/admin/v1/AppResources
Remplacez le paramètre fictif
{{appid}}
par l'ID application de la réponse de création d'application.Exemple de corps d'une demande
Voici un exemple de corps de demande au format JSON :
{
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:AppResource"
],
"name": "My Resource",
"resourceURL": "http://google.com",
"isRegex": false,
"description": "My resource url content",
"app": {
"value": "{{appid}}"
}
}
Exemple de corps de réponse
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"idcsLastModifiedBy": {
"type": "User",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"description": "My resource url content",
"idcsCreatedBy": {
"type": "User",
"display": "admin opc",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"resourceURL": "http://google.com",
"id": "64eb6207fbdd45b3807f857c69b52bc9",
"isRegex": false,
"meta": {
"created": "2022-10-21T12:12:30.130Z",
"lastModified": "2022-10-21T12:12:30.130Z",
"resourceType": "AppResource",
"location": "https://<domainURL>/admin/v1/AppResources/64eb6207fbdd45b3807f857c69b52bc9"
},
"name": "My Resource",
"app": {
"value": "23b7bf0f79854002b2db81b808e6a54b",
"display": "Enterprise App",
"$ref": "https://<domainURL>/admin/v1/Apps/23b7bf0f79854002b2db81b808e6a54b"
},
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:AppResource"
]
}
Mettre à jour la référence d'ID ressource d'application dans une application d'entreprise
L'exemple suivant montre comment mettre à jour les valeurs d'une application en soumettant une demande PATCH sur la ressource REST à l'aide de cURL. Pour plus d'informations sur cURL, voir Utiliser cURL.
Commande cURL
La commande de cet exemple utilise la structure d'URL
https://<domainURL>/resource-path
, où <domainURL>
représente l'URL du service d'identité et le chemin de ressource représente l'API du service d'identité. Voir Envoyer des demandes pour la structure d'URL appropriée à utiliser. curl -X PATCH
-H "Content-Type:application/scim+json"
-H "Authorization: Bearer <Access Token Value>" https://<domainURL>/admin/v1/Apps/<ID>
Exemple de corps d'une demande
Voici un exemple de corps de demande au format JSON :
{
"schemas":[
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations":[
{
"op":"replace",
"path":"urn:ietf:params:scim:schemas:oracle:idcs:extension:enterpriseApp:App:appResources",
"value":[
{
"value":"f3b3d95cd43049468f82b6e596747a5e"
}
]
}
]
}
Exemple de corps de réponse
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"isAliasApp":false,
"meta":{
"created":"2022-01-08T07:18:52.803Z",
"lastModified":"2022-01-08T11:13:54.645Z",
"resourceType":"App",
"location":"https://<domainURL>/admin/v1/Apps/ef246fab9d9f4e6185190af186baeb3a"
},
"active":false,
"isLoginTarget":false,
"idcsCreatedBy":{
"display":"admin opc",
"type":"User",
"value":"64c266200ba04b1bb1591482f8fd204f",
"$ref":"https://<domainURL>/admin/v1/Users/64c266200ba04b1bb1591482f8fd204f"
},
"displayName":"Enterprise App",
"showInMyApps":false,
"isMobileTarget":false,
"allowOffline":false,
"isUnmanagedApp":false,
"idcsLastModifiedBy":{
"display":"admin opc",
"type":"User",
"value":"64c266200ba04b1bb1591482f8fd204f",
"$ref":"https://<domainURL>/admin/v1/Users/64c266200ba04b1bb1591482f8fd204f"
},
"isOPCService":false,
"isOAuthClient":false,
"isManagedApp":true,
"isEnterpriseApp":true,
"isSamlServiceProvider":false,
"infrastructure":false,
"allUrlSchemesAllowed":false,
"id":"ef246fab9d9f4e6185190af186baeb3a",
"isWebTierPolicy":false,
"loginMechanism":"OIDC",
"allowAccessControl":false,
"isOAuthResource":false,
"migrated":false,
"isKerberosRealm":false,
"urn:ietf:params:scim:schemas:oracle:idcs:extension:managedapp:App":{
"connectorBundle":{
"wellKnownId":"NoOperationConnectorBundleId",
"value":"NoOperationConnectorBundleId",
"$ref":"https://<domainURL>/admin/v1/ConnectorBundles/NoOperationConnectorBundleId"
},
"flatFileBundleConfigurationProperties":[
{
"required":false,
"helpMessage":"Enter the character that specifies the boundary between sub-fields in the flat file. As an example, if Address is a field, then Street Address, City, State, and Zip Code can be designated as sub-fields of the Address field.",
"confidential":false,
"displayName":"Sub-Field Delimiter",
"name":"subFieldDelimiter",
"icfType":"String"
},
{
"required":true,
"helpMessage":"Enter the attribute name that represents the unique identifier (UID) for each record in the flat file.",
"confidential":false,
"displayName":"UID",
"name":"uidAttribute",
"icfType":"String",
"value":[
"ID"
]
},
{
"required":true,
"helpMessage":"Enter the attribute name that represents the user-friendly name for each record in the flat file.",
"confidential":false,
"displayName":"Name",
"name":"nameAttribute",
"icfType":"String",
"value":[
"NAME"
]
},
{
"required":false,
"helpMessage":"Provide the encoding format of the flat file that you're importing. Refer to the Java API documentation for the Charset class for valid encoding formats.",
"confidential":false,
"displayName":"Encoding Format",
"name":"encoding",
"icfType":"String",
"value":[
"UTF-8"
]
},
{
"required":false,
"helpMessage":"Enter the configuration parameters for your parser class in the following format: param1=value1;param2=value2 ;... and so on. If you haven't implemented a custom parser, then skip this field.",
"confidential":false,
"displayName":"Custom Configuration Parameters",
"name":"customConfigParams",
"icfType":"String"
},
{
"required":false,
"helpMessage":"Enter the fully qualified name (including the package name) of the pre-process class. If you haven't implemented a pre-process task, then skip this field.",
"confidential":false,
"displayName":"Pre-Process Task Class Name",
"name":"preProcessClassName",
"icfType":"String"
},
{
"required":true,
"helpMessage":"Select the flat file that you want to import.",
"confidential":false,
"displayName":"Flat File",
"name":"flatFile",
"icfType":"File"
},
{
"required":false,
"helpMessage":"Enter the character that represents the comment syntax for the flat file. The lines in the flat file starting with this character will be inert and will be ignored during parsing.",
"confidential":false,
"displayName":"Comment Syntax",
"name":"commentCharacter",
"icfType":"Character"
},
{
"required":false,
"helpMessage":"Enter the character that specifies the boundary between multiple values of a single field in the flat file. As an example, if Email is a field, then you can have multiple email addresses as values for that field.",
"confidential":false,
"displayName":"Multi-Value Field Delimiter",
"name":"multiValueDelimiter",
"icfType":"String"
},
{
"required":false,
"helpMessage":"Enter the character that marks special text in the flat file. Any text that starts and ends with this character won't be processed or won't be split further using delimiters.",
"confidential":false,
"displayName":"Special Text Character",
"name":"textQualifier",
"icfType":"Character"
},
{
"required":true,
"helpMessage":"Enter the character that specifies the boundary between separate, independent fields in the flat file.",
"confidential":false,
"displayName":"Field Delimiter",
"name":"fieldDelimiter",
"icfType":"String",
"value":[
","
]
},
{
"required":false,
"helpMessage":"Enter the value for the Status attribute that represents the Active or Enabled status for each record in the flat file.",
"confidential":false,
"displayName":"Active",
"name":"statusEnabledValue",
"icfType":"String",
"value":[
"true"
]
},
{
"required":false,
"helpMessage":"Enter the attribute name that represents the status for each record in the flat file.",
"confidential":false,
"displayName":"Status",
"name":"statusAttribute",
"icfType":"String",
"value":[
"ACTIVE"
]
},
{
"required":false,
"helpMessage":"Enter the value for the Status attribute that represents the Inactive or Disabled status for each record in the flat file.",
"confidential":false,
"displayName":"Inactive",
"name":"statusDisabledValue",
"icfType":"String",
"value":[
"false"
]
},
{
"required":false,
"helpMessage":"Enter the fully qualified name (including the package name) of the post-process class. If you haven't implemented a post-process task, then skip this field.",
"confidential":false,
"displayName":"Post-Process Task Class Name",
"name":"postProcessClassName",
"icfType":"String"
},
{
"required":false,
"helpMessage":"Enter a number that represents how many records in the flat file will be processed before the progress will be logged.",
"confidential":false,
"displayName":"Progress Checkpoint",
"name":"progressCheckPoint",
"icfType":"Integer",
"value":[
"100"
]
},
{
"required":false,
"helpMessage":"Enter the fully qualified name (including the package name) of the parser class. If you haven't implemented a custom parser, then skip this field.",
"confidential":false,
"displayName":"Parser Class Name",
"name":"parserClassName",
"icfType":"String",
"value":[
"org.identityconnectors.flatfile.csv.CSVParser"
]
}
],
"isAuthoritative":false,
"accountFormVisible":false,
"isThreeLeggedOAuthEnabled":false,
"connected":false,
"bundleConfigurationProperties":[
{
"icfType":"String",
"displayName":"host",
"required":false,
"helpMessage":"host",
"confidential":false,
"name":"host"
}
],
"objectClasses":[
{
"value":"05cf9ba4b2bd4ff9bb10ce134a821c33",
"type":"AccountObjectClass",
"isAccountObjectClass":true,
"display":"__ACCOUNT__",
"resourceType":"ManagedApp05cf9ba4b2bd4ff9bb10ce134a821c33",
"$ref":"https://<domainURL>/admin/v1/AccountObjectClasses/05cf9ba4b2bd4ff9bb10ce134a821c33"
}
],
"flatFileConnectorBundle":{
"wellKnownId":"FlatFileConnectorBundleId",
"value":"FlatFileConnectorBundleId",
"$ref":"https://<domainURL>/admin/v1/ConnectorBundles/FlatFileConnectorBundleId"
}
},
"basedOnTemplate":{
"value":"CustomEnterpriseAppTemplateId",
"wellKnownId":"CustomEnterpriseAppTemplateId",
"lastModified":"2022-01-07T10:16:49Z",
"$ref":"https://<domainURL>/admin/v1/AppTemplates/CustomEnterpriseAppTemplateId"
},
"attrRenderingMetadata":[
{
"name":"aliasApps",
"visible":false
}
],
"urn:ietf:params:scim:schemas:oracle:idcs:extension:enterpriseApp:App":{
"denyAuthzPolicy":{
"value":"a5a367a2e5794b2ab00a75100c23e79f",
"$ref":"https://<domainURL>/admin/v1/Policies/a5a367a2e5794b2ab00a75100c23e79f"
},
"allowAuthzPolicy":{
"value":"37ac22197b2f418c85cb6c8a22507f1e",
"$ref":"https://<domainURL>/admin/v1/Policies/37ac22197b2f418c85cb6c8a22507f1e"
},
"appResources":[
{
"value":"f3b3d95cd43049468f82b6e596747a5e",
"$ref":"https://<domainURL>/admin/v1/AppResources/f3b3d95cd43049468f82b6e596747a5e"
}
]
},
"schemas":[
"urn:ietf:params:scim:schemas:oracle:idcs:App",
"urn:ietf:params:scim:schemas:oracle:idcs:extension:enterpriseApp:App",
"urn:ietf:params:scim:schemas:oracle:idcs:extension:managedapp:App"
]
}
Ajouter une politique de niveau Web à une application d'entreprise
L'exemple suivant montre comment mettre à jour les valeurs d'une application en soumettant une demande PATCH sur la ressource REST à l'aide de cURL. Pour plus d'informations sur cURL, voir Utiliser cURL.
Commande cURL
La commande de cet exemple utilise la structure d'URL
https://<domainURL>/resource-path
, où <domainURL>
représente l'URL du service d'identité et le chemin de ressource représente l'API du service d'identité. Voir Envoyer des demandes pour la structure d'URL appropriée à utiliser. curl
-X PATCH
-H "Content-Type:application/scim+json"
-H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Apps/<ID>?attributes=urn:ietf:params:scim:schemas:oracle:idcs:extension:webTierPolicy:App:webTierPolicyJson,urn:ietf:params:scim:schemas:oracle:idcs:extension:webTierPolicy:App:webTierPolicyAZControl,urn:ietf:params:scim:schemas:oracle:idcs:extension:webTierPolicy:App:resourceRef
Exemple de corps d'une demande
Voici un exemple de corps de demande au format JSON :
{
"schemas":[
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations":[
{
"op":"replace",
"path":"isWebTierPolicy",
"value":true
},
{
"op":"add",
"path":"urn:ietf:params:scim:schemas:oracle:idcs:extension:webTierPolicy:App:webTierPolicyAZControl",
"value":"server"
},
{
"op":"add",
"path":"urn:ietf:params:scim:schemas:oracle:idcs:extension:webTierPolicy:App:webTierPolicyJson",
"value":"{\"cloudgatePolicy\":{\"version\":\"2.6\",\"requireSecureCookies\":true,\"allowCors\":true,\"disableAuthorize\":true,\"webtierPolicy\":[{\"policyName\":\"WebtierTest policy\",\"comment\":\"Webtier policy\",\"resourceFilters\":[{\"filter\":\"<app resource id>\",\"comment\":\"\",\"type\":\"resource\",\"method\":\"http\"}]}]}}"
}
]
}
Exemple de corps de réponse
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"isAliasApp":false,
"displayName":"Enterprise App",
"id":"13f13b9893134eda987957a271eab748",
"urn:ietf:params:scim:schemas:oracle:idcs:extension:webTierPolicy:App":{
"webTierPolicyJson":"{\"cloudgatePolicy\":{\"allowCors\":true,\"requireSecureCookies\":true,\"webtierPolicy\":[{\"resourceFilters\":[{\"filter\":\"http://google.com\",\"method\":\"http\",\"resourceRefId\":\"83043a729d1040868aad6e0e93519cb4\",\"comment\":\"\",\"resourceRefName\":\"My Resource\",\"type\":\"text\"}],\"policyName\":\"WebtierTest policy\",\"comment\":\"Webtier policy\"}],\"version\":\"2.6\",\"disableAuthorize\":true}}",
"webTierPolicyAZControl":"server"
},
"basedOnTemplate":{
"value":"CustomEnterpriseAppTemplateId"
}
}
Créer une politique d'autorisation autorisée
Ces cas d'utilisation fournissent des exemples de demandes de création de la politique d'autorisation pour une application d'entreprise à l'aide de l'API REST des domaines d'identité.
Les cas d'utilisation suivants vous guident tout au long des étapes de création de la politique d'autorisation d'autorisation pour une application d'entreprise à l'aide de l'API REST des domaines d'identité :
- Ajouter une politique d'autorisation d'autorisation
- Créer des conditions de politique d'autorisation
- Créer un groupe de conditions de politique d'autorisation autorisée
- Créer une règle de politique d'autorisation
- Mettre à jour la référence de règle d'autorisation autorisée
- Mettre à jour la référence de ressource d'application pour la politique d'autorisation d'autorisation
Ajouter une politique d'autorisation d'autorisation
La politique Autoriser l'autorisation est automatiquement ajoutée lors de la création d'une application d'entreprise.
L'ID politique créé est disponible dans la réponse comme suit :
"urn:ietf:params:scim:schemas:oracle:idcs:extension:enterpriseApp:App": {
"allowAuthzPolicy": {
"value": "1680009a68d947fc94e817102300e362",
"$ref": "https://<domainURL>/admin/v1/Policies/1680009a68d947fc94e817102300e362"
},
"denyAuthzPolicy": {
"value": "8f91bf044dd34415936a035434bd766c",
"$ref": "https://<domainURL>/admin/v1/Policies/8f91bf044dd34415936a035434bd766c"
}
}
Créer des conditions de politique d'autorisation
L'exemple suivant montre comment créer une condition à évaluer en soumettant une demande POST sur la ressource REST à l'aide de cURL. Les conditions sont référencées à partir des groupes de conditions. Pour plus d'informations sur cURL, voir Utiliser cURL.
Commande cURL
La commande de cet exemple utilise la structure d'URL
https://<domainURL>/resource-path
, où <domainURL>
représente l'URL du service d'identité et le chemin de ressource représente l'API du service d'identité. Voir Envoyer des demandes pour la structure d'URL appropriée à utiliser. curl
-X POST
-H "Content-Type:application/scim+json"
-H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Conditions
Exemple de corps d'une demande - Condition de groupe
Voici un exemple de corps de demande au format JSON :
{
"schemas":[
"urn:ietf:params:scim:schemas:oracle:idcs:Condition"
],
"name":"isInTheseGroups",
"attributeName":"user.groups[*].value",
"operator":"coany",
"attributeValue":"[\"<group guid>\"]"
}
Exemple de corps de réponse - Condition de groupe
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:Condition"
],
"name": "isInTheseGroups",
"attributeName": "user.groups[*].value",
"operator": "coany",
"attributeValue": "[\"6d89b1f9b5b84753926b3aedbf71c289\"]",
"id": "c25d88b87320467da4467b2a12168cec",
"meta": {
"created": "2022-10-21T15:24:08.007Z",
"lastModified": "2022-10-21T15:24:08.007Z",
"resourceType": "Condition",
"location": "https://<domainURL>/admin/v1/Conditions/c25d88b87320467da4467b2a12168cec"
},
"idcsCreatedBy": {
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"type": "User",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"idcsLastModifiedBy": {
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"type": "User",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
}
}
Exemple de corps de demande - Utilisateur hors condition
Voici un exemple de corps de demande au format JSON :
{
"schemas":[
"urn:ietf:params:scim:schemas:oracle:idcs:Condition"
],
"name":"isNotInTheseUsers",
"attributeName":"user.userName",
"operator":"nin",
"attributeValue":"[\"<user name>\"]"
}
Exemple de corps de réponse - Utilisateur hors condition
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:Condition"
],
"name": "isNotInTheseUsers",
"attributeName": "user.userName",
"operator": "nin",
"attributeValue": "[\"bf11562fd0dd4fda85fde3690b104dd3\"]",
"id": "16a2cd31f0114adc856fadb06a18648c",
"meta": {
"created": "2022-10-21T15:25:17.519Z",
"lastModified": "2022-10-21T15:25:17.519Z",
"resourceType": "Condition",
"location": "https://<domainURL>/admin/v1/Conditions/16a2cd31f0114adc856fadb06a18648c"
},
"idcsCreatedBy": {
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"type": "User",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"idcsLastModifiedBy": {
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"type": "User",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
}
}
Exemple de corps de demande - Condition de rôle d'administrateur
Voici un exemple de corps de demande au format JSON :
{
"schemas":[
"urn:ietf:params:scim:schemas:oracle:idcs:Condition"
],
"name":"idcsAdminRole",
"attributeName":"user.urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User:appRoles[*].adminRole",
"operator":"co",
"attributeValue":"[\"true\"]"
}
Exemple de corps de réponse - Condition de rôle d'administrateur
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:Condition"
],
"name": "idcsAdminRole",
"attributeName": "user.urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User:appRoles[*].adminRole",
"operator": "co",
"attributeValue": "[\"true\"]",
"id": "e742c4b2a391451da6dfc42dfd8a4c7d",
"meta": {
"created": "2022-10-21T15:25:39.399Z",
"lastModified": "2022-10-21T15:25:39.399Z",
"resourceType": "Condition",
"location": "https://<domainURL>/admin/v1/Conditions/e742c4b2a391451da6dfc42dfd8a4c7d"
},
"idcsCreatedBy": {
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"type": "User",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"idcsLastModifiedBy": {
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"type": "User",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
}
}
Exemple de corps de demande - Condition de périmètre de réseau
Voici un exemple de corps de demande au format JSON :
{
"schemas":[
"urn:ietf:params:scim:schemas:oracle:idcs:Condition"
],
"name":"SubjectIPAddress",
"attributeName":"subject.ip",
"operator":"eq",
"attributeValue":"#inIPRange(\"<Network perimeter id>\")"
}
Exemple de corps de réponse - Condition de périmètre de réseau
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:Condition"
],
"name": "SubjectIPAddress",
"attributeName": "subject.ip",
"operator": "eq",
"attributeValue": "#inIPRange(\"83bad53f0a50454d909a4709d1335e0d\")",
"id": "4d7afc63249943a3b6136876f30f7860",
"meta": {
"created": "2022-10-21T15:27:45.819Z",
"lastModified": "2022-10-21T15:27:45.819Z",
"resourceType": "Condition",
"location": "https://<domainURL>/admin/v1/Conditions/4d7afc63249943a3b6136876f30f7860"
},
"idcsCreatedBy": {
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"type": "User",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"idcsLastModifiedBy": {
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"type": "User",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
}
}
Créer un groupe de conditions de politique d'autorisation autorisée
L'exemple suivant montre comment créer un groupe de conditions à évaluer en soumettant une demande POST sur la ressource REST à l'aide de cURL. Les groupes de conditions sont référencés à partir d'une règle. Pour plus d'informations sur cURL, voir Utiliser cURL.
Commande cURL
La commande de cet exemple utilise la structure d'URL
https://<domainURL>/resource-path
, où <domainURL>
représente l'URL du service d'identité et le chemin de ressource représente l'API du service d'identité. Voir Envoyer des demandes pour la structure d'URL appropriée à utiliser. curl
-X POST
-H "Content-Type:application/scim+json"
-H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/ConditionGroups
Exemple de corps d'une demande
Voici un exemple de corps de demande au format JSON :
{
"name":"ConditionGroup",
"operator":"and",
"schemas":[
"urn:ietf:params:scim:schemas:oracle:idcs:ConditionGroup"
],
"conditions":[
{
"value":"<group condition id>",
"type":"Condition"
},
{
"value":"<user condition id>",
"type":"Condition"
},
{
"value":"<admin role condition id>",
"type":"Condition"
},
{
"value":"<network perimeter condition id>",
"type":"Condition"
}
]
}
Exemple de corps de réponse
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"idcsLastModifiedBy": {
"type": "User",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"idcsCreatedBy": {
"type": "User",
"display": "admin opc",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"operator": "and",
"id": "d073eb1df00f4b388fbb06430b70173e",
"meta": {
"created": "2022-10-21T15:29:51.218Z",
"lastModified": "2022-10-21T15:29:51.218Z",
"resourceType": "ConditionGroup",
"location": "https://<domainURL>/admin/v1/ConditionGroups/d073eb1df00f4b388fbb06430b70173e"
},
"name": "ConditionGroup",
"conditions": [
{
"type": "Condition",
"value": "c25d88b87320467da4467b2a12168cec",
"$ref": "https://<domainURL>/admin/v1/Conditions/c25d88b87320467da4467b2a12168cec"
},
{
"type": "Condition",
"value": "16a2cd31f0114adc856fadb06a18648c",
"$ref": "https://<domainURL>/admin/v1/Conditions/16a2cd31f0114adc856fadb06a18648c"
},
{
"type": "Condition",
"value": "e742c4b2a391451da6dfc42dfd8a4c7d",
"$ref": "https://<domainURL>/admin/v1/Conditions/e742c4b2a391451da6dfc42dfd8a4c7d"
},
{
"type": "Condition",
"value": "4d7afc63249943a3b6136876f30f7860",
"$ref": "https://<domainURL>/admin/v1/Conditions/4d7afc63249943a3b6136876f30f7860"
}
],
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:ConditionGroup"
]
}
Créer une règle de politique d'autorisation
L'exemple suivant montre comment créer une règle en soumettant une demande POST sur la ressource REST à l'aide de cURL. Pour plus d'informations sur cURL, voir Utiliser cURL.
Commande cURL
La commande de cet exemple utilise la structure d'URL
https://<domainURL>/resource-path
, où <domainURL>
représente l'URL du service d'identité et le chemin de ressource représente l'API du service d'identité. Voir Envoyer des demandes pour la structure d'URL appropriée à utiliser. curl
-X POST
-H "Content-Type:application/scim+json"
-H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Rules
Exemple de corps d'une demande
Voici un exemple de corps de demande au format JSON :
{
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:Rule"
],
"name": "Allow Authorization policy rule",
"policyType": {
"value": "AllowAuthz"
},
"return": [
{
"name": "effect",
"value": "ALLOW"
},
{
"name": "setHeader",
"value": "USER_NAME=$(user.userName),USER_ID=$(user.id)"
}
],
"conditionGroup": {
"value": "<allow authz policy condition group id>",
"type": "ConditionGroup"
}
}
Exemple de corps de réponse
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"idcsLastModifiedBy": {
"type": "User",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"idcsCreatedBy": {
"type": "User",
"display": "admin opc",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"id": "7a8dfdc5d175418ea7babb63cf0301ee",
"meta": {
"created": "2022-10-21T15:39:49.097Z",
"lastModified": "2022-10-21T15:39:49.097Z",
"resourceType": "Rule",
"location": "https://<domainURL>/admin/v1/Rules/7a8dfdc5d175418ea7babb63cf0301ee"
},
"name": "Allow Authorization policy rule",
"policyType": {
"value": "AllowAuthz",
"$ref": "https://<domainURL>/admin/v1/PolicyTypes/AllowAuthz"
},
"conditionGroup": {
"value": "d073eb1df00f4b388fbb06430b70173e",
"type": "ConditionGroup",
"name": "ConditionGroup",
"$ref": "https://<domainURL>/admin/v1/ConditionGroups/d073eb1df00f4b388fbb06430b70173e"
},
"return": [
{
"name": "effect",
"value": "ALLOW"
}
],
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:Rule"
]
}
Mettre à jour la référence de règle d'autorisation autorisée
L'exemple suivant montre comment mettre à jour les valeurs d'une politique en soumettant une demande PATCH sur la ressource REST à l'aide de cURL. Pour plus d'informations sur cURL, voir Utiliser cURL.
Commande cURL
La commande de cet exemple utilise la structure d'URL
https://<domainURL>/resource-path
, où <domainURL>
représente l'URL du service d'identité et le chemin de ressource représente l'API du service d'identité. Voir Envoyer des demandes pour la structure d'URL appropriée à utiliser. curl -X PATCH
-H "Content-Type:application/scim+json"
-H "Authorization: Bearer <Access Token Value>" https://<domainURL>/admin/v1/Policies/<ID>
Exemple de corps d'une demande
Voici un exemple de corps de demande au format JSON :
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "replace",
"path": "rules",
"value": [
{
"value": "<AllowAuthzRule id>",
"sequence": 1
}
]
}
]
}
Exemple de corps de réponse
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"idcsLastModifiedBy": {
"type": "User",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"description": "Authorization allow policy",
"idcsCreatedBy": {
"type": "User",
"display": "admin opc",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"id": "bb7988b1b4434528836171a3c2ce6fe6",
"meta": {
"created": "2022-10-21T15:20:31.144Z",
"lastModified": "2022-10-21T15:41:30.341Z",
"resourceType": "Policy",
"location": "https://<domainURL>/admin/v1/Policies/bb7988b1b4434528836171a3c2ce6fe6"
},
"active": false,
"name": "Allow Authorization policy",
"policyType": {
"value": "AllowAuthz",
"$ref": "https://<domainURL>/admin/v1/PolicyTypes/AllowAuthz"
},
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:Policy"
]
}
Mettre à jour la référence de ressource d'application pour la politique d'autorisation d'autorisation
L'exemple suivant montre comment mettre à jour les valeurs d'une application en soumettant une demande PATCH sur la ressource REST à l'aide de cURL. Pour plus d'informations sur cURL, voir Utiliser cURL.
Commande cURL
La commande de cet exemple utilise la structure d'URL
https://<domainURL>/resource-path
, où <domainURL>
représente l'URL du service d'identité et le chemin de ressource représente l'API du service d'identité. Voir Envoyer des demandes pour la structure d'URL appropriée à utiliser. curl
-X PATCH
-H "Content-Type:application/scim+json"
-H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Apps/<ID>
Exemple de corps d'une demande
Voici un exemple de corps de demande au format JSON :
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "replace",
"path": "",
"value": "<AllowAuthzPolicy id>"
}
]
}
Exemple de corps de réponse
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"isAliasApp": false,
"meta": {
"created": "2022-10-20T19:23:16.937Z",
"lastModified": "2022-10-21T15:44:02.110Z",
"resourceType": "App",
"location": "https://<domainURL>/admin/v1/Apps/23b7bf0f79854002b2db81b808e6a54b"
},
"active": false,
"isLoginTarget": false,
"idcsCreatedBy": {
"display": "admin opc",
"type": "User",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"displayName": "Enterprise App",
"showInMyApps": false,
"isMobileTarget": false,
"allowOffline": false,
"isUnmanagedApp": false,
"idcsLastModifiedBy": {
"display": "admin opc",
"type": "User",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"isOPCService": false,
"description": "Enterprise Application",
"isOAuthClient": false,
"isManagedApp": false,
"isSamlServiceProvider": false,
"infrastructure": false,
"allUrlSchemesAllowed": false,
"id": "23b7bf0f79854002b2db81b808e6a54b",
"isWebTierPolicy": true,
"loginMechanism": "OIDC",
"allowAccessControl": false,
"isOAuthResource": false,
"migrated": false,
"isKerberosRealm": false,
"attrRenderingMetadata": [
{
"visible": false,
"name": "aliasApps"
}
],
"basedOnTemplate": {
"lastModified": "2022-10-16T17:17:34Z",
"value": "CustomWebAppTemplateId",
"wellKnownId": "CustomWebAppTemplateId",
"$ref": "https://<domainURL>/admin/v1/AppTemplates/CustomWebAppTemplateId"
},
"allowAuthzPolicy": {
"value": "bb7988b1b4434528836171a3c2ce6fe6",
"$ref": "https://<domainURL>/admin/v1/Policies/bb7988b1b4434528836171a3c2ce6fe6"
},
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:App"
]
}
Créer une politique de refus d'autorisation
Ces cas d'utilisation fournissent des exemples de demandes de création de la politique de refus d'autorisation pour une application d'entreprise à l'aide de l'API REST des domaines d'identité.
Les cas d'utilisation suivants vous guident tout au long des étapes de création de la politique de refus d'autorisation pour une application d'entreprise à l'aide de l'API REST des domaines d'identité :
- Ajouter une politique de refus d'autorisation
- Créer des conditions de politique de refus d'autorisation
- Créer un groupe de conditions de politique de refus d'autorisation
- Créer une règle de politique de refus d'autorisation
- Mettre à jour la référence de règle de politique de refus d'autorisation
- Mettre à jour la référence de ressource d'application pour la politique de refus d'autorisation
Ajouter une politique de refus d'autorisation
La politique de refus d'autorisation est automatiquement ajoutée lors de la création d'une application d'entreprise.
L'ID politique créé est disponible dans la réponse comme suit :
"urn:ietf:params:scim:schemas:oracle:idcs:extension:enterpriseApp:App": {
"allowAuthzPolicy": {
"value": "1680009a68d947fc94e817102300e362",
"$ref": "https://<domainURL>/admin/v1/Policies/1680009a68d947fc94e817102300e362"
},
"denyAuthzPolicy": {
"value": "8f91bf044dd34415936a035434bd766c",
"$ref": "https://<domainURL>/admin/v1/Policies/8f91bf044dd34415936a035434bd766c"
}
}
Créer des conditions de politique de refus d'autorisation
L'exemple suivant montre comment créer une condition à évaluer en soumettant une demande POST sur la ressource REST à l'aide de cURL. Les conditions sont référencées à partir des groupes de conditions. Pour plus d'informations sur cURL, voir Utiliser cURL.
Commande cURL
La commande de cet exemple utilise la structure d'URL
https://<domainURL>/resource-path
, où <domainURL>
représente l'URL du service d'identité et le chemin de ressource représente l'API du service d'identité. Voir Envoyer des demandes pour la structure d'URL appropriée à utiliser. curl
-X POST
-H "Content-Type:application/scim+json"
-H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Conditionss
Exemple de corps d'une demande - Condition de groupe
Voici un exemple de corps de demande au format JSON :
{
"schemas":[
"urn:ietf:params:scim:schemas:oracle:idcs:Condition"
],
"name":"isInTheseGroups",
"attributeName":"user.groups[*].value",
"operator":"coany",
"attributeValue":"[\"<group guid>\"]"
}
Exemple de corps de réponse - Condition de groupe
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:Condition"
],
"name": "isInTheseGroups",
"attributeName": "user.groups[*].value",
"operator": "coany",
"attributeValue": "[\"6d89b1f9b5b84753926b3aedbf71c289\"]",
"id": "c25d88b87320467da4467b2a12168cec",
"meta": {
"created": "2022-10-21T15:24:08.007Z",
"lastModified": "2022-10-21T15:24:08.007Z",
"resourceType": "Condition",
"location": "https://<domainURL>/admin/v1/Conditions/c25d88b87320467da4467b2a12168cec"
},
"idcsCreatedBy": {
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"type": "User",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"idcsLastModifiedBy": {
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"type": "User",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
}
}
Exemple de corps de demande - Utilisateur hors condition
Voici un exemple de corps de demande au format JSON :
{
"schemas":[
"urn:ietf:params:scim:schemas:oracle:idcs:Condition"
],
"name":"isNotInTheseUsers",
"attributeName":"user.userName",
"operator":"nin",
"attributeValue":"[\"<user name>\"]"
}
Exemple de corps de réponse - Utilisateur hors condition
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:Condition"
],
"name": "isNotInTheseUsers",
"attributeName": "user.userName",
"operator": "nin",
"attributeValue": "[\"bf11562fd0dd4fda85fde3690b104dd3\"]",
"id": "16a2cd31f0114adc856fadb06a18648c",
"meta": {
"created": "2022-10-21T15:25:17.519Z",
"lastModified": "2022-10-21T15:25:17.519Z",
"resourceType": "Condition",
"location": "https://<domainURL>/admin/v1/Conditions/16a2cd31f0114adc856fadb06a18648c"
},
"idcsCreatedBy": {
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"type": "User",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"idcsLastModifiedBy": {
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"type": "User",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
}
}
Exemple de corps de demande - Condition de rôle d'administrateur
Voici un exemple de corps de demande au format JSON :
{
"schemas":[
"urn:ietf:params:scim:schemas:oracle:idcs:Condition"
],
"name":"idcsAdminRole",
"attributeName":"user.urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User:appRoles[*].adminRole",
"operator":"co",
"attributeValue":"[\"true\"]"
}
Exemple de corps de réponse - Condition de rôle d'administrateur
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:Condition"
],
"name": "idcsAdminRole",
"attributeName": "user.urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User:appRoles[*].adminRole",
"operator": "co",
"attributeValue": "[\"true\"]",
"id": "e742c4b2a391451da6dfc42dfd8a4c7d",
"meta": {
"created": "2022-10-21T15:25:39.399Z",
"lastModified": "2022-10-21T15:25:39.399Z",
"resourceType": "Condition",
"location": "https://<domainURL>/admin/v1/Conditions/e742c4b2a391451da6dfc42dfd8a4c7d"
},
"idcsCreatedBy": {
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"type": "User",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"idcsLastModifiedBy": {
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"type": "User",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
}
}
Exemple de corps de demande - Condition de périmètre de réseau
Voici un exemple de corps de demande au format JSON :
{
"schemas":[
"urn:ietf:params:scim:schemas:oracle:idcs:Condition"
],
"name":"SubjectIPAddress",
"attributeName":"subject.ip",
"operator":"eq",
"attributeValue":"#inIPRange(\"<Network perimeter id>\")"
}
Exemple de corps de réponse - Condition de périmètre de réseau
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:Condition"
],
"name": "SubjectIPAddress",
"attributeName": "subject.ip",
"operator": "eq",
"attributeValue": "#inIPRange(\"83bad53f0a50454d909a4709d1335e0d\")",
"id": "4d7afc63249943a3b6136876f30f7860",
"meta": {
"created": "2022-10-21T15:27:45.819Z",
"lastModified": "2022-10-21T15:27:45.819Z",
"resourceType": "Condition",
"location": "https://<domainURL>/admin/v1/Conditions/4d7afc63249943a3b6136876f30f7860"
},
"idcsCreatedBy": {
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"type": "User",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"idcsLastModifiedBy": {
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"type": "User",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
}
}
Créer un groupe de conditions de politique de refus d'autorisation
L'exemple suivant montre comment créer un groupe de conditions à évaluer en soumettant une demande POST sur la ressource REST à l'aide de cURL. Les groupes de conditions sont référencés à partir d'une règle. Pour plus d'informations sur cURL, voir Utiliser cURL.
Commande cURL
La commande de cet exemple utilise la structure d'URL
https://<domainURL>/resource-path
, où <domainURL>
représente l'URL du service d'identité et le chemin de ressource représente l'API du service d'identité. Voir Envoyer des demandes pour la structure d'URL appropriée à utiliser. curl -X POST
-H "Content-Type:application/scim+json"
-H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/ConditionGroupss
Exemple de corps d'une demande
Voici un exemple de corps de demande au format JSON :
{
"name":"ConditionGroup",
"operator":"or",
"schemas":[
"urn:ietf:params:scim:schemas:oracle:idcs:ConditionGroup"
],
"conditions":[
{
"value":"<group condition id>",
"type":"Condition"
},
{
"value":"<user condition id>",
"type":"Condition"
},
{
"value":"<admin role condition id>",
"type":"Condition"
},
{
"value":"<network perimeter condition id>",
"type":"Condition"
}
]
}
Exemple de corps de réponse
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"idcsLastModifiedBy": {
"type": "User",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"idcsCreatedBy": {
"type": "User",
"display": "admin opc",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"operator": "or",
"id": "d073eb1df00f4b388fbb06430b70173e",
"meta": {
"created": "2022-10-21T15:29:51.218Z",
"lastModified": "2022-10-21T15:29:51.218Z",
"resourceType": "ConditionGroup",
"location": "https://<domainURL>/admin/v1/ConditionGroups/d073eb1df00f4b388fbb06430b70173e"
},
"name": "ConditionGroup",
"conditions": [
{
"type": "Condition",
"value": "c25d88b87320467da4467b2a12168cec",
"$ref": "https://<domainURL>/admin/v1/Conditions/c25d88b87320467da4467b2a12168cec"
},
{
"type": "Condition",
"value": "16a2cd31f0114adc856fadb06a18648c",
"$ref": "https://<domainURL>/admin/v1/Conditions/16a2cd31f0114adc856fadb06a18648c"
},
{
"type": "Condition",
"value": "e742c4b2a391451da6dfc42dfd8a4c7d",
"$ref": "https://<domainURL>/admin/v1/Conditions/e742c4b2a391451da6dfc42dfd8a4c7d"
},
{
"type": "Condition",
"value": "4d7afc63249943a3b6136876f30f7860",
"$ref": "https://<domainURL>/admin/v1/Conditions/4d7afc63249943a3b6136876f30f7860"
}
],
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:ConditionGroup"
]
}
Créer une règle de politique de refus d'autorisation
L'exemple suivant montre comment créer une règle en soumettant une demande POST sur la ressource REST à l'aide de cURL. Pour plus d'informations sur cURL, voir Utiliser cURL.
Commande cURL
La commande de cet exemple utilise la structure d'URL
https://<domainURL>/resource-path
, où <domainURL>
représente l'URL du service d'identité et le chemin de ressource représente l'API du service d'identité. Voir Envoyer des demandes pour la structure d'URL appropriée à utiliser. curl -X POST
-H "Content-Type:application/scim+json"
-H "Authorization: Bearer <Access Token Value>" https://<domainURL>/admin/v1/Rules
Exemple de corps d'une demande
Voici un exemple de corps de demande au format JSON :
{
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:Rule"
],
"name": "Deny Authz policy rule",
"policyType": {
"value": "DenyAuthz"
},
"return": [
{
"name": "effect",
"value": "DENY"
},
{
"name": "logout",
"value": "true"
}
],
"conditionGroup": {
"value": "< deny authz policy condition group id>",
"type": "ConditionGroup"
}
}
Exemple de corps de réponse
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"idcsLastModifiedBy": {
"type": "User",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"idcsCreatedBy": {
"type": "User",
"display": "admin opc",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"id": "7a8dfdc5d175418ea7babb63cf0301ee",
"meta": {
"created": "2022-10-21T15:39:49.097Z",
"lastModified": "2022-10-21T15:39:49.097Z",
"resourceType": "Rule",
"location": "https://<domainURL>/admin/v1/Rules/7a8dfdc5d175418ea7babb63cf0301ee"
},
"name": "Deny Authz policy rule",
"policyType": {
"value": "DenyAuthz",
"$ref": "https://<domainURL>/admin/v1/PolicyTypes/AllowAuthz"
},
"conditionGroup": {
"value": "d073eb1df00f4b388fbb06430b70173e",
"type": "ConditionGroup",
"name": "ConditionGroup",
"$ref": "https://<domainURL>/admin/v1/ConditionGroups/d073eb1df00f4b388fbb06430b70173e"
},
"return": [
{
"name": "effect",
"value": "DENY"
}
],
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:Rule"
]
}
Mettre à jour la référence de règle de politique de refus d'autorisation
L'exemple suivant montre comment mettre à jour les valeurs d'une politique en soumettant une demande PATCH sur la ressource REST à l'aide de cURL. Pour plus d'informations sur cURL, voir Utiliser cURL.
Commande cURL
La commande de cet exemple utilise la structure d'URL
https://<domainURL>/resource-path
, où <domainURL>
représente l'URL du service d'identité et le chemin de ressource représente l'API du service d'identité. Voir Envoyer des demandes pour la structure d'URL appropriée à utiliser. curl -X PATCH
-H "Content-Type:application/scim+json"
-H "Authorization: Bearer <Access Token Value>" https://<domainURL>/admin/v1/Policies/<ID>
Exemple de corps d'une demande
Voici un exemple de corps de demande au format JSON :
{
"schemas":[
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations":[
{
"op":"replace",
"path":"rules",
"value":[
{
"value":"<DenyAuthzRule id>",
"sequence":1
}
]
}
]
}
Exemple de corps de réponse
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"idcsLastModifiedBy": {
"type": "User",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"display": "admin opc",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"description": "Authorization deny policy",
"idcsCreatedBy": {
"type": "User",
"display": "admin opc",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"id": "bb7988b1b4434528836171a3c2ce6fe6",
"meta": {
"created": "2022-10-21T15:20:31.144Z",
"lastModified": "2022-10-21T15:41:30.341Z",
"resourceType": "Policy",
"location": "https://<domainURL>/admin/v1/Policies/bb7988b1b4434528836171a3c2ce6fe6"
},
"active": false,
"name": "Deny Authorization policy",
"policyType": {
"value": "DenyAuthz",
"$ref": "https://<domainURL>/admin/v1/PolicyTypes/DenyAuthz"
},
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:Policy"
]
}
Mettre à jour la référence de ressource d'application pour la politique de refus d'autorisation
L'exemple suivant montre comment mettre à jour les valeurs d'une application en soumettant une demande PATCH sur la ressource REST à l'aide de cURL. Pour plus d'informations sur cURL, voir Utiliser cURL.
Commande cURL
La commande de cet exemple utilise la structure d'URL
https://<domainURL>/resource-path
, où <domainURL>
représente l'URL du service d'identité et le chemin de ressource représente l'API du service d'identité. Voir Envoyer des demandes pour la structure d'URL appropriée à utiliser. curl -X PATCH
-H "Content-Type:application/scim+json"
-H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Apps/<ID>
Exemple de corps d'une demande
Voici un exemple de corps de demande au format JSON :
{
"schemas":[
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations":[
{
"op":"replace",
"path":"urn:ietf:params:scim:schemas:oracle:idcs:extension:enterpriseApp:App:denyAuthzPolicy.value",
"value":"<DenyAuthzPolicy id>"
}
]
}
Exemple de corps de réponse
L'exemple suivant montre le contenu du corps de la réponse au format JSON :
{
"isAliasApp": false,
"meta": {
"created": "2022-10-20T19:23:16.937Z",
"lastModified": "2022-10-21T16:02:21.720Z",
"resourceType": "App",
"location": "https://<domainURL>/admin/v1/Apps/23b7bf0f79854002b2db81b808e6a54b"
},
"active": false,
"isLoginTarget": false,
"idcsCreatedBy": {
"display": "admin opc",
"type": "User",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"displayName": "Enterprise App",
"showInMyApps": false,
"isMobileTarget": false,
"allowOffline": false,
"isUnmanagedApp": false,
"idcsLastModifiedBy": {
"display": "admin opc",
"type": "User",
"value": "bf11562fd0dd4fda85fde3690b104dd3",
"$ref": "https://<domainURL>/admin/v1/Users/bf11562fd0dd4fda85fde3690b104dd3"
},
"isOPCService": false,
"description": "Enterprise Application",
"isOAuthClient": false,
"isManagedApp": false,
"isSamlServiceProvider": false,
"infrastructure": false,
"allUrlSchemesAllowed": false,
"id": "23b7bf0f79854002b2db81b808e6a54b",
"isWebTierPolicy": true,
"loginMechanism": "OIDC",
"allowAccessControl": false,
"isOAuthResource": false,
"migrated": false,
"isKerberosRealm": false,
"attrRenderingMetadata": [
{
"visible": false,
"name": "aliasApps"
}
],
"basedOnTemplate": {
"lastModified": "2022-10-16T17:17:34Z",
"value": "CustomWebAppTemplateId",
"wellKnownId": "CustomWebAppTemplateId",
"$ref": "https://<domainURL>/admin/v1/AppTemplates/CustomWebAppTemplateId"
},
"allowAuthzPolicy": {
"value": "bb7988b1b4434528836171a3c2ce6fe6",
"$ref": "https://<domainURL>/admin/v1/Policies/bb7988b1b4434528836171a3c2ce6fe6"
},
"denyAuthzPolicy": {
"value": "0e094096e9314b1ab6c763acc3619909",
"$ref": "https://<domainURL>/admin/v1/Policies/0e094096e9314b1ab6c763acc3619909"
},
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:App"
]
}