Sommaire
ToggleCe un nouvel article concerne un soucis que rencontré au cours de l’implémentation d’un RunBook sur System Center Orchestrator.
Ce problème concerne le « double-saut » ou « double-hop » pour les anglophones. Derrière ce nom peu explicite ce cache un problème de transmission des identifiants.
Symptômes
- En étant connecté à la Machine A j’ai ouvert une « Remote session » en PowerShell sur la Machine B.
- Depuis la Machine B j’ai voulu exécuter un script qui utilisait des ressources sur la Machine C.
- L’accès aux ressources de la Machine C est refusé.
Après analyse, il s’est avéré que les identifiants utilisés sur la machine B n’étaient pas transmis à la machine C.
Dans les faits, depuis Orchestrator dans mon RunBook j’ai fait un appel d’un script situé sur une machine distantes. Lorsque ce script s’exécutait les appels aux ressources distante renvoyaient un accès refusé. Afin de résoudre ce soucis il a fallu activer la délégation d’identifiants via CredSSP.
Solution
Sur la Machine C
Il a fallu activer le WSManCredSSP avec le rôle serveur, afin d’autoriser le client à lui envoyer les identifiants dynamiquement avec la commande PowerShell suivante :
Enable-WSManCredSSP -Role Server -force
Pour vérifier, exécutez la commande :
Get-WSManCredSSP
Sur la Machine B :
Il faut activer le rôle client en indiquant le domaine afin de communiquer les identifiants à la Machine C. De plus la création d’une clé registre est nécessaire :
Enable-WSManCredSSP -Role client -DelegateComputer *.Domaine.com
$allowed = @('WSMAN/*.Domaine.com')
$key = 'hklm:\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation'
if (!(Test-Path $key))
{
md $key
}
New-ItemProperty -Path $key -Name AllowFreshCredentials -Value 1 -PropertyType Dword -Force
$key = Join-Path $key 'AllowFreshCredentials'
if (!(Test-Path $key))
{
md $key
}
$i = 1
$allowed |%
{
New-ItemProperty -Path $key -Name $i -Value $_ -PropertyType String -Force
$i++
}
Pour vérifier, exécutez la commande :
Get-WSManCredSSP
Voila maintenant il vous est possible d’avoir accès aux ressources de la Machine C depuis la Machine A en passant par la Machine B.