Integra com o Arquivo Simples

Pré-requisitos

Antes de instalar e configurar um sistema orquestrado de Arquivo Simples, você deve considerar os pré-requisitos e tarefas a seguir.

Componentes Certificados

O sistema deve ser o seguinte:

  • Arquivo Simples CSV localizado no Oracle Cloud Infrastructure (OCI) Object Storage em sua tenancy

Modos Suportados

O sistema orquestrado de Arquivo Simples suporta os seguintes modos:
  • Origem Autorizada
  • Sistema Gerenciado

Operações Suportadas

O sistema orquestrado Arquivo Simples suporta as seguintes operações:
  • Criar Conta
  • Excluir Conta
  • Adicionar Direito
  • Remover Direito

Criar um bucket no serviço OCI Object Storage para Operações do Sistema Orquestrado de Arquivo Simples

Para carregar um arquivo simples no Oracle Access Governance, você precisa colocar os arquivos de dados em um bucket criado usando o serviço OCI Object Storage. Esse bucket pode ser criado em qualquer compartimento da sua tenancy do OCI. Para obter detalhes sobre o OCI Object Storage, consulte Gerenciando Buckets.

Para acessar o bucket, você precisa criar um usuário de serviço que tenha acesso de leitura, gravação e exclusão (privilégios manage) ao bucket. Siga este processo para criar este usuário de serviço:

  • Criar um compartimento, accessgovernance/
  • Crie um usuário de identidades local, agcs_user em qualquer domínio da sua tenancy.
  • Crie um grupo de identidades, agcs_flatfilegroup em qualquer domínio da sua tenancy.
  • Designe o usuário de identidades agcs_user ao grupo de identidades agcs_flatfilegroup.
  • Crie uma política, agcs_flatfilepolicy, com a seguinte instrução de política:
    allow group <groupname> to manage objects in compartment <compartmentname>
        where target.bucket.name = 'bucketname'

    Por exemplo:

    allow group agcs_flatfilegroup to manage objects in compartment accessgovernance
        where target.bucket.name = 'bucket-20231130-1143'

Configurar

Você pode estabelecer uma conexão entre o Arquivo Simples e o Oracle Access Governance informando os detalhes da conexão. Para isso, use a funcionalidade Sistemas Orquestrados disponível na Console do Oracle Access Governance.

Navegar até a Página Sistemas Orquestrados

Navegue até a página Sistemas Orquestrados da Console do Oracle Access Governance, seguindo estas etapas:
  1. No ícone Menu de navegação do menu de navegação do Oracle Access Governance, selecione Administração de Serviço → Sistemas Orquestrados.
  2. Selecione o botão Adicionar um sistema orquestrado para iniciar o workflow.

Selecionar sistema

Na etapa Selecionar sistema do workflow, você pode especificar qual tipo de sistema gostaria de integrar.

  1. Selecione Arquivo Simples.
  2. Clique em Avançar.

Informar detalhes

Na etapa Adicionar Detalhes do workflow, informe os detalhes do sistema orquestrado:
  1. Informe um nome para o sistema ao qual você deseja se conectar no campo Nome.
  2. Informe uma descrição para o sistema no campo Descrição.
  3. Decida se esse sistema orquestrado é uma origem autorizada e se o Oracle Access Governance pode gerenciar permissões definindo as caixas de seleção a seguir.
    • Esta é a origem autoritativa das minhas Identidades

      Selecione uma das opções:

      • Origem de identidades e seus atributos: O sistema atua como uma identidade de origem e atributos associados. Novas identidades são criadas através desta opção.
      • Somente origem de atributos de identidade: O sistema ingere detalhes adicionais de atributos de identidade e se aplica a identidades existentes. Esta opção não ingere nem cria novos registros de identidade.
    • Desejo gerenciar permissões para este sistema
    O valor padrão em cada caso é Desmarcado.
  4. Selecione Próximo.

Adicionar Proprietários

