Public/Get-AllegisIDNAccessToken.ps1
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
function Get-AllegisIDNAccessToken ($org, $uid, $pwd, $qa) { #install-module selenium first $i=0 $driver=Start-sefirefox Enter-SeUrl -Driver $driver -Url https://$org.identitynow.com/login/login?prompt=true do{ $i++ if ($i -ge 60){return -1} sleep 1 $username = Find-SeElement -Driver $Driver -Id "username" }until($username -ne $null) Send-SeKeys -Element $username -Keys $uid $password = Find-SeElement -Driver $driver -id "password" Send-SeKeys -Element $password -Keys $pwd $link=Find-SeElement -Driver $driver -id 'signIn' Invoke-SeClick -Element $link $i=0 do{ $i++ if ($i -ge 60){return -1} sleep 1 $admin=Find-SeElement -Driver $driver -id 'slpt-nav-admin' }until($admin -ne $null) Invoke-SeClick -Element $admin.where{$_.location.x -ne 0}[0] $i=0 do{ $i++ if ($i -ge 60){return -1} sleep 1 $labels=Find-SeElement -Driver $driver -TagName label }until($labels -ne $null) $inputboxes=Find-SeElement -Driver $driver -TagName input foreach ($Question in $labels.where{$_.location.y -ne 0}) { $answer = $qa[$Question.text] $ib=$inputboxes.where{$_.location.y -ge $question.location.y+$question.Size.y -and $_.location.y -le $question.location.y+$question.Size.y+35} sleep 1 Send-SeKeys -Element $ib[0] -Keys $answer } sleep 1 $kba=Find-SeElement -Driver $driver -id 'slpt-strongauthn-enterkba-btn' Invoke-SeClick -Element $kba $i=0 do{ $i++ if ($i -ge 60){return -1} sleep 1 $loaded=Find-SeElement -Driver $driver -id 'slpt-events-dashlet-csv-btnIconEl' }until($loaded -ne $null) $i=0 do{ $i++ if ($i -ge 60){return -1} sleep 1 Enter-SeUrl -Driver $driver -Url https://$org.identitynow.com/ui/session?refresh=true }until($driver.PageSource.IndexOf('{') -ne -1) $html=$driver.PageSource $json=$html.Substring($html.IndexOf('{'),$html.IndexOf('}')-$html.IndexOf('{')+1)| Convertfrom-Json Stop-SeDriver $driver return $json.accessToken } |