Ir para o conteúdo

Execução dos conectores

Existem vários métodos para executar uma sequência de aprovisionamento:

  • Através de ficheiros Batch ou PowerShell com linhas de comando que invocam o executável HPPRunCli
  • Através da interface de gestão dos jobs
  • Através dos serviços web SIP

Executar as sequências de aprovisionamento com HPPRUNCLI.exe

Num ficheiro Batch ou PowerShell, é necessário invocar o executável HppRunClie.exe seguido das opções seguintes:

Opções Função Obrigatório (Y/N)
-sec [Sequence Name] Opção que permite indicar a sequência que se vai executar. Y
-cfg [Config_file_name] Opção que permite indicar o ficheiro de configuração a utilizar. N. Por predefinição, é utilizado o ficheiro hpp.ini.
-obj [Val_attribute1|Val_attribute2|…] Opção que permite indicar o valor do atributo de correspondência para executar a sequência de forma unitária. Se for necessário indicar vários valores de atributo, devem ser enumerados na ordem em que as exportações devem ser executadas. N
-seq [Directory_nm] Opção que permite indicar o nome do diretório de saída dos ficheiros de log. N

Executar as sequências de aprovisionamento a partir da interface de gestão dos jobs

A partir da página de consulta das instâncias de job das sequências de aprovisionamento, é possível executar um job de forma unitária ou em massa.

Para lançar um job em massa, clique no botão «type:inline».

Selecione o ou os jobs desejados e clique depois em «Validate» para colocar os jobs na fila de espera.

Para lançar um job de forma unitária, clique no botão «type:inline».

Selecione o job desejado e introduza depois o valor que permite selecionar o objeto sobre o qual deseja executar o job.

Atenção: atualmente, se o job contiver várias sequências, para o executar em modo unitário o atributo de correspondência deve ter o mesmo valor em todas as sequências.

Executar as sequências de aprovisionamento através dos serviços web SIP

Exemplo de script para executar um job de aprovisionamento através de um script PowerShell:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
$urlGenToken = "https://[URL_serveur_SID]:44350/connect/token"
$BodyJsonPostToken = "grant_type=password&client_id=sip&client_secret=sip&username=[login_cpt]&password=[mot_de_passe_compte]"
$MonHeader = @{
        "Content-Type" = "application/x-www-form-urlencoded"
        "accept" = "Application/Json"
        "Host" = "[URL_serveur_SID]:44350"
    }

$MonHeaderReq = @{
        "Content-Type" = "application/x-www-form-urlencoded"
        "accept" = "Application/Json"
        "Host" = "[URL_serveur_SID]:44350"
        "Authorization" = "Bearer $($token_gen)" 
    }

try {

    $result = Invoke-RestMethod -Uri $urlGenToken -Method Post -Headers $MonHeader -Body $BodyJsonPostToken 
    $token_gen = $result.access_token
    #ajouter logs
}
catch {
    $token_gen = ""
    #ajouter logs
}

if ($token_gen -ne "")
{
    $job_code = [code_du_job_à_exécuter]
    $MonHeaderReq = @{
        "Content-Type" = "application/x-www-form-urlencoded"
        "accept" = "Application/Json"
        "Host" = "sid.iam-test.ght49.intra:44355"
        "Authorization" = "Bearer $($token_gen)"
    }
    $urlExecutionJob="https://sid.iam-test.ght49.intra:44355/scim/v2/job/run/$job_code"

    try {
        $res = Invoke-RestMethod -Uri $urlExecutionJob -Method Post -Headers $MonHeaderReq  
        #ajouter logs
    }
    catch {
        #ajouter logs et traitement
    }
}

Do mesmo modo, para retomar através de um script PowerShell um job de aprovisionamento interrompido por um limiar de importação, é necessário recuperar o identificador da instância de job invocando a rota /scim/v2/job-instance/ (método GET).

Para mais informações, consulte a documentação Swagger: https://[SIP_Server_URL]:44355/swagger/

Executar o novo conector de alimentação ascendente (a partir da 7.0 SP3)

A partir da versão 7.0 SP3, é possível atribuir papéis e/ou habilitações às identidades através de um novo conector de alimentação ascendente.

