Observação:

Implementar Sign-On Único no Oracle Fusion Cloud Transportation Management 6.4.3

Introdução

Você pode integrar aplicativos aos domínios do Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) para ativar a autenticação e o Sign-On Único (SSO) por meio de vários métodos. Embora muitos aplicativos suportem protocolos padrão como SAML e OAuth, o Oracle Fusion Cloud Transportation Management (Oracle Transportation Management) suporta autenticação baseada em cabeçalho HTTP para SSO.

O gateway de aplicativo age como um proxy de autenticação entre o OCI IAM e o Oracle Transportation Management. Ele está disponível em duas opções de implantação: uma imagem do Docker e uma imagem de appliance virtual. Este tutorial se concentra na implantação e no uso da versão baseada no Docker.

Arquitetura de Solução.

Implementar o SSO ajuda a aproveitar os recursos de segurança do OCI IAM, incluindo MFA, segurança adaptável, políticas de sign-on e assim por diante. Isso ajuda a impor uma camada adicional de controle de acesso para proteger ainda mais sua instância do Oracle Transportation Management.

Objetivos

Pré-requisitos

Tarefa 1: Configurar um Aplicativo Empresarial

Os seguintes detalhes são necessários sobre o Oracle Transportation Management antes de continuar:

Siga as etapas:

  1. Abra o menu Oracle Cloud Console de navegação e clique em Identidade & Segurança. Em Identity, clique em Domains. Escolha o compartimento para localizar seu domínio.

    Domínios.

  2. Clique no nome do domínio e, em Aplicativos integrados, clique em Adicionar aplicativo.

    Adicionar aplicativo.

  3. Selecione Aplicativo Empresarial e clique em Iniciar workflow.

    Iniciar workflow.

  4. Informe um nome para o aplicativo. O URL do Aplicativo é o host e porta do servidor de gateway de aplicativo. Também pode ser um URL que tem um redirecionamento para o gateway de aplicativo. Marque Exibir em Meus Aplicativos. Se você quiser restringir este aplicativo apenas a usuários autorizados, marque O usuário deve receber este aplicativo.

    Detalhes do nome e URL.

  5. Clique em Próximo e, em seguida, em Próximo novamente para ignorar as telas de configuração OAuth.

  6. Clique em Adicionar Recurso para adicionar os recursos do GTM. Forneça um nome e um URL de recurso. No nosso caso, será /.*, pois estamos protegendo todos os recursos. Marque Usar expressões regex.

    Adicionando recursos.

  7. Clique no botão Adicionar recurso gerenciado e selecione o recurso na Etapa 6 anterior no menu Recurso. Selecione o Método de autenticação como Token de Formulário ou Acesso. Em Cabeçalhos, digite appuid como o Nome e User Name como o Valor.

    Adicionando recursos gerenciados.

    Observação: Em nosso exemplo, selecionamos Default como o único recurso e Form or Access token como nosso método de autenticação para proteger todos os recursos. Isso garante que somente usuários autenticados tenham permissão de acesso. O Oracle Transportation Management também precisa de um cabeçalho appuid com o nome de usuário como o valor. Identificamos isso como parte de nossa tarefa inicial de coletar detalhes.

  8. Clique em Concluir e ative o aplicativo clicando na opção Ativar.

  9. Designe alguns usuários/grupos ao aplicativo em Recursos. Você pode escolher usuários locais e federados, mas certifique-se de que esses usuários existam no banco de dados do Oracle Transportation Management.

Tarefa 2: Registrar o App Gateway no OCI IAM

O App Gateway fica na frente do seu aplicativo, intercepta solicitações, autentica usuários e permite acesso aos recursos.

Coletar Detalhes do Servidor:

Os seguintes detalhes são necessários sobre o servidor app-gateway antes de continuar:

