Dela via


Autentisera på din arbetsyta med hjälp av tjänstens huvudnamn

Ibland är det olämpligt att använda interaktiv autentisering eller autentisera som ett användarkonto. Dessa fall kan uppstå när du vill skicka jobb från en webbtjänst, en annan arbetsroll eller ett automatiserat system. Ett alternativ är att konfigurera en hanterad identitet, ett annat alternativ är att använda tjänstens huvudnamn, vilket förklaras i den här artikeln.

Krav: Skapa ett huvudnamn för tjänsten och en programhemlighet

Om du vill autentisera som tjänstens huvudnamn måste du först skapa ett huvudnamn för tjänsten.

Om du vill skapa ett huvudnamn för tjänsten tilldelar du åtkomst och genererar en autentiseringsuppgift:

  1. Skapa ett Azure AD-program:

    Kommentar

    Du behöver inte ange en omdirigerings-URI.

    1. När du har skapat det skriver du ned program-ID:t (klient)-ID:t och katalog-ID:t (klientorganisation).
  2. Skapa en autentiseringsuppgift för att logga in som programmet:

    1. I inställningarna för ditt program väljer du Certifikat och hemligheter.
    2. Under Klienthemligheter väljer du Skapa ny hemlighet.
    3. Ange en beskrivning och varaktighet och välj sedan Lägg till.
    4. Kopiera hemlighetens värde till en säker plats omedelbart – du kommer inte att kunna se den igen!
  3. Ge tjänstens huvudnamn behörighet att komma åt din arbetsyta:

    1. Öppna Azure Portal.
    2. I sökfältet anger du namnet på den resursgrupp som du skapade din arbetsyta i. Välj resursgruppen när den visas i resultatet.
    3. I resursgruppsöversikten väljer du Åtkomstkontroll (IAM).
    4. Välj Lägg till rolltilldelning.
    5. Sök efter och välj tjänstens huvudnamn.
    6. Tilldela rollen Deltagare eller Ägare .

Kommentar

För att kunna skapa en rolltilldelning på resursgruppen eller arbetsytan måste du vara ägare eller administratör för användaråtkomst i omfånget för rolltilldelningen. Om du inte har behörighet att skapa tjänstens huvudnamn i din prenumeration måste du begära behörighet från ägaren eller administratören för Azure-prenumerationen.

Om du bara har behörigheter på resursgrupps- eller arbetsytenivå kan du skapa tjänstens huvudnamn under rollen Deltagare med hjälp av:

az ad sp create-for-rbac --role Contributor --scopes /subscriptions/<SUBSCRIPTION-ID>

Autentisera som tjänstens huvudnamn

Alternativ 1: Använda miljövariabler: Standardautentiseringsuppgifterna som används vid Workspace skapandet av objektet är DefaultAzureCredential, som försöker sig på flera typer av autentisering. Den första är EnvironmentCredential och med det skickar du autentiseringsuppgifterna för tjänstens huvudnamn via följande miljövariabler:

  • AZURE_TENANT_ID: ID för tjänstens huvudnamns klientorganisation. Kallas även dess katalog-ID.
  • AZURE_CLIENT_ID: tjänstens huvudnamns klient-ID.
  • AZURE_CLIENT_SECRET: en av tjänstens huvudnamns klienthemligheter.

Alternativ 2: Använda ClientSecretCredential: Skicka en ClientSecretCredential under instansieringen av Workspace objektet eller ange credentials egenskapen.

from azure.identity import ClientSecretCredential

tenant_id = os.environ["AZURE_TENANT_ID"]
client_id = os.environ["AZURE_CLIENT_ID"]
client_secret = os.environ["AZURE_CLIENT_SECRET"]
credential = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)

workspace.credentials = credential

Kommentar

Metoden workspace.login() är inaktuell och behövs inte längre. Första gången det finns ett anrop till tjänsten görs ett autentiseringsförsök med de autentiseringsuppgifter som skickas i Workspace konstruktorn eller dess credentials egenskap. Om inga autentiseringsuppgifter har skickats görs flera autentiseringsmetoder av StandardAzureCredential.