I'm working from a VM, so I want to use a certificate for Authentication.
Working with a Proxy
Most people nowadays work behind an enterprise proxy.
pwsh makes the live more easy behind a proxy - it gets all configuration from IE, so you can even use a pac file - but also implement some diferences.
With older PowerShell versions, a common configuration was:
$proxyUri = "http://MyProxyUrl:MyProxyPort"
[System.Net.WebRequest]::DefaultWebProxy = new-object System.Net.WebProxy ($proxyUri, $true)
With PowerShell core this is now:
$proxyUri = "http://MyProxyUrl:MyProxyPort"
[System.Net.Http.HttpClient]::DefaultProxy = New-Object System.Net.WebProxy( $proxyUri )
PowerShell AzureAD
It's almost impossible to use a certificate to authenticate with AzureAD module. It works fine under an user, but installing the certificate as computer level normally it will not work.
I give up to use AzureAD module because of this error:
"Connect-AzureAD Could not load type 'System.Security.Cryptography.SHA256Cng' from assembly"
I had no luck finding a workaround for this problem..
PowerShell Microsoft. Graph
Shifting to Microsoft. Graph was almost transparent. Only permissions are now with a different setup in Azure.
Make sure that permissions are assigned to application:
Parameter -Scope is not available for Service Principals, so all permission configuration is on Azure.
After connection the available permissions can be listed using:
(Get-MgContext).scopes
User.Read.All