Autentisering med tjänstens huvudnamn i Azure AD

Slutförd

Personalen på ditt företag använder flera lokala program i den dagliga verksamheten. Företaget har nyligen genomfört en granskning av säkerheten på hela företaget. Granskningen visade att ett antal program innehåller ett designfel. Användarnamn och lösenord lagrades antingen i programmets källkod eller i associerade konfigurationsfiler.

Rapporten lyfte fram följande säkerhetsproblem med att lagra användarnamn och lösenord i kod eller konfigurationsfiler:

  • Alla kan läsa lösenord som lagrades i klartext.
  • Läckta autentiseringsuppgifter äventyrar nätverkssäkerheten i hela företagsdomänen.
  • Läckta autentiseringsuppgifter ger åtkomst till känsliga resurser som försäljnings- och marknadsföringsdata.
  • Den nuvarande lösningen för lagring av autentiseringsuppgifter skapar en onödig teknikskuld där du måste uppdatera och distribuera om programmet när autentiseringsuppgifterna upphör att gälla.
  • Den nuvarande lösningen för lagring av autentiseringsuppgifter gör att programmet bara kan användas lokalt. Du kan inte skala ut programmet för molnanvändning utan stora ändringar.

Som utvecklare har du fått i uppgift att åtgärda de här problemen. Granskningsrapporten föreslog att ni skulle använda tjänstens huvudnamn i Azure för att förbättra programsäkerheten.

I den här lektionen ska vi gå igenom huvudnamn för tjänster i Azure lite närmare. Du får lära dig vad de är och hur du implementerar dem för att få åtkomst till Azure-resurser.

Vad är tjänstens huvudnamn i Azure?

Tjänstens huvudnamn i Azure kan liknas vid ett proxykonto eller en identitet som representerar din app eller tjänst. Det här kontot hanteras via Azure Active Directory (Azure AD). Du ger åtkomst till de Azure-resurser som tjänstens huvudnamn behöver använda. Använd tjänstens huvudnamn i stället för att bädda in autentiseringsuppgifter eller skapa ett dummy-konto för din app.

Tjänstens huvudnamn ligger på klientorganisationsnivå i Azure. De används till att ge åtkomst till resurser i klientorganisationen.

Du skapar ett Azure AD-program som representerar din app i Azure-portalen. Sedan associerar du programobjektet med tjänstens huvudnamn.

Om alla resurser ligger i samma klientorganisation behöver du bara associera en förekomst av tjänstens huvudnamn. Om appen behöver åtkomst till Azure-resurser i en annan klientorganisation måste du associera en instans av tjänstens huvudnamn till varje klientorganisation.

Diagram som visar relationen mellan tjänstens huvudnamn och klienter.

Du skapar tjänstens huvudnamn:

  • I portalen
  • Med PowerShell
  • Med CLI-kommandon
  • Med API-anrop

Använda Microsofts identitetsplattform i dina program

Med Microsofts identitetsplattform kan dina program autentiseras enklare i Azure AD. Autentiseringen av dina appar blir mer enhetlig. När ett program autentiseras i Azure AD får det en unik token. Programmet använder denna token varje gång det gör ett anrop till ett API eller ett anrop för att få åtkomst till en tjänst. När du skapar ett program kan du använda MSAL (Microsoft Authentication Library) för att ge stöd för enkel inloggning.

Du kan etablera ett program för Microsoft Identity Platform på flera olika sätt. Här använder vi portalen för att registrera ett program i Azure.

  1. Logga in i Azure-portalen och välj Azure Active Directory.

  2. Välj Appregistreringar.

  3. Välj Ny registrering i det övre vänstra hörnet.

    Skärmbild som visar hur du lägger till ett program i Azure AD.

  4. Ange ett visningsnamn för appen.

  5. Ange vilka kontotyper som stöds. välj bland följande konton:

    • Konton i ditt företags klientorganisation i Azure AD.
    • Konton i valfritt företags klientorganisation i Azure AD.
    • Organisationskonton och personliga konton, till exempel Microsoft eller XBox.
  6. (Valfritt) Välj en omdirigerings-URI-parameter. De två tillgängliga typerna är Webb och Offentlig klient. En omdirigerings-URI ser ut som en webblänk (HTTPS). Länken behöver inte vara giltig om du inte väljer en offentlig klient.

När du har slutfört stegen registreras programmet i Azure AD. Det kopplas också till tjänstens huvudnamn.

Tilldela programroller

Azure AD-program måste tilldelas roller för att de ska fungera med andra tjänster. Azure använder rollbaserad åtkomstkontroll (RBAC) för att nära hantera åtkomsten till Azure-resurser och hantera hur dessa resurser används. Ett programs roller avgör dess behörigheter och omfång.

RBAC-behörigheter ärvs från nivån för det angivna omfånget. Om du till exempel tilldelar rollen som läsare till en resursgrupp ges läsbehörighet till alla resurser i gruppen.

Skärmbild som visar hur du lägger till en roll i ett program.

Tilldela de roller som appen behöver för åtkomst till nyckelvalvet i Azure-portalen:

  1. Välj nyckelvalvet i portalen.
  2. Välj Åtkomstkontroll (IAM) till vänster.
  3. Välj Lägg till i tilldelningsfönstret Lägg till en roll.
  4. Välj den roll du behöver använda.
  5. Godkänn standardalternativet för tilldela åtkomst till: Azure AD – användare, grupp eller tjänstens huvudnamn.
  6. Sök efter ditt program. Den visas inte i listrutan.
  7. Välj programmet och välj sedan Spara.

Hantera nycklar och behörigheter

Du behöver två parametrar för att få åtkomst till Azure-resurser med hjälp av tjänstens huvudnamn:

  • Katalog-ID (klientorganisation): Unikt ID som identifierar Azure AD-klientorganisationen.
  • Program-ID (klient): Unikt ID som identifierar ditt Azure AD-program.

Skärmbild som visar hur du lägger till en klienthemlighet.

Programmet behöver autentiseringsuppgifter så att förfrågningar kan autentiseras. Autentiseringsuppgifterna gör att programmet kan identifiera sig. Välj mellan två typer av autentiseringsuppgifter:

  • Certifikat: Du genererar ett certifikat lokalt och laddar sedan upp .cer-, .pem- eller .crt-filen. Ett certifikat kallas ofta för en offentlig nyckel.
  • Klienthemlighet: Den här komplexa strängen genereras i Azure. En klienthemlighet kallas även för ett programlösenord.

Oavsett om du använder en klienthemlighet eller ett certifikat måste du ange när uppgiften ska upphöra att gälla. Förfallotiden varierar beroende på organisation, men är den är ofta ett eller två år.

Anteckning

Eftersom certifikat kan gå ut är det säkrast att ange att klienthemligheter också ska upphöra att gälla. Hanteringen av de här autentiseringsuppgifterna är en nackdel för appar som använder Azure-resurser via tjänstens huvudnamn.

När ska du använda tjänstens huvudnamn

Nu har vi gått igenom de manuella processerna för att skapa Azure AD-program, associera tjänstens huvudnamn och ge åtkomst till resurser. Du använder endast de här manuella processerna i två situationer:

  • Programmet eller tjänsten körs lokalt.
  • De resurser eller program du behöver åtkomst till har inte stöd för hanterade identiteter.

Det säkraste och mest praktiska sättet att hantera autentisering i Azure är att använda hanterade identiteter.

Testa dina kunskaper

1.

Vilka tre objekt behöver en anpassad app för autentisering mot ett Azure AD-program?

2.

Vilken tjänst anropas när ditt program skickar en token till Azure?