Criação de um Aplicativo Corporativo com Política de Autorização

Esses casos de uso fornecem exemplos de solicitações para criar um aplicativo empresarial com uma política de autorização usando a API REST dos domínios de identidades.

Os seguintes casos de uso orientam você pelas etapas para criar um aplicativo empresarial com política de autorização usando as APIs REST:

Criar um Aplicativo Empresarial

O exemplo a seguir mostra como criar um aplicativo empresarial enviando uma solicitação POST no recurso REST usando cURL. Para obter mais informações sobre o cURL, consulte Usar cURL.

comando cURL

Observação

O comando neste exemplo usa a estrutura de URL https://<domainURL>/resource-path, em que <domainURL> representa o URL do Serviço de Identidade, e o caminho do recurso representa a API do Serviço de Identidade. Consulte Enviar Solicitações para obter a estrutura de URL apropriada a ser usada.
   curl 
   -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Apps
Observação

O id do modelo deve ser mapeado para o modelo do aplicativo Enterprise.

Exemplo de Corpo da Solicitação

Veja a seguir um exemplo do corpo da solicitação no 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
    }
}

Exemplo do Corpo de Resposta

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    ]
}

Criar um Recurso de Aplicativo

O exemplo a seguir mostra como criar um recurso de aplicativo enviando uma solicitação POST no recurso REST usando cURL. Para obter mais informações sobre o cURL, consulte Usar cURL.

comando cURL

Observação

O comando neste exemplo usa a estrutura de URL https://<domainURL>/resource-path, em que <domainURL> representa o URL do Serviço de Identidade, e o caminho do recurso representa a API do Serviço de Identidade. Consulte Enviar Solicitações para obter a estrutura de URL apropriada a ser usada.
   curl 
   -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>" https://<domainURL>/admin/v1/AppResources
Observação

Substitua o placeholder {{appid}} pelo id do aplicativo da resposta de criação do aplicativo.

Exemplo de Corpo da Solicitação

Veja a seguir um exemplo do corpo da solicitação no 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}}"
    }
}

Exemplo do Corpo de Resposta

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    ]
}

Atualizar a Referência do ID do Recurso do Aplicativo em um Aplicativo Empresarial

O exemplo a seguir mostra como atualizar valores de um aplicativo enviando uma solicitação PATCH no recurso REST usando o cURL. Para obter mais informações sobre o cURL, consulte Usar cURL.

comando cURL

Observação

O comando neste exemplo usa a estrutura de URL https://<domainURL>/resource-path, em que <domainURL> representa o URL do Serviço de Identidade, e o caminho do recurso representa a API do Serviço de Identidade. Consulte Enviar Solicitações para obter a estrutura de URL apropriada a ser usada.
   curl -X PATCH
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>" https://<domainURL>/admin/v1/Apps/<ID>

Exemplo de Corpo da Solicitação

Veja a seguir um exemplo do corpo da solicitação no 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"
            }
         ]
      }
   ]
}

Exemplo do Corpo de Resposta

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
   ]
}

Adicionar Política da Camada Web a um Aplicativo Empresarial

O exemplo a seguir mostra como atualizar valores de um aplicativo enviando uma solicitação PATCH no recurso REST usando o cURL. Para obter mais informações sobre o cURL, consulte Usar cURL.

comando cURL

Observação

O comando neste exemplo usa a estrutura de URL https://<domainURL>/resource-path, em que <domainURL> representa o URL do Serviço de Identidade, e o caminho do recurso representa a API do Serviço de Identidade. Consulte Enviar Solicitações para obter a estrutura de URL apropriada a ser usada.
   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

Exemplo de Corpo da Solicitação

Veja a seguir um exemplo do corpo da solicitação no 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\"}]}]}}"
      }
   ]
}

Exemplo do Corpo de Resposta

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
   }
}

Criar Permitir Política de Autorização

Esses casos de uso fornecem solicitações de exemplo para criar a política de permissão de autorização para um aplicativo empresarial usando a API REST dos domínios de identidades.

Os seguintes casos de uso orientam você pelas etapas para criar a política de permissão para um aplicativo empresarial usando a API REST de domínios de identidades:

Adicionar Permitir Política de Autorização

A Política de Autorização de Permissão é adicionada automaticamente ao criar um aplicativo empresarial.

O ID da política criada está disponível na resposta da seguinte forma:

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

Criar Condições de Permitir Política de Autorização

O exemplo a seguir mostra como criar uma condição a ser avaliada enviando uma solicitação POST no recurso REST usando cURL. As condições são referenciadas nos Grupos de Condições. Para obter mais informações sobre o cURL, consulte Usar cURL.

comando cURL

Observação

O comando neste exemplo usa a estrutura de URL https://<domainURL>/resource-path, em que <domainURL> representa o URL do Serviço de Identidade, e o caminho do recurso representa a API do Serviço de Identidade. Consulte Enviar Solicitações para obter a estrutura de URL apropriada a ser usada.
   curl 
   -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Conditions

