Hitelesítés Azure-erőforrásokon Azure Arc-kompatibilis kiszolgálókon

Az Azure Arc-kompatibilis kiszolgálókon közvetlenül futó alkalmazások vagy folyamatok felügyelt identitásokkal férhetnek hozzá a Microsoft Entra ID-alapú hitelesítést támogató egyéb Azure-erőforrásokhoz. Az alkalmazások beszerezhetik az identitását jelképező hozzáférési jogkivonatot , amely az Azure Arc-kompatibilis kiszolgálókhoz van hozzárendelve, és "tulajdonosi" jogkivonatként használhatja a hitelesítést egy másik szolgáltatásban.

A felügyelt identitások részletes leírásáért tekintse meg a felügyelt identitások áttekintési dokumentációját, és ismerje meg a rendszer által hozzárendelt és a felhasználó által hozzárendelt identitások közötti különbséget.

Ebben a cikkben bemutatjuk, hogyan férhet hozzá egy kiszolgáló egy rendszer által hozzárendelt felügyelt identitással az Azure Key Vault eléréséhez. A Key Vault rendszerindítóként szolgál, így az ügyfélalkalmazás titkos kóddal érheti el a Microsoft Entra ID által nem védett erőforrásokat. Az IIS-webkiszolgálók által használt TLS/SSL-tanúsítványok például tárolhatók az Azure Key Vaultban, és biztonságosan üzembe helyezhetik a tanúsítványokat az Azure-on kívüli Windows- vagy Linux-kiszolgálókon.

Biztonság áttekintése

A kiszolgáló Azure Arc-kompatibilis kiszolgálókra való előkészítése során a rendszer számos műveletet hajt végre a felügyelt identitás használatával történő konfiguráláshoz, hasonlóan az Azure-beli virtuális gépekhez végzett műveletekhez:

  • Az Azure Resource Manager kérést kap a rendszer által hozzárendelt felügyelt identitás engedélyezésére az Azure Arc-kompatibilis kiszolgálón.

  • Az Azure Resource Manager létrehoz egy szolgáltatásnevet a Microsoft Entra-azonosítóban a kiszolgáló identitásához. A szolgáltatásnév az előfizetés által megbízható Microsoft Entra-bérlőben jön létre.

  • Az Azure Resource Manager úgy konfigurálja az identitást a kiszolgálón, hogy frissíti az Azure Instance Metadata Service (IMDS) identitásvégpontot Windows vagy Linux rendszeren a szolgáltatásnév ügyfélazonosítójával és tanúsítványával. A végpont egy OLYAN REST-végpont, amely csak a kiszolgálón belülről érhető el egy jól ismert, nem módosítható IP-címmel. Ez a szolgáltatás az Azure Arc-kompatibilis kiszolgáló metaadat-információinak egy részét biztosítja annak kezeléséhez és konfigurálásához.

A felügyelt identitással kompatibilis kiszolgálók környezete a következő változókkal lesz konfigurálva egy Windows Azure Arc-kompatibilis kiszolgálón:

  • IMDS_ENDPOINT: Az Azure Arc-kompatibilis kiszolgálók IMDS-végpontjának IP-címehttp://localhost:40342.

  • IDENTITY_ENDPOINT: a szolgáltatás felügyelt identitásának http://localhost:40342/metadata/identity/oauth2/tokenmegfelelő localhost-végpont.

A kiszolgálón futó kód jogkivonatot kérhet az Azure Instance Metadata szolgáltatásvégponttól, amely csak a kiszolgálón belülről érhető el.

A rendszerkörnyezeti változó IDENTITY_ENDPOINT az identitásvégpont alkalmazások általi felderítésére szolgál. Az alkalmazásoknak meg kell próbálniuk lekérni IDENTITY_ENDPOINT és IMDS_ENDPOINT értékeket, és használni őket. A hozzáférési szinttel rendelkező alkalmazások kéréseket intézhetnek a végpontokhoz. A metaadat-válaszokat a rendszer a szokásos módon kezeli, és a gép bármely folyamatának megadja. Ha azonban egy jogkivonatot közzétevő kérés történik, az ügyfélnek titkos kulcsot kell megadnia annak igazolásához, hogy csak a magasabb jogosultságú felhasználók számára elérhető adatokhoz férnek hozzá.

