Private/New-PSDVInteractiveCredential.ps1
|
function New-PSDVInteractiveCredential { [CmdletBinding()] param( [Parameter(Mandatory)] [Hashtable] $AuthContext ) if ($AuthContext.UseDeviceCode) { $options = [Azure.Identity.DeviceCodeCredentialOptions]::new() $options.TenantId = $AuthContext.AzureTenantId $options.ClientId = $script:PSDVPublicClientID $options.AuthorityHost = Get-PSDVAzureAuthorityHost -Environment $AuthContext.Environment $options.DeviceCodeCallback = [System.Func[Azure.Identity.DeviceCodeInfo, System.Threading.CancellationToken, System.Threading.Tasks.Task]] { param($deviceCodeInfo, $cancellationToken) Write-Information $deviceCodeInfo.Message -InformationAction Continue return [System.Threading.Tasks.Task]::CompletedTask } return [Azure.Identity.DeviceCodeCredential]::new($options) } $options = [Azure.Identity.InteractiveBrowserCredentialOptions]::new() $options.TenantId = $AuthContext.AzureTenantId $options.ClientId = $script:PSDVPublicClientID $options.AuthorityHost = Get-PSDVAzureAuthorityHost -Environment $AuthContext.Environment return [Azure.Identity.InteractiveBrowserCredential]::new($options) } |