Public/Connect-IAMCore.ps1
|
function Connect-IAMCore { [CmdletBinding(DefaultParameterSetName = 'Default')] param ( [Parameter(Mandatory = $false, ParameterSetName = "ATP")] [String] $AccessTokenProfile = $null, [Parameter(Mandatory = $false, ParameterSetName = "Default")] [String] $TenantId = "common", [Parameter(Mandatory = $false, ParameterSetName = "Default")] [ValidateSet("Prod", "Dev")] [String] $Instance = "Prod", [Parameter(Mandatory = $false)] [String] $APIRoot = "https://api.fortytwo.io/iamcore" ) if ([String]::IsNullOrEmpty($AccessTokenProfile)) { $AccessTokenProfile = "Fortytwo.IAM.Core.Administrator" if ($Instance -eq "Prod") { Add-EntraIDInteractiveUserAccessTokenProfile -Name $AccessTokenProfile -TenantId $TenantId -ClientId "68bf2f1d-b9e1-4477-8b90-81314861f05f" -Scope "https://api.fortytwo.io/.default" } else { Add-EntraIDInteractiveUserAccessTokenProfile -Name $AccessTokenProfile -TenantId $TenantId -ClientId "b24eb00a-7f91-489b-b321-3b018da0e8a8" -Scope "api://c61cb4dd-35bf-4db9-b152-58e223782c11/.default" if (!$PSBoundParameters.ContainsKey('APIRoot')) { $APIRoot = "https://dev-api.byfortytwo.com/iamcore" } } } elseif (!(Get-EntraIDAccessTokenProfile -Profile $AccessTokenProfile)) { throw "Access token profile '$AccessTokenProfile' not found. Please create it using New-EntraIDAccessTokenProfile." } if ($APIRoot.EndsWith('/')) { $APIRoot = $APIRoot.TrimEnd('/') } $Script:APIRoot = $APIRoot $Script:AccessTokenProfile = $AccessTokenProfile } |