Exemplo de Corpo da Solicitação - Condição do Grupo

Veja a seguir um exemplo do corpo da solicitação no formato JSON:

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

Exemplo do Corpo de Resposta - Condição do Grupo

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    }
}

Exemplo de Corpo da Solicitação - Usuário Fora da Condição

Veja a seguir um exemplo do corpo da solicitação no formato JSON:

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

Exemplo de Corpo da Resposta - Usuário Fora da Condição

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    }
}

Exemplo de Corpo da Solicitação - Condição da Função do Administrador

Veja a seguir um exemplo do corpo da solicitação no 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\"]"
}

Exemplo de Corpo da Resposta - Condição da Função do Administrador

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    }
}

Exemplo de Corpo da Solicitação - Condição do Perímetro de Rede

Veja a seguir um exemplo do corpo da solicitação no formato JSON:

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

Exemplo de Corpo da Resposta - Condição do Perímetro de Rede

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    }
}

Criar Permitir Grupo de Condições da Política de Autorização

O exemplo a seguir mostra como criar um grupo de condições a ser avaliado enviando uma solicitação POST no recurso REST usando cURL. Os grupos de condições são referenciados de uma Regra. Para obter mais informações sobre o cURL, consulte Usar cURL.

comando cURL

Observação

O comando neste exemplo usa a estrutura de URL https://<domainURL>/resource-path, em que <domainURL> representa o URL do Serviço de Identidade, e o caminho do recurso representa a API do Serviço de Identidade. Consulte Enviar Solicitações para obter a estrutura de URL apropriada a ser usada.
   curl 
   -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/ConditionGroups

Exemplo de Corpo da Solicitação

Veja a seguir um exemplo do corpo da solicitação no 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"
      }
   ]
}

Exemplo do Corpo de Resposta

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    ]
}

Criar Regra de Permitir Política de Autorização

O exemplo a seguir mostra como criar uma regra enviando uma solicitação POST no recurso REST usando cURL. Para obter mais informações sobre o cURL, consulte Usar cURL.

comando cURL

Observação

O comando neste exemplo usa a estrutura de URL https://<domainURL>/resource-path, em que <domainURL> representa o URL do Serviço de Identidade, e o caminho do recurso representa a API do Serviço de Identidade. Consulte Enviar Solicitações para obter a estrutura de URL apropriada a ser usada.
   curl 
   -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Rules

Exemplo de Corpo da Solicitação

Veja a seguir um exemplo do corpo da solicitação no 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"
    }
}

Exemplo do Corpo de Resposta

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    ]
}

Atualizar Referência da Regra de Permitir Política de Autorização

O exemplo a seguir mostra como atualizar valores de uma política enviando uma solicitação PATCH no recurso REST usando o cURL. Para obter mais informações sobre o cURL, consulte Usar cURL.

comando cURL

Observação

O comando neste exemplo usa a estrutura de URL https://<domainURL>/resource-path, em que <domainURL> representa o URL do Serviço de Identidade, e o caminho do recurso representa a API do Serviço de Identidade. Consulte Enviar Solicitações para obter a estrutura de URL apropriada a ser usada.
   curl -X PATCH
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>" https://<domainURL>/admin/v1/Policies/<ID>

Exemplo de Corpo da Solicitação

Veja a seguir um exemplo do corpo da solicitação no formato JSON:

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

Exemplo do Corpo de Resposta

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    ]
}

Atualizar Referência de Recurso do Aplicativo para Permitir Política de Autorização

O exemplo a seguir mostra como atualizar valores de um aplicativo enviando uma solicitação PATCH no recurso REST usando o cURL. Para obter mais informações sobre o cURL, consulte Usar cURL.

comando cURL

Observação

O comando neste exemplo usa a estrutura de URL https://<domainURL>/resource-path, em que <domainURL> representa o URL do Serviço de Identidade, e o caminho do recurso representa a API do Serviço de Identidade. Consulte Enviar Solicitações para obter a estrutura de URL apropriada a ser usada.
   curl 
   -X PATCH
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Apps/<ID>

Exemplo de Corpo da Solicitação

Veja a seguir um exemplo do corpo da solicitação no formato JSON:

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

Exemplo do Corpo de Resposta

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    ]
}

Criar Política de Autorização de Recusa

Esses casos de uso fornecem solicitações de exemplo para criar a política de autorização de negação para um aplicativo empresarial usando a API REST dos domínios de identidade.

Os seguintes casos de uso orientam você pelas etapas para criar a política de autorização de negação para um aplicativo empresarial usando a API REST de domínios de identidades:

Adicionar Política de Autorização de Recusa

A Política de Autorização de Recusa é adicionada automaticamente ao criar um aplicativo empresarial.

O id da política criada está disponível na resposta da seguinte forma:

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

Criar Condições da Política de Recusa de Autorização