Siga as etapas:

  1. Em Identidade, selecione Domínios e clique no domínio que você usou antes.

  2. Em Segurança, selecione Gateways de aplicativo e clique em Criar gateway de aplicativo. Informe um nome e clique em Adicionar gateway de aplicativo.

    Criando gateway de aplicativos.

  3. Clique em Adicionar Host. Forneça um nome no Identificador de host e adicione os detalhes do servidor de gateway de aplicativo em Host e Porta. Se você ainda não tiver os detalhes, adicione valores de espaço reservado e revisite esta etapa após concluir a Tarefa 4.

    Adicionando host.

  4. Clique na caixa de seleção SSL ativado, informe o seguinte em Propriedades adicionais e clique em Adicionar host.

    ssl_certificate /usr/local/nginx/conf/cert.pem;
    ssl_certificate_key /usr/local/nginx/conf/key.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;
    

    Observação: Não estamos encerrando o SSL no balanceador de carga. Portanto, devemos marcar a caixa de seleção SSL para ativar o acesso ao servidor de gateway de aplicativo por meio de SSL. Os nomes de arquivo e o caminho para o certificado e a chave se baseiam no caminho real no contêiner.

  5. Clique em Próximo para adicionar os detalhes do aplicativo empresarial e do servidor de origem que você criou na Tarefa 1.

  6. Clique em Adicionar aplicativo e selecione o aplicativo empresarial no menu Aplicativo. Em Selecionar um host, escolha o host na Etapa 3. Em Prefixo do recurso, digite / para fazer proxy do aplicativo empresarial. Por fim, em Servidor de origem, informe o nome de host/IP do servidor de aplicativos do Oracle Transportation Management. Clique em Fechar.

    Adicionando aplicativo.

    Observação: Quando você usa / como prefixo de recurso, todas as solicitações anteriores a / são encaminhadas para o aplicativo empresarial.

  7. Clique em Ativar gateway de aplicativo. Anote a ID do Cliente e o Segredo do Cliente, pois isso será necessário posteriormente.

    Ativando o gateway de aplicativo.

Tarefa 3: Fazer download dos arquivos de requisitos para configurar o contêiner e gerar a wallet

  1. Na Console do OCI, vá para Identidade, Domínios, seu domínio, Definições e clique em Downloads.

  2. Faça download da imagem do Docker no Pacote do Docker Unificado do App Gateway para Identity Cloud Service.

  3. Em seguida, faça download da ferramenta Wallet AppGateway que será usada para gerar uma wallet.

  4. Descompacte os arquivos zip baixados. A imagem do docker estará no formato .tar.gz.

    Downloads.

  5. Você precisará copiar o arquivo de imagem e a pasta da wallet da sua máquina local para o servidor do gateway de aplicativo. Veja abaixo um exemplo que mostra como usar o comando scp do shell bash local para enviar o conteúdo da pasta de ferramentas da wallet para o diretório de arquivos no servidor.

    scp -i /Users/mac/ssh_private.key -r /Users/mac/idcs-appgateway-wallet-tool-23.2.92-2301160723 opc@xxx.xxx.xxx.xxx:files
    

Tarefa 4: Criar uma instância de computação do OCI e atualizar as Listas de Segurança de Rede

Observação: Se você estiver configurando um servidor local/máquina virtual em seu próprio ambiente ou em outro provedor de nuvem, poderá usar as etapas a seguir como referência para as configurações.

  1. Na Console do OCI, vá para Compute e clique em Instâncias. Selecione o compartimento direito.

  2. Clique em Criar Instância. Informe o Nome e selecione um domínio da disponibilidade.

  3. Selecione Imagem do SO como Oracle Linux 8 e selecione uma forma apropriada. Estamos usando a memória E5 Flex/1 OCPU/8GB.

  4. Selecione a VCN e a sub-rede pública em que você gostaria de colocar isso.

  5. Gere um par de chaves SSH para se conectar à instância usando uma conexão Secure Shell (SSH) ou fazer upload de uma chave pública que você já tem.

  6. Clique em Criar e anote o endereço IPv4.

  7. Abra a sub-rede e clique na lista de segurança associada a ela.

  8. Clique em Adicionar Regras de Entrada e adicione as opções a seguir para permitir a entrada de HTTPS por TCP e SSH.

    Source Type: CIDR
    Source CIDR: 0.0.0.0/0
    IP Protocol: TCP
    Source Port Range: All
    Destination Port Range: 443
    
    Source Type: CIDR
    Source CIDR: 0.0.0.0/0
    IP Protocol: SSH
    Source Port Range: All
    Destination Port Range: 22
    

