functions/azure/Get-ScopeFromEndpoint.ps1

function Get-ScopeFromEndpoint {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true)]
        [string]$Endpoint
    )

    $hostname = ([uri]$Endpoint).Host.ToLower()

    switch -Wildcard ($hostname) {
        "graph.microsoft.com"                  { return "https://graph.microsoft.com/.default" }
        "graph.windows.net"                    { return "https://graph.windows.net/.default" } # Veraltet (Azure AD Graph)
        "management.azure.com"                 { return "https://management.azure.com/.default" }
        "*.vault.azure.net"                    { return "https://vault.azure.net/.default" }
        "*.blob.core.windows.net"              { return "https://storage.azure.com/.default" }
        "*.queue.core.windows.net"             { return "https://storage.azure.com/.default" }
        "*.table.core.windows.net"             { return "https://storage.azure.com/.default" }
        "*.file.core.windows.net"              { return "https://storage.azure.com/.default" }
        "*.database.windows.net"               { return "https://database.windows.net/.default" }
        "*.servicebus.windows.net"             { return "https://servicebus.azure.net/.default" }
        "*.eventgrid.azure.net"                { return "https://eventgrid.azure.net/.default" }
        "api.loganalytics.io"                  { return "https://api.loganalytics.io/.default" }
        "api.security.microsoft.com"           { return "https://api.security.microsoft.com/.default" }
        "outlook.office365.com"                { return "https://outlook.office365.com/.default" }
        "analysis.windows.net"                 { return "https://analysis.windows.net/powerbi/api/.default" }
        "api.powerbi.com"                      { return "https://analysis.windows.net/powerbi/api/.default" }
        "*.azure-devices.net"                  { return "https://iothubs.azure.net/.default" }
        "*.azurewebsites.net"                  { return "https://management.azure.com/.default" } # i.d.R. ARM gesteuert
        "*.digitaltwins.azure.net"             { return "https://digitaltwins.azure.net/.default" }

        default {
            Write-Warning "Unbekannter API-Endpunkt: $hostname"
            return $null
        }
    }
}