Creación de una aplicación Enterprise con una política de autorización

Estos casos de uso proporcionan solicitudes de ejemplo para crear una aplicación empresarial con una política de autorización mediante la API de REST de los dominios de identidad.

Los siguientes casos de uso le guiarán por los pasos para crear una aplicación empresarial con política de autorización mediante las API de REST:

Crear una aplicación empresarial

En el siguiente ejemplo, se muestra cómo crear una aplicación empresarial mediante el envío de una solicitud POST en el recurso REST mediante cURL. Para obtener más información sobre cURL, consulte Uso de cURL.

comando cURL

Nota

El comando de este ejemplo utiliza la estructura de URL https://<domainURL>/resource-path, donde <domainURL> representa la URL del servicio de identidad y la ruta de acceso del recurso representa la API del servicio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se debe utilizar.
   curl 
   -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Apps
Nota

El ID de plantilla debe asignarse a la plantilla de la aplicación Enterprise.

Ejemplo de cuerpo de solicitud

A continuación se muestra un ejemplo de cuerpo de solicitud con formato 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
    }
}

Ejemplo de cuerpo de respuesta

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    ]
}

Creación de un recurso de aplicación

En el siguiente ejemplo, se muestra cómo crear un recurso de aplicación mediante el envío de una solicitud POST en el recurso REST mediante cURL. Para obtener más información sobre cURL, consulte Uso de cURL.

comando cURL

Nota

El comando de este ejemplo utiliza la estructura de URL https://<domainURL>/resource-path, donde <domainURL> representa la URL del servicio de identidad y la ruta de acceso del recurso representa la API del servicio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se debe utilizar.
   curl 
   -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>" https://<domainURL>/admin/v1/AppResources
Nota

Sustituya el marcador de posición {{appid}} por el ID de aplicación de la respuesta de creación de la aplicación.

Ejemplo de cuerpo de solicitud

A continuación se muestra un ejemplo de cuerpo de solicitud con formato 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}}"
    }
}

Ejemplo de cuerpo de respuesta

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    ]
}

Actualización de la referencia de ID de recurso de aplicación en una aplicación empresarial

En el siguiente ejemplo, se muestra cómo actualizar valores para una aplicación mediante el envío de una solicitud PATCH en el recurso REST mediante cURL. Para obtener más información sobre cURL, consulte Uso de cURL.

comando cURL

Nota

El comando de este ejemplo utiliza la estructura de URL https://<domainURL>/resource-path, donde <domainURL> representa la URL del servicio de identidad y la ruta de acceso del recurso representa la API del servicio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se debe utilizar.
   curl -X PATCH
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>" https://<domainURL>/admin/v1/Apps/<ID>

Ejemplo de cuerpo de solicitud

A continuación se muestra un ejemplo de cuerpo de solicitud con formato 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"
            }
         ]
      }
   ]
}

Ejemplo de cuerpo de respuesta

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
   ]
}

Agregar política de nivel web a una aplicación empresarial

En el siguiente ejemplo, se muestra cómo actualizar valores para una aplicación mediante el envío de una solicitud PATCH en el recurso REST mediante cURL. Para obtener más información sobre cURL, consulte Uso de cURL.

comando cURL

Nota

El comando de este ejemplo utiliza la estructura de URL https://<domainURL>/resource-path, donde <domainURL> representa la URL del servicio de identidad y la ruta de acceso del recurso representa la API del servicio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se debe utilizar.
   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

Ejemplo de cuerpo de solicitud

A continuación se muestra un ejemplo de cuerpo de solicitud con formato 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\"}]}]}}"
      }
   ]
}

Ejemplo de cuerpo de respuesta

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
   }
}

Crear política de permiso de autorización

Estos casos de uso proporcionan solicitudes de ejemplo para crear la política de autorización de permiso para una aplicación empresarial mediante la API de REST de dominios de identidad.

Los siguientes casos de uso le guiarán por los pasos para crear la política de permiso de autorización para una aplicación empresarial mediante la API de REST de dominios de identidad:

Agregar política de autorización permitida

La política Permitir autorización se agrega automáticamente al crear una aplicación empresarial.

El ID de política creado está disponible en la respuesta de la siguiente manera:

