Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

sso
  |- etc ( Arquivos de configuração do SAML, certificados e chaves privadas )
  |- lib ( Libs necessárias para a execução da libsamlsp )
  |- share
    |- xml ( Arquivos schema para validar os XML's de configuração e os assertions )
  |- var
    |- cache ( Cópia local dos arquivos de configuração dos IDP's configurados )
    |- log ( Arquivos de log da libsamlsp, libsaml, libxmltooling, libxml-security, libxerces )


2 - Copiar o arquivo invoker-applet.zip para o diretório "PATH" que é configurado na sessão HTTP do arquivo de configuração do Application Server.3 - Habilitar o servidor HTTP e HTTPS no Application Server para executar os testes.

...

Bloco de código
languagecpp
firstline1
linenumberstrue
[HTTP]
ENABLE=1
PORT=80
SessionTimeout=36000
SAMLSessionName=localhost_http_80

[HTTPS]
ENABLE=1
PORT=443
SessionTimeout=36000
SAMLSessionName=localhost_https_443

[localhost/webex]
ENABLE=1
PATH=\Totvs\bin\appserver\web\ws
ENVIRONMENT=SEU_AMBIENTE
INSTANCENAME=webex
RESPONSEJOB=job_webex

[job_webex]
enable=1
type=webex
instances=1,5,1,1
INSTANCENAME=webex
environment=SEU_AMBIENTE
ONSTART=STARTWEBEX
ONCONNECT=CONNECTWEBEX
ONEXIT=FINISHWEBEX


[ONSTART]
jobs=job_webex
REFRESHRATE=30


5 3 -  Configurando o Service Provider usando o servidor:

  53.1 -  Alterar o entityID do ServiceProvider: setSAMLID.

  53.2 - Alterar o entityID do IdentityProvider: setSAMLID.

  53.3 - Configurar o Service Provider para recuperar automaticamente o arquivo de configuração do Identity Provider: setIDPConf.

  5 3.4 - Inserir e configurar o Service Provider para utilizar sua versão de certificado digital no formato PEM X.509: setSPCert.

...

Bloco de código
languagecpp
firstline1
linenumberstrue
#include 'protheus.ch'
#include 'fileio.ch'

user function setIdpShib()
  local error
 
  // http://tdn.totvs.com/display/tec/setSAMLID 
  if setSAMLID("https://localhost/webex/", 1, @error) == .F.
	ConOut("Error setSAMLID: " + error)
    return
  endif
  
  // http://tdn.totvs.com/display/tec/setSAMLID
  if setSAMLID("https://samltest.id/saml/idp", 2, @error) == .F.
    ConOut("Error setSAMLID: " + error)
    return
   endif
  
  // http://tdn.totvs.com/display/tec/setIDPConf
  if setIDPConf("https://samltest.id/saml/idp", "samltest.id.metadata.xml", @error) == .F.
     ConOut("Error setIDPConf: " + error)
     return
   endif
  
  // http://tdn.totvs.com/display/tec/setSPCert
  if setSPCert("certfile.pem", readFile("certificate.pem"), "keyfile.pem", readFile("key.pem"), @error) == .F.
     ConOut("Error setSPCert: " + error)
     return
  endif
return

static function readFile(FileName)
	local FileSize
	Local Readed
	local Register := ""
	local hArq := FOpen(FileName)

	If hArq == -1
        ConOut("Error:" + Str(FError()) + ", Error opening file '" + FileName + "'")
		return nil
	EndIf
	
	FileSize := FSEEK(hArq, 0, FS_END)
	
	FSEEK(hArq, 0, FS_SET)
	
	Readed := fRead(hArq, @Register, FileSize)
		
	If Readed <> FileSize
		ConOut("Error:" + Str(FError()) + ", Error reading file '" + FileName + "'")
		return nil
	Endif

	fclose(hArq)
return Register


6 4 -  Execute a user function setIdpShib no smartclient, usando a função inicial U_SETIDPSHIB.

    A execução criará os seguintes arquivos no diretório sso/etc: serviceprovider.xml , certfile.pem e keyfile.pem.


7 5 - Configurando o Identity Provider para fornecer identidades para o Service Provider.

...

  O Arquivo XML que contém a configuração do Service Provider pode ser utilizado para configurar o Identity Provider automaticamente, mais adiante, tem um exemplo de como fazer isso com o IDP da Shibboleth. 


  75.1 - A URL do serviço que retorna o arquivo XML de configuração é a mesma configurada como entityID do SP, só é necessário acrescentar o caminho "/saml2/metadata", utilizando o entityID do exemplo acima a URL ficaria assim: https://localhost/webex/saml2/metadata.

...

Neste site temos dois passos simples:

Botão "Choose File" ou "Escolher Ficheiro", abre uma janela para selecionar o arquivo de configuração do SP ( Selecione o XML de configuração do SP baixado no 1º Passo).
Botão "Upload", faz o upload e faz a federação do IDP com o SP.


8 6 - Importante.

    Para testar o IDP no site de testes https://samltest.id/saml/idp será necessário editar o arquivo sso\etc\security-policy.xml. Inclua a tag <PolicyRule type="NullSecurity"/> na TAG <Policy id="default" validate="false"> conforme o exemplo abaixo. A mesma não deve ser usada quando estiver usando um provedor IDP em ambiente de produção, pois, ela diminui o nível de segurança. 

...

<SecurityPolicies xmlns="urn:mace:shibboleth:2.0:native:sp:config">

    <Policy id="default" validate="false">
        ...

        <!-- Identified by type="NullSecurity", enables debugging by disabling security and permitting unauthenticated messages to pass successfully into higher layers. -->
        <PolicyRule type="NullSecurity"/>
    </Policy>

   ...

</SecurityPolicies>


9 7 - Testando o Service Provider

...

Aviso
titleAtenção

Para versões igual ou superior ao Lobo Guará é necessário inserir a pagina "default.htm" no fim da requisição para abertura do smartclient. Caso isso não seja inserido, o server tentará carregar a página default configurada no appserver.ini e isso poderá ocasionar na não abertura do smartclient.


Web:

  97.1 - Criar um programa para testes.

...

Caso contrário será apresentado o erro "URL not allowed".


  97.2 - Incluir os sites a serem acessados usando a função setSAMLSvc ou editando o arquivo sso\etc\services.conf. O servidor deve ser inicializado após esta operação.

...


  97.3 - Para testar o ambiente, inicie o Application Server e acesse este link: https://localhost/webex/saml2/get/url?http://localhost/webex/u_horaatual.apw

...