Criando um Aplicativo Empresarial 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 de 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
- Criar um Recurso de Aplicativo
- Atualizar a Referência do ID do Recurso do Aplicativo em um Aplicativo Empresarial
- Adicionar Política de Camada Web a um Aplicativo Empresarial
- Criando um Aplicativo Empresarial com Política de Autorização
- Criar Política de Autorização de Negação
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 a cURL, consulte Usar cURL.
Comando cURL
O comando neste exemplo usa a estrutura de URL
https://<domainURL>/resource-path, na qual <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
O id do modelo deve ser mapeado para o modelo de aplicativo Enterprise.
Exemplo de Corpo da Solicitação
O exemplo a seguir mostra um exemplo do corpo de 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 a cURL, consulte Usar cURL.
Comando cURL
O comando neste exemplo usa a estrutura de URL
https://<domainURL>/resource-path, na qual <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
Substitua o placeholder
{{appid}} pelo id do aplicativo da resposta de criação do aplicativo.Exemplo de Corpo da Solicitação
O exemplo a seguir mostra um exemplo do corpo de 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 para um aplicativo enviando uma solicitação PATCH no recurso REST usando cURL. Para obter mais informações sobre a cURL, consulte Usar cURL.
Comando cURL
O comando neste exemplo usa a estrutura de URL
https://<domainURL>/resource-path, na qual <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
O exemplo a seguir mostra um exemplo do corpo de 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 de Camada Web a um Aplicativo Empresarial
O exemplo a seguir mostra como atualizar valores para um aplicativo enviando uma solicitação PATCH no recurso REST usando cURL. Para obter mais informações sobre a cURL, consulte Usar cURL.
Comando cURL
O comando neste exemplo usa a estrutura de URL
https://<domainURL>/resource-path, na qual <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
O exemplo a seguir mostra um exemplo do corpo de 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 Política de Autorização de Permissão
Esses casos de uso fornecem exemplos de solicitações para criar a política de autorização de permissão para um aplicativo empresarial usando a API REST de domínios de identidades.
Os seguintes casos de uso orientam você pelas etapas para criar a política de autorização de permissão para um aplicativo empresarial usando a API REST de domínios de identidades:
- Adicionar Política de Autorização de Permissão
- Criar Condições da Política de Autorização de Permissão
- Criar Grupo de Condições da Política de Autorização de Permissão
- Criar Regra de Política de Autorização de Permissão
- Atualizar Referência da Regra da Política de Autorização de Permissão
- Atualizar Referência de Recurso do Aplicativo para Permitir Política de Autorização
Adicionar Política de Autorização de Permissão
A Política Permitir Autorização é adicionada automaticamente durante a criação de um aplicativo empresarial.
O ID de política criado 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 Autorização de Permissão
O exemplo a seguir mostra como criar uma condição a ser avaliada enviando uma solicitação POST no recurso REST usando o cURL. As condições são referenciadas em Grupos de Condições. Para obter mais informações sobre a cURL, consulte Usar cURL.
Comando cURL
O comando neste exemplo usa a estrutura de URL
https://<domainURL>/resource-path, na qual <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
O exemplo a seguir mostra um exemplo do corpo de 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 de Corpo da 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 Não Está na Condição
O exemplo a seguir mostra um exemplo do corpo de 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 de Resposta - Usuário Não Está na 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
O exemplo a seguir mostra um exemplo do corpo de 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 de 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
O exemplo a seguir mostra um exemplo do corpo de 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 de 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 Autorização de Permissã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 a cURL. Os grupos de condições são referenciados em uma Regra. Para obter mais informações sobre a cURL, consulte Usar cURL.
Comando cURL
O comando neste exemplo usa a estrutura de URL
https://<domainURL>/resource-path, na qual <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
O exemplo a seguir mostra um exemplo do corpo de 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 Política de Autorização de Permissão
O exemplo a seguir mostra como criar uma regra enviando uma solicitação POST no recurso REST usando o cURL. Para obter mais informações sobre a cURL, consulte Usar cURL.
Comando cURL
O comando neste exemplo usa a estrutura de URL
https://<domainURL>/resource-path, na qual <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
O exemplo a seguir mostra um exemplo do corpo de 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 da Política de Autorização de Permissão
O exemplo a seguir mostra como atualizar valores para uma política enviando uma solicitação PATCH no recurso REST usando cURL. Para obter mais informações sobre a cURL, consulte Usar cURL.
Comando cURL
O comando neste exemplo usa a estrutura de URL
https://<domainURL>/resource-path, na qual <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
O exemplo a seguir mostra um exemplo do corpo de 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 para um aplicativo enviando uma solicitação PATCH no recurso REST usando cURL. Para obter mais informações sobre a cURL, consulte Usar cURL.
Comando cURL
O comando neste exemplo usa a estrutura de URL
https://<domainURL>/resource-path, na qual <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
O exemplo a seguir mostra um exemplo do corpo de 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 Negação
Esses casos de uso fornecem exemplos de solicitações para criar a política de autorização de negação para um aplicativo empresarial usando a API REST de domínios de identidades.
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 Negação
- Criar Condições da Política de Autorização de Negação
- Criar Grupo de Condições da Política de Autorização de Negação
- Criar Regra de Política de Autorização de Negação
- Atualizar Referência da Regra da Política de Autorização de Negação
- Atualizar Referência de Recurso do Aplicativo para Política de Autorização de Negação
Adicionar Política de Autorização de Negação
A Política de Autorização de Negação é adicionada automaticamente durante a criação de um aplicativo empresarial.
O id de política criado 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 Autorização de Negação
O exemplo a seguir mostra como criar uma condição a ser avaliada enviando uma solicitação POST no recurso REST usando o cURL. As condições são referenciadas em Grupos de Condições. Para obter mais informações sobre a cURL, consulte Usar cURL.
Comando cURL
O comando neste exemplo usa a estrutura de URL
https://<domainURL>/resource-path, na qual <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
O exemplo a seguir mostra um exemplo do corpo de 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 de Corpo da 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 Não Está na Condição
O exemplo a seguir mostra um exemplo do corpo de 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 de Resposta - Usuário Não Está na 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
O exemplo a seguir mostra um exemplo do corpo de 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 de 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
O exemplo a seguir mostra um exemplo do corpo de 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 de 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 Autorização de Negaçã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 a cURL. Os grupos de condições são referenciados em uma Regra. Para obter mais informações sobre a cURL, consulte Usar cURL.
Comando cURL
O comando neste exemplo usa a estrutura de URL
https://<domainURL>/resource-path, na qual <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
O exemplo a seguir mostra um exemplo do corpo de 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 Autorização de Negação
O exemplo a seguir mostra como criar uma regra enviando uma solicitação POST no recurso REST usando o cURL. Para obter mais informações sobre a cURL, consulte Usar cURL.
Comando cURL
O comando neste exemplo usa a estrutura de URL
https://<domainURL>/resource-path, na qual <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
O exemplo a seguir mostra um exemplo do corpo de 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 Autorização de Negação
O exemplo a seguir mostra como atualizar valores para uma política enviando uma solicitação PATCH no recurso REST usando cURL. Para obter mais informações sobre a cURL, consulte Usar cURL.
Comando cURL
O comando neste exemplo usa a estrutura de URL
https://<domainURL>/resource-path, na qual <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
O exemplo a seguir mostra um exemplo do corpo de 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 Negação
O exemplo a seguir mostra como atualizar valores para um aplicativo enviando uma solicitação PATCH no recurso REST usando cURL. Para obter mais informações sobre a cURL, consulte Usar cURL.
Comando cURL
O comando neste exemplo usa a estrutura de URL
https://<domainURL>/resource-path, na qual <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
O exemplo a seguir mostra um exemplo do corpo de 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"
]
}