"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"
    }
}

Crear condiciones de permiso de política de autorización

En el siguiente ejemplo se muestra cómo crear una condición para evaluar mediante el envío de una solicitud POST en el recurso REST mediante cURL. Se hace referencia a las condiciones desde los grupos de condiciones. Para obtener más información sobre cURL, consulte Uso de cURL.

comando cURL

Nota

El comando de este ejemplo utiliza la estructura de URL https://<domainURL>/resource-path, donde <domainURL> representa la URL del servicio de identidad y la ruta de acceso del recurso representa la API del servicio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se debe utilizar.
   curl 
   -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Conditions

Ejemplo de cuerpo de solicitud - condición de grupo

A continuación se muestra un ejemplo de cuerpo de solicitud con formato JSON:

{  
   "schemas":[  
      "urn:ietf:params:scim:schemas:oracle:idcs:Condition"
   ],
   "name":"isInTheseGroups",
   "attributeName":"user.groups[*].value",
   "operator":"coany",
   "attributeValue":"[\"<group guid>\"]"
}

Ejemplo de cuerpo de respuesta - Condición de grupo

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    }
}

Ejemplo de cuerpo de solicitud - Usuario no en condición

A continuación se muestra un ejemplo de cuerpo de solicitud con formato JSON:

{  
   "schemas":[  
      "urn:ietf:params:scim:schemas:oracle:idcs:Condition"
   ],
   "name":"isNotInTheseUsers",
   "attributeName":"user.userName",
   "operator":"nin",
   "attributeValue":"[\"<user name>\"]"
}

Ejemplo de cuerpo de respuesta - Usuario no en condición

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    }
}

Ejemplo de cuerpo de solicitud - Condición de rol de administrador

A continuación se muestra un ejemplo de cuerpo de solicitud con formato 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\"]"
}

Ejemplo de cuerpo de respuesta - Condición de rol de administrador

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    }
}

Ejemplo de cuerpo de solicitud - Condición de perímetro de red

A continuación se muestra un ejemplo de cuerpo de solicitud con formato JSON:

{  
   "schemas":[  
      "urn:ietf:params:scim:schemas:oracle:idcs:Condition"
   ],
   "name":"SubjectIPAddress",
   "attributeName":"subject.ip",
   "operator":"eq",
   "attributeValue":"#inIPRange(\"<Network perimeter id>\")"
}

Ejemplo de cuerpo de respuesta - Condición de perímetro de red

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    }
}

Crear grupo de condiciones de política de autorización permitida

En el siguiente ejemplo se muestra cómo crear un grupo de condiciones para su evaluación mediante el envío de una solicitud POST en el recurso REST mediante cURL. Se hace referencia a los grupos de condiciones desde una regla. Para obtener más información sobre cURL, consulte Uso de cURL.

comando cURL

Nota

El comando de este ejemplo utiliza la estructura de URL https://<domainURL>/resource-path, donde <domainURL> representa la URL del servicio de identidad y la ruta de acceso del recurso representa la API del servicio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se debe utilizar.
   curl 
   -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/ConditionGroups

Ejemplo de cuerpo de solicitud

A continuación se muestra un ejemplo de cuerpo de solicitud con formato 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"
      }
   ]
}

Ejemplo de cuerpo de respuesta

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    ]
}

Crear regla de permiso de política de autorización

En el siguiente ejemplo, se muestra cómo crear una regla mediante el envío de una solicitud POST en el recurso REST mediante cURL. Para obtener más información sobre cURL, consulte Uso de cURL.

comando cURL

Nota

El comando de este ejemplo utiliza la estructura de URL https://<domainURL>/resource-path, donde <domainURL> representa la URL del servicio de identidad y la ruta de acceso del recurso representa la API del servicio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se debe utilizar.
   curl 
   -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Rules

Ejemplo de cuerpo de solicitud

A continuación se muestra un ejemplo de cuerpo de solicitud con formato 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"
    }
}

Ejemplo de cuerpo de respuesta

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    ]
}

Actualizar referencia de regla de política de autorización permitida