Você pode associar a propriedade do recurso adicionando proprietários principais e adicionais. Isso impulsiona o autoatendimento, pois esses proprietários podem gerenciar (ler, atualizar ou excluir) os recursos de sua propriedade. Por padrão, o criador do recurso é designado como o proprietário do recurso. Você pode atribuir um proprietário principal e até 20 proprietários adicionais para os recursos.
Observação

Ao configurar o primeiro Sistema Orquestrado para sua instância de serviço, você só poderá designar proprietários depois de ativar as identidades na seção Gerenciar Identidades.
Para adicionar proprietários:
  1. Selecione um usuário ativo do Oracle Access Governance como o proprietário principal no campo Quem é o proprietário principal?.
  2. Selecione um ou mais proprietários adicionais na lista Quem mais possui?. Você pode adicionar até 20 proprietários adicionais para o recurso.
Você pode exibir o Proprietário Principal na lista. Todos os proprietários podem visualizar e gerenciar os recursos que possuem.

Definições da conta

Na etapa Configurações da conta do workflow, informe como você deseja que o Oracle Access Governance gerencie contas quando o sistema for configurado como um sistema gerenciado:
  1. Quando uma permissão for solicitada e a conta ainda não existir, selecione esta opção para criar novas contas. Esta opção é selecionada por padrão. Quando selecionada, o Oracle Access Governance criará uma conta se uma não existir quando uma permissão for solicitada. Se você desmarcar essa opção, as permissões serão provisionadas somente para contas existentes no sistema orquestrado. Se não existir uma conta, a operação de provisionamento falhará.
  2. Selecione os destinatários dos e-mails de notificação quando uma conta for criada. O destinatário padrão é Usuário. Se nenhum destinatário for selecionado, as notificações não serão enviadas quando as contas forem criadas.
    • Usuário
    • Gerente de usuários
  3. Configurar Contas Existentes
    Observação

    Você só poderá definir essas configurações se permitido pelo administrador do sistema. Quando as configurações globais de encerramento de conta estão ativadas, os administradores de aplicativos não podem gerenciar as configurações de encerramento de conta no nível do sistema orquestrado.
    1. Selecionar o que fazer com contas quando o desligamento antecipado começar: Escolha a ação a ser executada quando um desligamento antecipado começar. Isso acontece quando você precisa revogar os acessos de identidade antes da data de desligamento oficial.
      • Excluir: Exclui todas as contas e permissões gerenciadas pelo Oracle Access Governance.
        Observação

        Se um sistema orquestrado específico não suportar a ação, nenhuma ação será executada.
      • Desativar: Desativa todas as contas e desativa as permissões gerenciadas pelo Oracle Access Governance.
        • Excluir as permissões para contas desativadas: para garantir zero acesso residual, selecione esta opção para excluir permissões designadas diretamente e permissões concedidas pela política durante a desativação da conta.
      • Nenhuma ação: Nenhuma ação é tomada quando uma identidade é sinalizada para encerramento antecipado pelo Oracle Access Governance.
    2. Selecionar o que fazer com contas na data de desligamento: Selecione a ação a ser executada durante o desligamento oficial. Isso acontece quando você precisa revogar os acessos de identidade na data de desligamento oficial.
      • Excluir: Exclui todas as contas e permissões gerenciadas pelo Oracle Access Governance.
        Observação

        Se um sistema orquestrado específico não suportar a ação Excluir, nenhuma ação será executada.
      • Desativar: Desativa todas as contas e desativa as permissões gerenciadas pelo Oracle Access Governance.
        • Excluir as permissões para contas desativadas: para garantir zero acesso residual, selecione esta opção para excluir permissões designadas diretamente e permissões concedidas pela política durante a desativação da conta.
        Observação

        Se um sistema orquestrado específico não suportar a ação Desativar, a conta será excluída.
      • Nenhuma ação: Nenhuma ação é tomada sobre contas e permissões pelo Oracle Access Governance.
  4. Quando uma identidade sai da sua empresa, você deve remover o acesso às suas contas.
    Observação

    Você só poderá definir essas configurações se permitido pelo administrador do sistema. Quando as configurações globais de encerramento de conta estão ativadas, os administradores de aplicativos não podem gerenciar as configurações de encerramento de conta no nível do sistema orquestrado.

    Selecione uma das seguintes ações para a conta:

    • Excluir: Exclui todas as contas e permissões gerenciadas pelo Oracle Access Governance.
    • Desativar: Desative todas as contas e marque as permissões como inativas.
      • Excluir as permissões para contas desativadas: Exclua permissões atribuídas diretamente e concedidas por política durante a desativação da conta para garantir zero acesso residual.
    • Nenhuma ação: Não execute nenhuma ação quando uma identidade sair da organização.
    Observação

    Essas ações só estarão disponíveis se forem suportadas pelo tipo de sistema orquestrado. Por exemplo, se Excluir não for suportado, você verá apenas as opções Desativar e Nenhuma ação.
  5. Quando todas as permissões de uma conta são removidas, por exemplo, quando uma identidade se move entre departamentos, você pode precisar decidir o que fazer com a conta. Selecione uma das seguintes ações, se for suportada pelo tipo de sistema orquestrado:
    • Excluir
    • Desativar
    • Nenhuma ação
  6. Gerenciar contas que não foram criadas pelo Access Governance: Selecione para gerenciar contas que são criadas diretamente no sistema orquestrado. Com isso, você pode reconciliar contas existentes e gerenciá-las no Oracle Access Governance.