Os vínculos Identidades – Papéis e Identidades/Papéis – Habilitações criados e/ou eliminados a partir de uma fonte autorizada são geridos por um novo tipo de vínculo na base de dados. Assim, a exportação dos vínculos Identidades – Papéis e Identidades/Papéis – Habilitações a partir do repositório Identity devolverá apenas os papéis e as autorizações atribuídos pelo SIP.

Configurar um conector de vínculo Identidades - Papéis

Para configurar um conector de vínculo Identidades - Papéis, é necessário criar no mínimo:

  • Uma exportação de uma fonte autorizada que deve conter as informações seguintes:
  • UID da identidade (obrigatório)
    • Código do papel a atribuir (obrigatório) – valor único.
    • Data de início do papel (opcional)
    • Data de fim do papel (opcional)
  • Uma exportação do repositório Identity do tipo PERSON_ROLES na qual devem indicar-se os tipos de pessoa e os códigos dos repositórios para os quais se deseja criar os vínculos identidade-papel.
  • Uma regra de sincronização para definir as operações de Matching, de criação, de modificação e de eliminação
    • Na regra de Matching, compare o uid da identidade e o código do papel
    • Na regra de criação, é obrigatório indicar o uid da identidade e o código do papel. As datas de início e de fim são opcionais
    • Na regra de modificação, é obrigatório indicar o ID do vínculo pessoa-papel, recuperado da exportação do repositório Identity. Apenas as datas podem ser modificadas
    • Na regra de eliminação, é obrigatório indicar o ID do vínculo pessoa-papel, recuperado da exportação do repositório Identity.
    • Sintaxe dos códigos Identity a utilizar nas regras de sincronização:
      • person = UID da identidade
      • role = código do papel
      • startdate = data de início do papel
      • enddate = data de fim do papel
      • id = ID do vínculo identidade-papel (campo id da tabela sid.PersonRoles)
  • Uma importação no repositório Identity do tipo PERSON_ROLES. É possível selecionar a opção de desativação do cálculo imediato das contas para controlar o tempo de importação em caso de grandes volumes. Se a opção tiver sido ativada, é necessário realizar uma importação ACCOUNTCALC para recalcular as contas do repositório em questão.

Configurar um conector de vínculo Identidades - Papéis

  • Uma exportação de uma fonte autorizada que deve conter as informações seguintes:
    • UID da identidade (obrigatório)
    • Código do papel (obrigatório) – valor único.
    • Código da autorização a atribuir ao vínculo identidade/papel (obrigatório) – valor único
    • Data de início da autorização (opcional)
    • Data de fim da autorização (opcional)

Atenção

O vínculo Identidade/Papel deve existir previamente para que o conector de vínculo Identidade/Papel – Habilitações funcione corretamente

  • Uma exportação do repositório Identity do tipo PERSON_RIGHTS na qual devem indicar-se os tipos de pessoa e os códigos dos repositórios para os quais se deseja criar os vínculos identidade/papel-autorização.
  • Uma regra de sincronização para definir as operações de Matching, de criação, de modificação e de eliminação
    • Na regra de Matching, compare o uid da identidade, o código do papel e o código da autorização.
    • Na regra de criação, é obrigatório indicar o uid da identidade, o código do papel e o código da autorização. As datas de início e de fim são opcionais
    • Na regra de modificação, é obrigatório indicar o ID do vínculo pessoa/papel - autorização, recuperado da exportação do repositório Identity. Apenas as datas podem ser modificadas.
    • Na regra de eliminação, é obrigatório indicar o ID do vínculo pessoa/papel - autorização, recuperado da exportação do repositório Identity.
    • Sintaxe dos códigos Identity a utilizar nas regras de sincronização:
    • person = UID da identidade
      • role = código do papel
      • right = código da autorização
      • startdate = data de início da autorização
      • enddate = data de fim da autorização
    • id = ID do vínculo identidade-papel-habilitação (campo id da tabela sid.PersonRights)
  • Uma importação no repositório Identity do tipo PERSON_RIGHTS. É possível selecionar a opção de desativação do cálculo imediato das contas para controlar o tempo de importação em caso de grandes volumes. Se a opção tiver sido ativada, é necessário realizar uma importação ACCOUNTCALC para recalcular as contas do repositório em questão.

