forked from pspete/psPAS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathClose-PASSession.ps1
94 lines (65 loc) · 2.03 KB
/
Close-PASSession.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# .ExternalHelp psPAS-help.xml
function Close-PASSession {
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', 'UseGen1API', Justification = 'False Positive')]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', 'SharedAuthentication', Justification = 'False Positive')]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSReviewUnusedParameter', 'SAMLAuthentication', Justification = 'False Positive')]
[CmdletBinding(DefaultParameterSetName = 'Gen2')]
param(
[parameter(
Mandatory = $false,
ValueFromPipelinebyPropertyName = $false,
ParameterSetName = 'Gen1'
)]
[Alias('UseClassicAPI')]
[switch]$UseGen1API,
[Parameter(
Mandatory = $false,
ValueFromPipeline = $false,
ValueFromPipelinebyPropertyName = $true,
ParameterSetName = 'shared'
)]
[switch]$SharedAuthentication,
[Parameter(
Mandatory = $false,
ValueFromPipeline = $false,
ValueFromPipelinebyPropertyName = $true,
ParameterSetName = 'saml'
)]
[switch]$SAMLAuthentication
)
BEGIN {
Switch ($PSCmdlet.ParameterSetName) {
'Gen1' {
$URI = "$($psPASSession.BaseURI)/WebServices/auth/Cyberark/CyberArkAuthenticationService.svc/Logoff"
break
}
'saml' {
$URI = "$($psPASSession.BaseURI)/WebServices/auth/SAML/SAMLAuthenticationService.svc/Logoff"
break
}
'shared' {
Assert-VersionRequirement -SelfHosted
$URI = "$($psPASSession.BaseURI)/WebServices/auth/Shared/RestfulAuthenticationService.svc/Logoff"
break
}
'Gen2' {
$URI = "$($psPASSession.BaseURI)/API/Auth/Logoff"
break
}
}
}#begin
PROCESS {
#Send Logoff Request
Invoke-PASRestMethod -Uri $URI -Method POST | Out-Null
}#process
END {
#Set ExternalVersion to 0.0
$psPASSession.ExternalVersion = [System.Version]'0.0'
#Clear Module scope variables on logoff
$psPASSession.BaseURI = $null
$psPASSession.ApiURI = $null
$psPASSession.WebSession = $null
$psPASSession.User = $null
$psPASSession.StartTime = $null
}#end
}