O exemplo a seguir mostra como criar uma condição a ser avaliada enviando uma solicitação POST no recurso REST usando cURL. As condições são referenciadas nos Grupos de Condições. Para obter mais informações sobre o cURL, consulte Usar cURL.

comando cURL

Observação

O comando neste exemplo usa a estrutura de URL https://<domainURL>/resource-path, em que <domainURL> representa o URL do Serviço de Identidade, e o caminho do recurso representa a API do Serviço de Identidade. Consulte Enviar Solicitações para obter a estrutura de URL apropriada a ser usada.
   curl 
   -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Conditionss

Exemplo de Corpo da Solicitação - Condição do Grupo

Veja a seguir um exemplo do corpo da solicitação no formato JSON:

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

Exemplo do Corpo de Resposta - Condição do Grupo

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    }
}

Exemplo de Corpo da Solicitação - Usuário Fora da Condição

Veja a seguir um exemplo do corpo da solicitação no formato JSON:

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

Exemplo de Corpo da Resposta - Usuário Fora da Condição

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    }
}

Exemplo de Corpo da Solicitação - Condição da Função do Administrador

Veja a seguir um exemplo do corpo da solicitação no 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\"]"
}

Exemplo de Corpo da Resposta - Condição da Função do Administrador

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    }
}

Exemplo de Corpo da Solicitação - Condição do Perímetro de Rede

Veja a seguir um exemplo do corpo da solicitação no formato JSON:

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

Exemplo de Corpo da Resposta - Condição do Perímetro de Rede

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    }
}

Criar Grupo de Condições da Política de Recusa de Autorização

O exemplo a seguir mostra como criar um grupo de condições a ser avaliado enviando uma solicitação POST no recurso REST usando cURL. Os grupos de condições são referenciados de uma Regra. Para obter mais informações sobre o cURL, consulte Usar cURL.

comando cURL

Observação

O comando neste exemplo usa a estrutura de URL https://<domainURL>/resource-path, em que <domainURL> representa o URL do Serviço de Identidade, e o caminho do recurso representa a API do Serviço de Identidade. Consulte Enviar Solicitações para obter a estrutura de URL apropriada a ser usada.
   curl -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/ConditionGroupss

Exemplo de Corpo da Solicitação

Veja a seguir um exemplo do corpo da solicitação no 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"
      }
   ]
}

Exemplo do Corpo de Resposta

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    ]
}

Criar Regra de Política de Recusa de Autorização

O exemplo a seguir mostra como criar uma regra enviando uma solicitação POST no recurso REST usando cURL. Para obter mais informações sobre o cURL, consulte Usar cURL.

comando cURL

Observação

O comando neste exemplo usa a estrutura de URL https://<domainURL>/resource-path, em que <domainURL> representa o URL do Serviço de Identidade, e o caminho do recurso representa a API do Serviço de Identidade. Consulte Enviar Solicitações para obter a estrutura de URL apropriada a ser usada.
   curl -X POST
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>" https://<domainURL>/admin/v1/Rules

Exemplo de Corpo da Solicitação

Veja a seguir um exemplo do corpo da solicitação no 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"
    }
}

Exemplo do Corpo de Resposta

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    ]
}

Atualizar Referência da Regra da Política de Recusa de Autorização

O exemplo a seguir mostra como atualizar valores de uma política enviando uma solicitação PATCH no recurso REST usando o cURL. Para obter mais informações sobre o cURL, consulte Usar cURL.

comando cURL

Observação

O comando neste exemplo usa a estrutura de URL https://<domainURL>/resource-path, em que <domainURL> representa o URL do Serviço de Identidade, e o caminho do recurso representa a API do Serviço de Identidade. Consulte Enviar Solicitações para obter a estrutura de URL apropriada a ser usada.
   curl -X PATCH
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>" https://<domainURL>/admin/v1/Policies/<ID>

Exemplo de Corpo da Solicitação

Veja a seguir um exemplo do corpo da solicitação no formato JSON:

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

Exemplo do Corpo de Resposta

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    ]
}

Atualizar Referência de Recurso do Aplicativo para Política de Autorização de Recusa

O exemplo a seguir mostra como atualizar valores de um aplicativo enviando uma solicitação PATCH no recurso REST usando o cURL. Para obter mais informações sobre o cURL, consulte Usar cURL.

comando cURL

Observação

O comando neste exemplo usa a estrutura de URL https://<domainURL>/resource-path, em que <domainURL> representa o URL do Serviço de Identidade, e o caminho do recurso representa a API do Serviço de Identidade. Consulte Enviar Solicitações para obter a estrutura de URL apropriada a ser usada.
   curl -X PATCH
   -H "Content-Type:application/scim+json"
   -H "Authorization: Bearer <Access Token Value>"https://<domainURL>/admin/v1/Apps/<ID>

Exemplo de Corpo da Solicitação

Veja a seguir um exemplo do corpo da solicitação no 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>"            
      }
   ]
}

Exemplo do Corpo de Resposta

O exemplo a seguir mostra o conteúdo do corpo da resposta no 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"
    ]
}