Public/Okta/Get-OktaGroupMember.ps1
function Get-OktaGroupMember { Param ( [Parameter(Mandatory)] [string] $GroupId ) $Url = $OKTACredential.GetNetworkCredential().username $Token = $OKTACredential.GetNetworkCredential().Password $Headers = @{ "Authorization" = "SSWS $Token" "Accept" = "application/json" "Content-Type" = "application/json" } $RestSplat = @{ Uri = 'https://{0}.okta.com/api/v1/groups/{1}/users/?limit=200' -f $Url, $GroupID Headers = $Headers Method = 'Get' } do { $Response = Invoke-WebRequest @RestSplat $Headers = $Response.Headers $GrpMember = $Response.Content | ConvertFrom-Json if ($Response.Headers['link'] -match '<([^>]+?)>;\s*rel="next"') { $Next = $matches[1] } else { $Next = $null } $Headers = @{ "Authorization" = "SSWS $Token" "Accept" = "application/json" "Content-Type" = "application/json" } $RestSplat = @{ Uri = $Next Headers = $Headers Method = 'Get' } foreach ($CurGrpMember in $GrpMember) { [PSCustomObject]@{ Login = $CurGrpMember.Profile.login FirstName = $CurGrpMember.Profile.firstName LastName = $CurGrpMember.Profile.lastName } } } until (-not $next) } |