Autentisering i Azure Key Vault

Autentisering med Key Vault fungerar tillsammans med Azure Active Directory (Azure AD), som ansvarar för att autentisera identiteten för ett visst säkerhetsobjekt.

Ett säkerhetsobjekt är ett objekt som representerar en användare, grupp, tjänst eller ett program som begär åtkomst till Azure-resurser. Azure tilldelar ett unikt objekt-ID till varje säkerhetsobjekt.

  • Ett säkerhetsobjekt för användaren identifierar en person som har en profil i Azure Active Directory.

  • Ett gruppsäkerhetsobjekt identifierar en uppsättning användare som skapats i Azure Active Directory. Alla roller eller behörigheter som tilldelats gruppen beviljas till alla användare i gruppen.

  • Ett huvudnamn för tjänsten är en typ av säkerhetsobjekt som identifierar ett program eller en tjänst, det vill säga ett kodstycke i stället för en användare eller grupp. Objekt-ID:t för tjänstens huvudnamn kallas dess klient-ID och fungerar som dess användarnamn. Tjänstens huvudnamns klienthemlighet fungerar som dess lösenord.

För program finns det två sätt att hämta ett huvudnamn för tjänsten:

  • Rekommenderat: Aktivera en system tilldelad hanterad identitet för programmet.

    Med hanterad identitet hanterar Azure programmets tjänsthuvudnamn internt och autentiserar automatiskt programmet med andra Azure-tjänster. Hanterad identitet är tillgänglig för program som distribueras till en mängd olika tjänster.

    Mer information finns i Översikt över hanterad identitet. Se även Azure-tjänstersom stöder hanterad identitet , som länkar till artiklar som beskriver hur du aktiverar hanterad identitet för specifika tjänster (till exempel App Service, Azure Functions, Virtual Machines osv.).

  • Om du inte kan använda en hanterad identitet registrerar du i stället programmet med din Azure AD-klientorganisation enligt beskrivningen i Snabbstart:Registrera ett program med Azure Identity Platform. Registreringen skapar också ett andra programobjekt som identifierar appen för alla klienter.

Konfigurera Key Vault brandväggen

Som standard Key Vault åtkomst till resurser via offentliga IP-adresser. För bättre säkerhet kan du också begränsa åtkomsten till specifika IP-intervall, tjänstslutpunkter, virtuella nätverk eller privata slutpunkter.

Mer information finns i Access Azure Key Vault bakom en brandvägg.

Det Key Vault förfrågningsåtgärdsflödet med autentisering

Key Vault sker som en del av varje begärandeåtgärd på Key Vault. När token har hämtats kan den återanvändas för efterföljande anrop. Exempel på autentiseringsflöde:

  1. En tokenbegäran för att autentisera med Azure AD, till exempel:

    • En Azure-resurs, till exempel en virtuell dator eller ett App Service-program med en hanterad identitet, kontaktar REST-slutpunkten för att hämta en åtkomsttoken.
    • En användare loggar in på Azure Portal med ett användarnamn och lösenord.
  2. Om autentiseringen med Azure AD lyckas beviljas säkerhetsobjekt en OAuth-token.

  3. Ett anrop till Key Vault REST API via Key Vault slutpunkten (URI).

  4. Key Vault Firewall kontrollerar följande kriterier. Om något villkor uppfylls tillåts anropet. Annars blockeras anropet och ett förbjudet svar returneras.

    • Brandväggen är inaktiverad och den offentliga slutpunkten för Key Vault kan nås från det offentliga Internet.
    • Anroparen är en Key Vault betrodd tjänst,så att den kan kringgå brandväggen.
    • Anroparen visas i brandväggen efter IP-adress, virtuellt nätverk eller tjänstslutpunkt.
    • Anroparen kan nå Key Vault via en konfigurerad privat länkanslutning.
  5. Om brandväggen tillåter anropet anropar Key Vault Azure AD för att verifiera säkerhetsobjekts åtkomsttoken.

  6. Key Vault kontrollerar om säkerhetsobjekt har nödvändig behörighet för den begärda åtgärden. Annars returnerar Key Vault ett förbjudet svar.

  7. Key Vault utför den begärda åtgärden och returnerar resultatet.

Följande diagram illustrerar processen för ett program som anropar ett api Key Vault "Hämta hemlighet":

Det Azure Key Vault autentiseringsflödet

Anteckning

Key Vault SDK-klienter för hemligheter, certifikat och nycklar gör ytterligare ett anrop till Key Vault utan åtkomsttoken, vilket resulterar i ett 401-svar för att hämta klientinformation. Mer information finns i Autentisering, begäranden och svar

Autentisering för Key Vault i programkod

Key Vault SDK använder Azure Identity-klientbiblioteket, vilket gör att sömlös autentisering Key Vault mellan miljöer med samma kod

Azure Identity-klientbibliotek

.NET Python Java JavaScript
Azure Identity SDK .NET Azure Identity SDK Python Azure Identity SDK Java Azure Identity SDK JavaScript

Mer information om metodtips och utvecklarexempel finns i Autentisera för Key Vault i kod

Nästa steg