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:
-
Kommentar
Du behöver inte ange en omdirigerings-URI.
- När du har skapat det skriver du ned program-ID:t (klient)-ID:t och katalog-ID:t (klientorganisation).
Skapa en autentiseringsuppgift för att logga in som programmet:
- I inställningarna för ditt program väljer du Certifikat och hemligheter.
- Under Klienthemligheter väljer du Skapa ny hemlighet.
- Ange en beskrivning och varaktighet och välj sedan Lägg till.
- Kopiera hemlighetens värde till en säker plats omedelbart – du kommer inte att kunna se den igen!
Ge tjänstens huvudnamn behörighet att komma åt din arbetsyta:
- Öppna Azure Portal.
- 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.
- I resursgruppsöversikten väljer du Åtkomstkontroll (IAM).
- Välj Lägg till rolltilldelning.
- Sök efter och välj tjänstens huvudnamn.
- 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.