Observação

Se você não configurar o sistema como um sistema gerenciado, essa etapa do workflow será exibida, mas não será ativada. Nesse caso, você vai diretamente para a etapa Configurações de integração do workflow.
Observação

Se seu sistema orquestrado exigir descoberta dinâmica de esquema, como nas integrações REST Genérico e Tabelas de Aplicativos de Banco de Dados, somente o destino do e-mail de notificação poderá ser definido (Usuário, Usermanager) ao criar o sistema orquestrado. Não é possível definir as regras de desativação/exclusão para movers e leavers. Para fazer isso, você precisa criar o sistema orquestrado e, em seguida, atualizar as definições da conta conforme descrito em Configurar Definições da Conta do Sistema Orquestrado.

Definições de integração

Na etapa Definições de integração do workflow, informe os detalhes de configuração necessários para permitir que o Oracle Access Governance se conecte ao Arquivo Simples.

  1. No campo Qual é o OCID do usuário do OCI?, adicione o OCID do usuário do OCI que possui o bucket que contém os arquivos simples que você deseja integrar.
  2. Em Qual é a impressão digital da chave de API do usuário da OCI?. Digite a impressão digital da chave de API do usuário do OCU. Consulte Chaves e OCIDs Obrigatórios na documentação do OCI para obter detalhes sobre como obter o valor para isso.
  3. Informe a chave de API privada do usuário, no formato PEM, no campo Qual é a chave de API privada do usuário do OCI no formato PEM?. Consulte Chaves e OCIDs Obrigatórios na documentação do OCI para obter detalhes sobre como obter o valor para isso.
  4. Informe a tenancy no campo O que é a tenancy da OCI do usuário da OCI?.
  5. Digite o código da região home da tenancy no campo Qual é o código da região home da tenancy do OCI?. Detalhes dos códigos de região podem ser encontrados na documentação do OCI Regions and Availability Domains.
  6. Digite o namespace do bucket da tenancy no campo Qual é o namespace do bucket?.
  7. No campo Informe o nome do bucket no qual seu arquivo simples está armazenado no armazenamento de objetos do OCI, informe o nome do bucket no qual seu arquivo simples está armazenado no armazenamento de objetos do OCI.
  8. Informe a codificação no campo Codificação. O valor padrão é UTF-8.
  9. No campo Delimitador do Campo, informe o caractere do delimitador do campo usado no Arquivo Simples. O padrão é ,.
  10. No campo Delimitador do Subcampo, informe o caractere delimitador do subcampo usado no Arquivo Simples. O padrão é #.
  11. No campo Delimitador MultiValue, informe o caractere de delimitador com vários valores usado no Arquivo Simples. O padrão é ;.
  12. No campo Qualificador de Texto, informe o caractere usado no Arquivo Simples para agir como um qualificador de texto. O padrão é ".
  13. No campo Formato de Data, informe o formato de dados Java no qual os campos de tipo de data são incluídos no Arquivo Simples, por exemplo, dd/MM/yyyy. Se nenhum formato de data for especificado, o campo de data será considerado como sendo do tipo Longo.
  14. Se quiser verificar a conectividade com seu Arquivo Simples, clique no botão Testar integração.
  15. Clique em Adicionar para criar o sistema orquestrado.