Tarefa 5: Configurar o Servidor do App Gateway usando a Imagem do Docker

  1. Conecte-se via SSH à instância de computação criada na Tarefa 4 usando sua chave privada.

    ssh -i /Users/mac/ssh_private.key opc@xxx.xxx.xxx.xxx
    
  2. Execute o comando a seguir para instalar o Docker e outras bibliotecas e iniciar o serviço. Em seguida, valide se o serviço do docker está em execução.

    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sudo yum install -y docker-ce docker-ce-cli containerd.io
    sudo dnf install libnsl*
    sudo systemctl enable docker
    sudo systemctl start docker
    
    sudo systemctl status docker
    
  3. Em seguida, adicione o usuário conectado (opc nesse caso) à lista de sudoers.

    sudo usermod -a -G docker $USER
    
  4. Abra a porta do firewall para ativar a comunicação. Estamos usando a porta 443 aqui.

    sudo firewall-cmd --zone=public --permanent --add-port=443/tcp
    sudo systemctl stop firewalld
    sudo systemctl start firewalld
    
  5. Crie um diretório e comece a consolidar os arquivos necessários para criar o contêiner. Estamos usando o /home/opc/files para este tutorial.

    mkdir files
    cd files
    
  6. Gere um certificado autoassinado usando openSSL.

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server-key.pem -out server-cert.pem
    

    Observação: o uso de certificados autoassinados não é recomendado em um ambiente de produção. Em vez disso, use certificados emitidos pela sua CA.

  7. Crie o arquivo de ambiente appgateway que contém as informações do domínio.

    vi appgateway-env
    
    CG_APP_TENANT=idcs-XXX
    IDCS_INSTANCE_URL=https://idcs-XXX.identity.oraclecloud.com:443
    NGINX_DNS_RESOLVER=<resolver IP>
    

    Observação: Substitua XXX pelos detalhes do domínio do OCI IAM. Para o IP do resolvedor de DNS, consulte os detalhes do servidor de nomes encontrados no arquivo /etc/resolv.conf.

    Detalhes do ambiente.

  8. Gere o arquivo da wallet cwallet.sso usando a ferramenta. Isso é feito executando o comando a seguir. Substitua Client ID pelo ID do cliente do gateway de aplicativo observado anteriormente. Clique em Retornar e informe o segredo do cliente quando solicitado.

    env LD_LIBRARY_PATH=./lib ./cgwallettool --create -i <Client ID>
    
  9. Agora que todos os arquivos estão prontos, atualize as permissões para cada arquivo. Isso garante que o proprietário possa ler, gravar e executar; enquanto grupos e outros só podem ler e executar.

    chmod -R 755 <filename>
    
  10. Carregue a imagem no repositório local e valide.

    sudo docker load -i appgateway-aarch64-25.1.03-2501230623.tar.gz
    docker images
    
  11. Crie o contêiner com base nos arquivos e valide. Após executar o comando a seguir, o status do seu contêiner deverá ser UP.

    sudo docker run -p 443:443 -d --name appgateway --env-file /home/opc/files/appgateway-env --env HOST_MACHINE=`hostname -f` --volume /home/opc/files/cwallet.sso:/usr/local/nginx/conf/cwallet.sso --volume /home/opc/files/server-key.pem:/usr/local/nginx/conf/key.pem --volume /home/opc/files/server-cert.pem:/usr/local/nginx/conf/cert.pem local.local/idcs-appgateway-docker_linux_arm64_v8:25.1.03-2501230623
    
    docker ps
    