En el siguiente ejemplo, se muestra cómo actualizar valores para una política mediante el envío de una solicitud PATCH en el recurso REST mediante cURL. Para obtener más información sobre cURL, consulte Uso de cURL.

comando cURL

Nota

El comando de este ejemplo utiliza la estructura de URL https://<domainURL>/resource-path, donde <domainURL> representa la URL del servicio de identidad y la ruta de acceso del recurso representa la API del servicio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se debe utilizar.
   curl -X PATCH
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>" https://<domainURL>/admin/v1/Policies/<ID>

Ejemplo de cuerpo de solicitud

A continuación se muestra un ejemplo de cuerpo de solicitud con formato JSON:

{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:PatchOp"
    ],
    "Operations": [
        {
            "op": "replace",
            "path": "rules",
            "value": [
                {
                    "value": "<AllowAuthzRule id>",
                    "sequence": 1
                }
            ]
        }
    ]
}

Ejemplo de cuerpo de respuesta

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    ]
}

Actualizar referencia de recurso de aplicación para permitir política de autorización

En el siguiente ejemplo, se muestra cómo actualizar valores para una aplicación mediante el envío de una solicitud PATCH en el recurso REST mediante cURL. Para obtener más información sobre cURL, consulte Uso de cURL.

comando cURL

Nota

El comando de este ejemplo utiliza la estructura de URL https://<domainURL>/resource-path, donde <domainURL> representa la URL del servicio de identidad y la ruta de acceso del recurso representa la API del servicio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se debe utilizar.
   curl 
   -X PATCH
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Apps/<ID>

Ejemplo de cuerpo de solicitud

A continuación se muestra un ejemplo de cuerpo de solicitud con formato JSON:

{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:PatchOp"
    ],
    "Operations": [
        {
            "op": "replace",
            "path": "",
            "value": "<AllowAuthzPolicy id>"
        }
    ]
}

Ejemplo de cuerpo de respuesta

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    ]
}

Crear política de autorización de denegación

Estos casos de uso proporcionan solicitudes de ejemplo para crear la política de denegación de autorización para una aplicación empresarial mediante la API de REST de dominios de identidad.

Los siguientes casos de uso le guiarán por los pasos para crear la política de denegación de autorización para una aplicación empresarial mediante la API de REST de los dominios de identidad:

Agregar política de autorización de denegación

La política de autorización de denegación se agrega automáticamente al crear una aplicación empresarial.

El ID de política creado está disponible en la respuesta de la siguiente manera:

"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"
    }
}

Crear Condiciones de Política de Denegación

En el siguiente ejemplo se muestra cómo crear una condición para evaluar mediante el envío de una solicitud POST en el recurso REST mediante cURL. Se hace referencia a las condiciones desde los grupos de condiciones. Para obtener más información sobre cURL, consulte Uso de cURL.

comando cURL

Nota

El comando de este ejemplo utiliza la estructura de URL https://<domainURL>/resource-path, donde <domainURL> representa la URL del servicio de identidad y la ruta de acceso del recurso representa la API del servicio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se debe utilizar.
   curl 
   -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Conditionss

Ejemplo de cuerpo de solicitud - condición de grupo

A continuación se muestra un ejemplo de cuerpo de solicitud con formato JSON:

{  
   "schemas":[  
      "urn:ietf:params:scim:schemas:oracle:idcs:Condition"
   ],
   "name":"isInTheseGroups",
   "attributeName":"user.groups[*].value",
   "operator":"coany",
   "attributeValue":"[\"<group guid>\"]"
}

Ejemplo de cuerpo de respuesta - Condición de grupo

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    }
}

Ejemplo de cuerpo de solicitud - Usuario no en condición

A continuación se muestra un ejemplo de cuerpo de solicitud con formato JSON:

{  
   "schemas":[  
      "urn:ietf:params:scim:schemas:oracle:idcs:Condition"
   ],
   "name":"isNotInTheseUsers",
   "attributeName":"user.userName",
   "operator":"nin",
   "attributeValue":"[\"<user name>\"]"
}

Ejemplo de cuerpo de respuesta - Usuario no en condición

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    }
}

Ejemplo de cuerpo de solicitud - Condición de rol de administrador

A continuación se muestra un ejemplo de cuerpo de solicitud con formato 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\"]"
}