Finalizar

Por fim, se você tiver ativado os Sistemas Virtuais, primeiro precisará definir e fazer upload do arquivo CSV dos subsistemas e, em seguida, ativar o sistema orquestrado. Selecione Concluído.

Se os sistemas virtuais estiverem desativados, você poderá ativar o sistema orquestrado ou salvá-lo apenas como rascunho.

Fazer Upload do Arquivo CSV

Se você tiver ativado sistemas virtuais, faça upload de um arquivo CSV com ID e Nome para os sistemas. Você pode adicionar até 100 sistemas virtuais.

Por exemplo:

ID Nome
virtual_ad_123 Alfa
virtual_ad_456 Beta
virtual_ad_789 Gama
  • O nome do sistema virtual não deve conter os seguintes caracteres especiais `~!@#$%^&*><".
  • Caracteres especiais não são permitidos para ID ou Nome.
  • O nome dos Sistemas Virtuais deve ser exclusivo em todos os sistemas orquestrados.
  • Os IDs devem ser exclusivos para esse sistema orquestrado.

Selecione o botão Atualizar para adicionar uma versão mais recente dos sistemas virtuais.

Não é possível excluir sistemas virtuais existentes, mas eles podem ser atualizados. Para gerenciar sistemas virtuais após a criação, consulte Gerenciar Sistemas Virtuais.

Pós-Configuração

Verificar Estrutura da Pasta do Bucket

Após a criação do sistema orquestrado, a estrutura de pastas a seguir deverá ser criada no bucket definido.

<ServiceInstanceName>/<OrchestratedSystemName>
    failed //Same sub-folders to be created as inbox
    inbox/
	IDENTITY/
		virtual-sys-1
		virtual-sys-2
		virtual-sys-3
	PERMISSION/
		virtual-sys-1
		virtual-sys-2
		virtual-sys-3
	TARGETACCOUNT/
		virtual-sys-1
		virtual-sys-2
		virtual-sys-3
    outbox/
	Same sub-folders to be created as inbox
    sample/
    schema/
Observação

As subpastas, como virtual-sys-1, virtual-sys-2 e assim por diante, são criadas somente quando os sistemas virtuais estão ativados.
Essas pastas atendem aos seguintes propósitos:
  • failed : Os arquivos com qualquer tipo de problema de dados serão movidos para essa pasta na respectiva pasta de entidades, no caso de uma falha na operação de carregamento de dados.
  • inbox : Contém pastas IDENTITY, PERMISSION e TARGETACCOUNT, cada uma contendo pastas de sistemas virtuais, referenciadas por ID. Coloque os arquivos CSV na pasta de sistemas virtuais para incluir na operação de carregamento de dados. Se você não tiver selecionado sistemas virtuais durante a configuração, coloque diretamente seus arquivos de dados nas pastas IDENTITY, PERMISSION e TARGETACCOUNT.
  • outbox : Provisionando eventos para cada entidade do sistema orquestrado.
  • sample : Contém exemplos de CSVs com o cabeçalho esperado. Estes podem ser usados como referência para gerar dados e colocar na caixa de entrada para carregamento de dados. Esses arquivos não devem ser alterados.
  • schema : Contém a representação JSON do esquema de cada entidade. Isso pode ser consultado para entender detalhes como:
    • dataType
    • Atributos obrigatórios
    • Se um atributo tem vários valores ou não
    • Se o atributo for complexo e tiver atributos aninhados (dataType será CUSTOM)
    • O dataTypes suportado é:
      • TEXTO
      • NUMBER
      • DECIMAL_NUMBER
      • DATE
      • Indicador
      • PERSONALIZADO

Definir Atributos Personalizados

São suportados atributos personalizados para a entidade IDENTITY. Se quiser incluir atributos personalizados em sua carga de dados, será necessário adicioná-los ao arquivo <ServiceInstanceName>/<OrchestratedSystemName>/schema/IDENTITY.json.

Os nomes de atributos personalizados devem atender aos seguintes requisitos:
  • começar com um caractere: A-Z ou a-z
  • conter apenas caracteres ou números: A-Z, a-z ou 0-9
  • Para o atributo de tipo DATE, apenas um valor longo é suportado
  • Os atributos personalizados só podem ser adicionados; eles não podem ser excluídos
  • Não é possível adicionar um atributo personalizado do tipo CUSTOM

Depois de adicionar qualquer atributo personalizado no arquivo IDENTITY.json, você precisará incluí-lo no Oracle Access Governance conforme descrito em Obter Atributos Personalizados Mais Recentes. Após a conclusão, o CSV de amostra será atualizado com o(s) atributo(s) personalizado(s) recém-adicionado(s). Atualize os arquivos de dados no inbox para incluir o(s) atributo(s) personalizado(s) no próximo carregamento de dados.

Executar Carga de Dados

O carregamento de dados está sob demanda. Sempre execute o carregamento de dados depois de definir atributos personalizados ou adicionar os arquivos de dados CSV relevantes à pasta inbox. Cada vez que você executa um carregamento de dados, ele é um carregamento de dados completo, não há carregamento incremental. A codificação UTF-8-BOM não é suportada.

Se houver qualquer tipo de falha (falha de registro único ou de arquivo completo), a operação de carregamento de dados será marcada como falha. Os arquivos que foram processados com sucesso permanecerão no inbox enquanto os arquivos com falha serão movidos para a pasta failed. Corrija o problema de dados e coloque os arquivos novamente na pasta inbox.

Problemas de integridade de dados, como uma permissão que está sendo atribuída a uma conta ausente no CSV, também podem causar falha na operação de carregamento de dados. No entanto, nesses casos, os arquivos CSV não são movidos para a pasta failed. Os arquivos são movidos para a pasta failed somente quando há problemas ao ler os dados em si, como dados obrigatórios ausentes.

Extensão do Esquema - Adicionando Atributos da Conta Personalizada

Você pode configurar atributos de conta para seu sistema orquestrado de Arquivo Simples, além dos atributos de conta padrão compatíveis prontos para uso. Detalhes de atributos de conta e como eles são gerenciados podem ser encontrados em Atributos de Conta e Configurar Atributos de Conta.

Extensão do Esquema - Exemplo de Atributo Simples

Para demonstrar como adicionar um atributo de conta simples, vamos analisar o exemplo de adição de um atributo de número de telefone ao seu esquema de Arquivo Simples.

Suponha que você tenha uma configuração de Dia 0 do seu sistema orquestrado de Arquivo Simples que tenha os seguintes atributos por padrão:
  • commonName
  • displayName
  • e-mail
  • firstName
  • lastName
  • middleName
  • __NOME__
  • permissões
  • __ATIVAR__
  • título
  • __UID__
Um exemplo de TARGETACCOUNT.csv seria:
__NAME__,firstName,lastName,middleName,displayName,commonName,title,__ENABLE__,email,permissions
Um exemplo de TARGETACCOUNT.json seria:
[
    {
        "name": "displayName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "permissions",
        "dataType": "CUSTOM",
        "required": false,
        "multiValued": true,
        "subAttributes": [
            {
                "name": "__NAME__",
                "dataType": "TEXT",
                "required": true,
                "idAttribute": true
            }
        ]
    },
    {
        "name": "middleName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "lastName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "commonName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "firstName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "__NAME__",
        "dataType": "TEXT",
        "required": true,
        "multiValued": false
    },
    {
        "name": "title",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "email",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "__ENABLE__",
        "dataType": "FLAG",
        "required": false,
        "multiValued": false
    }
]
Para adicionar um atributo de conta personalizado, phoneNumber, conclua as etapas detalhadas em Configurar Atributos de Conta, por exemplo:
  1. Crie um atributo fornecido pelo sistema, phoneNumber, e selecione as opções incluídas nos dados de entrada e saída, além de suportar vários valores.
  2. Adicione o novo atributo ao TARGETACCOUNT.csv e ao TARGETACCOUNT.json.
    __NAME__,firstName,lastName,middleName,displayName,commonName,title,__ENABLE__,email,permissions,phoneNumber
                                    
    [
        {
            "name": "displayName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "permissions",
            "dataType": "CUSTOM",
            "required": false,
            "multiValued": true,
            "subAttributes": [
                {
                    "name": "__NAME__",
                    "dataType": "TEXT",
                    "required": true,
                    "idAttribute": true
                }
            ]
        },
        {
            "name": "phoneNumber",
            "dataType": "TEXT",
            "required": false,
            "multiValued": true
        },
        {
            "name": "firstName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "email",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "__ENABLE__",
            "dataType": "FLAG",
            "required": false,
            "multiValued": false
        },
        {
            "name": "middleName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "lastName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "commonName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "__NAME__",
            "dataType": "TEXT",
            "required": true,
            "multiValued": false
        },
        {
            "name": "title",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        }
    ]
  3. Acionar uma carga de dados completa da Console do Oracle Access Governance. O novo atributo personalizado deve ser carregado e fica visível no Enterprise Wide Browser.

Extensão do Esquema - Exemplo de Atributo Complexo

Para demonstrar como adicionar um atributo de conta complexo, vamos analisar o exemplo de adição de outro atributo de detalhes de contato ao seu esquema de Arquivo Simples.

Suponha que você tenha uma configuração de Dia 0 do seu sistema orquestrado de Arquivo Simples que tenha os seguintes atributos por padrão:
  • commonName
  • displayName
  • e-mail
  • firstName
  • lastName
  • middleName
  • __NOME__
  • permissões
  • __ATIVAR__
  • título
  • __UID__
Um exemplo de TARGETACCOUNT.csv seria:
__NAME__,firstName,lastName,middleName,displayName,commonName,title,__ENABLE__,email,permissions
Um exemplo de TARGETACCOUNT.json seria:
[
    {
        "name": "displayName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "permissions",
        "dataType": "CUSTOM",
        "required": false,
        "multiValued": true,
        "subAttributes": [
            {
                "name": "__NAME__",
                "dataType": "TEXT",
                "required": true,
                "idAttribute": true
            }
        ]
    },
    {
        "name": "middleName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "lastName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "commonName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "firstName",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "__NAME__",
        "dataType": "TEXT",
        "required": true,
        "multiValued": false
    },
    {
        "name": "title",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "email",
        "dataType": "TEXT",
        "required": false,
        "multiValued": false
    },
    {
        "name": "__ENABLE__",
        "dataType": "FLAG",
        "required": false,
        "multiValued": false
    }
]
Para adicionar um atributo de conta personalizado, otherContactDetails com , conclua as etapas detalhadas em Configurar Atributos de Conta, por exemplo:
  1. Crie um atributo fornecido pelo sistema, otherContactDetails, com os seguintes atributos filhos:
    • contactDetailsId
    • faxNumber
    • site
    e selecione as opções incluídas nos dados de entrada e saída, além de oferecer suporte a vários valores.
  2. Adicione o novo atributo ao TARGETACCOUNT.csv e ao TARGETACCOUNT.json.
    __NAME__,firstName,lastName,middleName,displayName,commonName,title,__ENABLE__,email,permissions,phoneNumber,otherContactDetails.contactDetailsId,otherContactDetails.faxNumber,otherContactDetails.website
                                    
    [
        {
            "name": "displayName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "permissions",
            "dataType": "CUSTOM",
            "required": false,
            "multiValued": true,
            "subAttributes": [
                {
                    "name": "__NAME__",
                    "dataType": "TEXT",
                    "required": true,
                    "idAttribute": true
                }
            ]
        },
        {
            "name": "firstName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "email",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "__ENABLE__",
            "dataType": "FLAG",
            "required": false,
            "multiValued": false
        },
        {
            "name": "middleName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "lastName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "commonName",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "title",
            "dataType": "TEXT",
            "required": false,
            "multiValued": false
        },
        {
            "name": "__NAME__",
            "dataType": "TEXT",
            "required": true,
            "multiValued": false
        },
        {
            "name": "otherContactDetails",
            "dataType": "CUSTOM",
            "required": false,
            "multiValued": true,
            "subAttributes": [
                {
                    "name": "faxNumber",
                    "dataType": "NUMBER",
                    "required": false
                },
                {
                    "name": "contactDetailsId",
                    "dataType": "TEXT",
                    "required": true,
                    "idAttribute": true
                },
                {
                    "name": "website",
                    "dataType": "TEXT",
                    "required": false
                }
            ]
        }
    ]
  3. Acionar uma carga de dados completa da Console do Oracle Access Governance. O novo atributo personalizado deve ser carregado e fica visível no Enterprise Wide Browser.

Suporte a Afiliações com Extensão do Esquema de Identidade - Adicionando Atributos de Identidade Complexos Personalizados

Você pode configurar atributos de identidade para seu sistema orquestrado de Arquivo Simples, além dos atributos de identidade padrão. Para saber mais sobre Afiliações, consulte Tratando Personas de Identidade com Afiliações.

No Dia 0, para IDENTITY.csv, todas as entidades configuradas no armazenamento de objetos incluem os atributos simples. Para o Dia N, você pode estender o esquema existente e adicionar mais atributos simples.

Extensão do Esquema - Exemplo de Atributo Complexo

Incluir atributo personalizado, que é um atributo de tipo de objeto que contém um ou mais subatributos, você precisa de modificação adicional no esquema de Identidade. Para demonstrar como adicionar um atributo de identidade complexo, vamos analisar o exemplo de adição de um atributo de endereço ao seu esquema de Arquivo Simples.

Suponha que você tenha uma configuração Day 0 do seu sistema orquestrado de Arquivo Simples que tenha os seguintes atributos por padrão:

Um exemplo de IDENTITY.csv seria:
__UID__, __NAME__,firstName,lastName,middleName,displayName,title,__ENABLE__,email,empNo,employeeType.... other columns
Na pasta Esquema, a amostra IDENTITY.json contém o seguinte:
[
  {
    "name": "displayName",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "postalCode",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "location",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "employeeType",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "managerUid",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "territory",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "state",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "firstName",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "department",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "UID",
    "dataType": "TEXT",
    "required": true,
    "multiValued": false
  },
  {
    "name": "email",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "ENABLE",
    "dataType": "FLAG",
    "required": false,
    "multiValued": false
  },
  {
    "name": "employeeNumber",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "middleName",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "country",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "lastName",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "jobCode",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "organizationName",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "title",
    "dataType": "TEXT",
    "required": false,
    "multiValued": false
  },
  {
    "name": "NAME",
    "dataType": "TEXT",
    "required": true,
    "multiValued": false
  }
]

Para adicionar um atributo complexo personalizado:

  1. Estenda o esquema no arquivo IDENTITY.json.
    {
            "name": "userAddresses", // Name of the custom-complex attribute
            "dataType": "CUSTOM", // CUSTOM data type represents that it has sub attributes
            "required": false, // Denotes whether it is a mandatory attribute or not 
            "multiValued": true, // Custom-complex attribute has to be multivalued
            "subAttributes": [ // The list of sub attributes
                {
                    "name": "postalCode", // Name of child attribute
                    "dataType": "TEXT", // The data type of attribute, the supported data types are TEXT, NUMBER, DECIMAL_NUMBER, DATE and FLAG
                    "required": true //  Denotes whether it is a mandatory sub attribute or not  
                },
                {
                    "name": "addressTwo",
                    "dataType": "TEXT",
                    "required": false
                },
                {
                    "name": "landmark",
                    "dataType": "TEXT",
                    "required": false
                },
                {
                    "name": "city",
                    "dataType": "TEXT",
                    "required": true
                },
                {
                    "name": "houseNo",
                    "dataType": "TEXT",
                    "required": true
                },
                {
                    "name": "addressId", // Name of Identifier attribute.
                    "dataType": "TEXT", // Identifier attribute should be of TEXT data type.
                    "required": true, // Identifier attribute should always be mandatory.
                    "idAttribute": true // Denotes if the sub-attribute acts as the identifier. There should always be exact one such sub-attribute in a custom complex attribute.
                },
                {
                    "name": "addressOne",
                    "dataType": "TEXT",
                    "required": true
                }
            ]
        }
  2. Depois de fazer as alterações acima em IDENTITY.json,
  3. Confirme os cabeçalhos CSV IDENTITY.csv
    __UID__,__NAME__,firstName,lastName,.... other columns
                    .....,userAddresses.addressId,userAddresses.postalCode,userAddresses.addressTwo,userAddresses.landmark,userAddresses.city,userAddresses.houseNo,userAddresses.addressOne

    Os atributos simples aparecem como colunas separadas por vírgulas no cabeçalho CSV. Atributos complexos personalizados usam uma estrutura simples: cada subatributo é incluído no cabeçalho com seu atributo pai, separado por notação de ponto (.).

Entrada de Valor Único para Atributo Personalizado Complexo

A entrada de dados para um atributo complexo precisa ser feita da seguinte maneira em um CSV.

                                userAddresses.addressId,userAddresses.postalCode,userAddresses.addressTwo,userAddresses.landmark,userAddresses.city,userAddresses.houseNo,userAddresses.addressOne
101,200200,,Near St. Thomas Church,Boston,23/78,The Galaxy Garden
  • Certifique-se de incluir os cabeçalhos de coluna corretos.
  • Para campos vazios (como addressTwo), inclua um valor em branco entre vírgulas.
Dados Resultantes do Usuário
[
    {
        "addressId": "101",
        "postalCode": "200200",
        "addressTwo": null,
        "landmark": "Near St. Thomas Church",
        "city": "Boston",
        "houseNo": "23/78",
        "addressOne": "The Galaxy Garden"
    }
]

Entrada com Vários Valores para Atributo Personalizado Complexo

Ao lidar com entradas de vários valores, use um ponto-e-vírgula (;) para separar vários valores para cada subatributo. O CSV a seguir mostra a representação correta para o endereço com vários valores. Cada linha no CSV representa um usuário com potencialmente várias entradas de endereço

                            userAddresses.addressId,userAddresses.postalCode,userAddresses.addressTwo,userAddresses.landmark,userAddresses.city,userAddresses.houseNo,userAddresses.addressOne
101;102,200200;300400,;3rd Street,Near St. Thomas Church;,Boston;Denver,23/78;B-003,The Galaxy Garden;The Technology Park
  • Para dados ausentes, deixe o valor entre delimitadores em branco, para o primeiro endereço, addressTwo está vazio)
  • Os valores de cada atributo correspondem por posição: o primeiro valor para cada atributo forma o primeiro endereço, o segundo valor forma o segundo endereço e assim por diante.
Dados Resultantes do Usuário
[
    {
        "addressId": "101",
        "postalCode": "200200",
        "addressTwo": null,
        "landmark": "Near St. Thomas Church",
        "city": "Boston",
        "houseNo": "23/78",
        "addressOne": "The Galaxy Garden"
    },
    {
        "addressId": "102",
        "postalCode": "300400",
        "addressTwo": "3rd Street",
        "landmark": null,
        "city": "Denver",
        "houseNo": "B-003",
        "addressOne": "The Technology Park"
    }
]