Tarefa 6: Atualizar Configuração de SSO no Oracle Transportation Management

Observação: Este tutorial é específico ao Oracle Transportation Management 6.4.3. Para obter mais detalhes sobre como definir os vários parâmetros, confira o guia de segurança do Oracle Transportation Management aqui: Guia de Segurança. Para obter outras versões, consulte a Biblioteca da Web da Documentação Local do Transportation and Global Trade Management.

  1. Para acesso SSO ao Oracle Transportation Management, o código de chamada precisa ser informado no parâmetro a seguir como parte da solicitação HTTP (em que o nome de usuário é o GID do usuário no banco de dados). O cabeçalho appuid será informado no cabeçalho HTTP; o valor desse cabeçalho deve corresponder ao Nome do Usuário no banco de dados.

    appuid=username
    
  2. Faça log-in na console de administração do Oracle Transportation Management e navegue até o User Manager. Crie/atualize o usuário para garantir que haja um nome de usuário válido que corresponda ao usuário do OCI.

    Gerente de usuários.

  3. A configuração do SSO precisa ser atualizada no arquivo glog.properties. Faça login no servidor e navegue até /app/appgtmdevl/Oracle/gtm643/glog/config. Atualize os parâmetros a seguir.

    Abrindo arquivo de propriedades.

    glog.security.sso=true
    glog.security.sso.app0idName=appuid
    glog.security.sso.appUidLoCation=3
    glog.security.sso.logoutButton=true
    glog.security.sso.logoutUrl-https://idcs-XXX.identity.oraclecloud.com/sso/vl/user/logout
    

    Editando propriedades.

  4. Em seguida, a configuração do OHS precisa ser atualizada. Consulte os exemplos a seguir do caminho para localizar seu arquivo httpd.conf.

    cd /app/OTMappserver/Oracle/Middleware/Oracle_Home/user_projects/domains/otmweb/config/fmwconfig/components/OHS/OTMappserver
    
    cd /app/OTMappserver/Oracle/Middleware/Oracle_Home/user_projects/domains/otmweb/config/fmwconfig/components/OHS/instances/OTMappserver
    
  5. Faça um backup do arquivo e defina os parâmetros a seguir na configuração.

    SimulateHttps On
    AddCertHeader HTTPS
    

    Exemplo:

    Listen 1234
    NameVirtualHost *:1234
    <VirtualHost *:1234>
    ServerName  XXX.XXX
    DocumentRoot  /app/XXX/Oracle/gtm643/web/htdocs
    DirectoryIndex  index.htm
    <IfModule ossl_module>
    SSLEngine off
    </IfModule>
    <Directory "/app/XXX/Oracle/gtm643/web/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
    </Directory>
    Header set Cache-Control maxage=21600
    ExpiresActive On
    ExpiresDefault "access plus 6 hours"
    SimulateHttps On
    AddCertHeader HTTPS
    </VirtualHost>
    
  6. Reinicie o aplicativo e a camada web para garantir que as alterações tenham efeito.

  7. Certifique-se de que a entrada/saída da rede do servidor de gateway de aplicativo para a instância do Oracle Transportation Management seja permitida. Use a Tarefa 4.8 para referência.

Tarefa 7: Fazer logon por meio de SSO e Validar

  1. Acesse o URL do servlet em um browser. Exemplo de URL: https://appgatewayserver.domain:443/GC3/glog.webserver.util.FrameGC3Servlet.

  2. Observe que deve haver um redirecionamento para o log-in do OCI IAM. Informe as credenciais do usuário e faça log-in.

  3. Após a autenticação bem-sucedida, você será conectado ao Oracle Transportation Management.

    Console do Oracle Transportation Management.

Confirmações

Mais Recursos de Aprendizado

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal do Oracle Learning YouTube. Além disso, acesse education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.