Ejemplo de cuerpo de respuesta - Condición de rol de administrador

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    }
}

Ejemplo de cuerpo de solicitud - Condición de perímetro de red

A continuación se muestra un ejemplo de cuerpo de solicitud con formato JSON:

{  
   "schemas":[  
      "urn:ietf:params:scim:schemas:oracle:idcs:Condition"
   ],
   "name":"SubjectIPAddress",
   "attributeName":"subject.ip",
   "operator":"eq",
   "attributeValue":"#inIPRange(\"<Network perimeter id>\")"
}

Ejemplo de cuerpo de respuesta - Condición de perímetro de red

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    }
}

Crear grupo de condiciones de política de autorización de denegación

En el siguiente ejemplo se muestra cómo crear un grupo de condiciones para su evaluación mediante el envío de una solicitud POST en el recurso REST mediante cURL. Se hace referencia a los grupos de condiciones desde una regla. Para obtener más información sobre cURL, consulte Uso de cURL.

comando cURL

Nota

El comando de este ejemplo utiliza la estructura de URL https://<domainURL>/resource-path, donde <domainURL> representa la URL del servicio de identidad y la ruta de acceso del recurso representa la API del servicio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se debe utilizar.
   curl -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/ConditionGroupss

Ejemplo de cuerpo de solicitud

A continuación se muestra un ejemplo de cuerpo de solicitud con formato 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"
      }
   ]
}

Ejemplo de cuerpo de respuesta

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    ]
}

Crear Regla de Política de Denegación

En el siguiente ejemplo, se muestra cómo crear una regla mediante el envío de una solicitud POST en el recurso REST mediante cURL. Para obtener más información sobre cURL, consulte Uso de cURL.

comando cURL

Nota

El comando de este ejemplo utiliza la estructura de URL https://<domainURL>/resource-path, donde <domainURL> representa la URL del servicio de identidad y la ruta de acceso del recurso representa la API del servicio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se debe utilizar.
   curl -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>" https://<domainURL>/admin/v1/Rules

Ejemplo de cuerpo de solicitud

A continuación se muestra un ejemplo de cuerpo de solicitud con formato 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"
    }
}

Ejemplo de cuerpo de respuesta

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    ]
}

Actualizar referencia de regla de política de autorización de denegación

En el siguiente ejemplo, se muestra cómo actualizar valores para una política mediante el envío de una solicitud PATCH en el recurso REST mediante cURL. Para obtener más información sobre cURL, consulte Uso de cURL.

comando cURL

Nota

El comando de este ejemplo utiliza la estructura de URL https://<domainURL>/resource-path, donde <domainURL> representa la URL del servicio de identidad y la ruta de acceso del recurso representa la API del servicio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se debe utilizar.
   curl -X PATCH
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>" https://<domainURL>/admin/v1/Policies/<ID>

Ejemplo de cuerpo de solicitud

A continuación se muestra un ejemplo de cuerpo de solicitud con formato JSON:

{  
   "schemas":[  
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
   ],
   "Operations":[  
      {  
         "op":"replace",
         "path":"rules",
         "value":[  
            {  
               "value":"<DenyAuthzRule id>",
               "sequence":1
            }
         ]
      }
   ]
}

Ejemplo de cuerpo de respuesta

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    ]
}

Actualizar referencia de recurso de aplicación para denegar política de autorización

En el siguiente ejemplo, se muestra cómo actualizar valores para una aplicación mediante el envío de una solicitud PATCH en el recurso REST mediante cURL. Para obtener más información sobre cURL, consulte Uso de cURL.

comando cURL

Nota

El comando de este ejemplo utiliza la estructura de URL https://<domainURL>/resource-path, donde <domainURL> representa la URL del servicio de identidad y la ruta de acceso del recurso representa la API del servicio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se debe utilizar.
   curl -X PATCH
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Apps/<ID>

Ejemplo de cuerpo de solicitud

A continuación se muestra un ejemplo de cuerpo de solicitud con formato 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>"            
      }
   ]
}

Ejemplo de cuerpo de respuesta

En el siguiente ejemplo se muestra el contenido del cuerpo de respuesta con formato 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"
    ]
}