Ativação dos rastreios

A partir da versão 7.1, os rastreios do motor de aprovisionamento já não são ativados no registo, mas sim no ficheiro [Installation_Directory]\SIP\Config.ini.

Nota

Este ficheiro é o do motor de aprovisionamento. Não deve ser confundido com os ficheiros de configuração dos conectores (*.ini), passados ao HPPRunCli com a opção -cfg.

Na secção General, adicione os três parâmetros seguintes:

  • traceLevel: 0 para desativar os rastreios, 2FFFF para os ativar.
  • traceModule: lista dos módulos a rastrear, separados por vírgulas. Os nomes dos módulos não distinguem maiúsculas de minúsculas. Os valores possíveis são:
    • HPPCfg
    • HPPCSV
    • HPPHP
    • HPPLDAP
    • HPPReference
    • HPPRunCli
    • HPPSQL
    • SIPSCIM
    • SIPLDAP
    • WrapperDLL
    • All, para ativar os rastreios de todos os módulos
  • traceOutputDir: diretório de saída dos logs. Este parâmetro é opcional: se não for especificado, os logs são gerados na pasta %tmp% do utilizador.

Exemplo:

1
2
3
4
[General]
traceLevel=2ffff
traceModule=HPPCSV,HPPCfg,HPPLDAP
traceOutputDir=c:/myLog

Nota

O instalador da versão 7.1 já escreve estes três parâmetros em Config.ini, com os rastreios desativados: traceLevel=0, traceModule preenchido com a lista completa dos módulos e traceOutputDir=C:\Temp. Para ativar os rastreios, basta portanto modificar traceLevel. Verifique se a conta que executa o motor pode escrever no diretório de saída.

Sugestão

Para um diagnóstico direcionado, reduza traceModule apenas aos módulos relevantes — por exemplo SIPSCIM para um problema de ligação a um destino SCIM. Concluído o diagnóstico, volte a definir traceLevel como 0: os rastreios detalhados consomem espaço em disco e tornam os processamentos mais lentos.

Cifragem das palavras-passe e do segredo de cliente

A partir da versão 7.1, as palavras-passe e os «client secrets» utilizados pelo motor de aprovisionamento e presentes no ficheiro [Installation_Directory]\SIP\Config.ini são cifrados.

Durante uma primeira instalação, estes dados são guardados automaticamente de acordo com os parâmetros introduzidos no instalador.

Para modificar manualmente um destes dois valores, utilize o executável [Installation_Directory]\SIP\SIPEncrypt.exe. A partir de uma linha de comandos ou de uma janela PowerShell, execute SIPEncrypt.exe seguido da palavra-passe ou do segredo de cliente a cifrar e, em seguida, copie o resultado para o ficheiro Config.ini.

SIPEncrypt.exe espera um único parâmetro. Sem parâmetro, ou com vários, apresenta a mensagem SIPEncrypt should be called with a single input parameter. e não produz nada. Se o valor contiver espaços ou caracteres interpretados pela linha de comandos (&, |, ^, ", $…), coloque-o entre aspas — de preferência aspas simples em PowerShell.

O segredo de cliente é introduzido no parâmetro clientSecret do ficheiro Config.ini.

Atenção

Para a autenticação junto dos destinos SCIM, o motor utiliza tal como está qualquer palavra-passe ou segredo de cliente que não consiga decifrar. Um valor deixado por engano em texto simples funciona, portanto, sem qualquer mensagem de aviso, enquanto o segredo fica exposto no ficheiro. Verifique se cada segredo de Config.ini é de facto um valor produzido por SIPEncrypt.exe.

Esta cifragem é reversível, uma vez que o próprio motor decifra os valores: protege contra a leitura do segredo em texto simples, não contra o acesso ao ficheiro. Restrinja o acesso a Config.ini às contas de administração e à conta que executa o motor. Quando introduzido na linha de comandos, o valor em texto simples pode também permanecer no histórico da consola: feche a sessão após a utilização.