Előfeltételek

  • A felügyelt identitások ismerete.

  • Windows rendszeren a helyi Rendszergazda istrators csoportnak vagy a Hybrid Agent Extension Applications csoportnak kell lennie.

  • Linuxon a himds csoport tagjának kell lennie.

  • Azure Arc-kompatibilis kiszolgálókhoz csatlakoztatott és regisztrált kiszolgáló.

  • Ön az előfizetés vagy az erőforráscsoport Tulajdonos csoportjának tagja a szükséges erőforrás-létrehozási és szerepkör-kezelési lépések végrehajtásához.

  • Egy Azure Key Vault a hitelesítő adatok tárolásához és lekéréséhez, valamint az Azure Arc-identitás hozzáférésének a KeyVaulthoz való hozzárendeléséhez.

    • Ha nem hozott létre Key Vaultot, olvassa el a Kulcstartó létrehozása című témakört.
    • A kiszolgáló által használt felügyelt identitás hozzáférésének konfigurálásához tekintse meg a Linuxhoz való hozzáférés engedélyezése vagy a Windowshoz való hozzáférés engedélyezése című témakört. Az 5. lépésben meg kell adnia az Azure Arc-kompatibilis kiszolgáló nevét. Ha ezt a PowerShell használatával szeretné elvégezni, olvassa el a Hozzáférési szabályzat hozzárendelése a PowerShell használatával című témakört.

Hozzáférési jogkivonat beszerzése REST API használatával

A rendszer által hozzárendelt felügyelt identitás azure-erőforrásokkal való hitelesítésére és használatára szolgáló módszer hasonló az Azure-beli virtuális géppel végzett műveletekhez.

Azure Arc-kompatibilis Windows-kiszolgáló esetén a PowerShell használatával meghívja a webes kérést, hogy lekérje a jogkivonatot a helyi gazdagépről az adott porton. Adja meg a kérést az IP-cím vagy a környezeti változó IDENTITY_ENDPOINT használatával.

$apiVersion = "2020-06-01"
$resource = "https://management.azure.com/"
$endpoint = "{0}?resource={1}&api-version={2}" -f $env:IDENTITY_ENDPOINT,$resource,$apiVersion
$secretFile = ""
try
{
    Invoke-WebRequest -Method GET -Uri $endpoint -Headers @{Metadata='True'} -UseBasicParsing
}
catch
{
    $wwwAuthHeader = $_.Exception.Response.Headers["WWW-Authenticate"]
    if ($wwwAuthHeader -match "Basic realm=.+")
    {
        $secretFile = ($wwwAuthHeader -split "Basic realm=")[1]
    }
}
Write-Host "Secret file path: " $secretFile`n
$secret = cat -Raw $secretFile
$response = Invoke-WebRequest -Method GET -Uri $endpoint -Headers @{Metadata='True'; Authorization="Basic $secret"} -UseBasicParsing
if ($response)
{
    $token = (ConvertFrom-Json -InputObject $response.Content).access_token
    Write-Host "Access token: " $token
}

A következő válasz egy példa, amelyet a rendszer visszaad:

A successful retrieval of the access token using PowerShell.

Azure Arc-kompatibilis Linux-kiszolgáló esetén a Bash használatával meghívja a webes kérést, hogy lekérje a jogkivonatot a helyi gazdagépről az adott porton. Adja meg a következő kérést az IP-cím vagy a környezeti változó IDENTITY_ENDPOINT használatával. A lépés végrehajtásához SSH-ügyfélre van szükség.

CHALLENGE_TOKEN_PATH=$(curl -s -D - -H Metadata:true "http://127.0.0.1:40342/metadata/identity/oauth2/token?api-version=2019-11-01&resource=https%3A%2F%2Fmanagement.azure.com" | grep Www-Authenticate | cut -d "=" -f 2 | tr -d "[:cntrl:]")
CHALLENGE_TOKEN=$(cat $CHALLENGE_TOKEN_PATH)
if [ $? -ne 0 ]; then
    echo "Could not retrieve challenge token, double check that this command is run with root privileges."
else
    curl -s -H Metadata:true -H "Authorization: Basic $CHALLENGE_TOKEN" "http://127.0.0.1:40342/metadata/identity/oauth2/token?api-version=2019-11-01&resource=https%3A%2F%2Fmanagement.azure.com"
fi

A következő válasz egy példa, amelyet a rendszer visszaad:

A successful retrieval of the access token using Bash.

A válasz tartalmazza az Azure-beli erőforrások eléréséhez szükséges hozzáférési jogkivonatot. Az Azure Key Vaultban való hitelesítéshez szükséges konfiguráció befejezéséhez tekintse meg az Access Key Vault windowsos vagy Linuxos Access Key Vault című témakört.

Következő lépések

  • Az Azure Key Vaultról további információt a Key Vault áttekintésében talál.

  • Megtudhatja, hogyan rendelhet hozzá felügyelt identitáshozzáférést egy erőforráshoz a PowerShell vagy az Azure CLI használatával.