Private/Get-AzCredential.ps1
<#
.SYNOPSIS Helper to get Credentials based on connect into Azure when Az.Accounts is installed .DESCRIPTION Helper to get Credentials based on connect into Azure when Az.Accounts is installed #> function Get-AzCredential { [CmdLetBinding()] [Outputtype("PSCredential")] [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingConvertToSecureStringWithPlainText', '', Justification = "There's required to convert the string to the secure string.")] param() $ErrorActionPreference = 'Stop' Write-Debug '-- begin - Get-AzCredential --' if (-not (Get-Module Az.Accounts)) { Import-Module Az.Accounts } $azProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile $currentAzureContext = Get-AzContext $profileClient = New-Object Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient($azProfile) Write-Debug ("Getting access token for tenant" + $currentAzureContext.Tenant.TenantId) $token = $profileClient.AcquireAccessToken($currentAzureContext.Tenant.TenantId) $securePat = ConvertTo-SecureString -String $currentAzureContext.Account.Id -AsPlainText -Force $Credential = New-Object System.Management.Automation.PSCredential($token.AccessToken, $securePat) Write-Debug '-- end - Get-AzCredential --' return ($Credential) } |