Verifiëren in uw werkruimte met behulp van een service-principal
Soms is het niet geschikt om interactieve verificatie te gebruiken of om te verifiëren als een gebruikersaccount. Deze gevallen kunnen zich voordoen wanneer u taken wilt verzenden vanuit een webservice, een andere werkrol of een geautomatiseerd systeem. Een van de opties is het configureren van een beheerde identiteit, een andere optie is het gebruik van een service-principal, die in dit artikel wordt uitgelegd.
Vereiste: Een service-principal en toepassingsgeheim maken
Als u zich wilt verifiëren als een service-principal, moet u eerst een service-principal maken.
Een service-principal maken, toegang toewijzen en een referentie genereren:
Een Azure AD-toepassing maken:
Notitie
U hoeft geen omleidings-URI in te stellen.
- Noteer na het maken de toepassings-id (client) en de map-id (tenant).
Maak een referentie om u aan te melden als de toepassing:
- Selecteer Certificaten en geheimen in de instellingen voor uw toepassing.
- Selecteer Onder Clientgeheimen de optie Nieuw geheim maken.
- Geef een beschrijving en duur op en selecteer Vervolgens Toevoegen.
- Kopieer de waarde van het geheim onmiddellijk naar een veilige plaats. U kunt het niet meer zien.
Geef uw service-principal machtigingen voor toegang tot uw werkruimte:
- Open de Azure Portal.
- Voer in de zoekbalk de naam in van de resourcegroep waarin u uw werkruimte hebt gemaakt. Selecteer de resourcegroep wanneer deze wordt weergegeven in de resultaten.
- Selecteer toegangsbeheer (IAM) in het overzicht van de resourcegroep.
- Selecteer Roltoewijzing toevoegen.
- Zoek en selecteer de service-principal.
- Wijs de rol Inzender of Eigenaar toe.
Notitie
Als u een roltoewijzing wilt maken voor de resourcegroep of werkruimte, moet u eigenaar of beheerder van gebruikerstoegang zijn binnen het bereik van de roltoewijzing. Als u geen machtigingen hebt om de service-principal in uw abonnement te maken, moet u toestemming aanvragen van de eigenaar of beheerder van het Azure-abonnement.
Als u alleen machtigingen hebt op het niveau van de resourcegroep of werkruimte, kunt u de service-principal maken onder de rol Inzender met behulp van:
az ad sp create-for-rbac --role Contributor --scopes /subscriptions/<SUBSCRIPTION-ID>
Verifiëren als de service-principal
Optie 1: Omgevingsvariabelen gebruiken: de standaardreferentie die wordt gebruikt bij het maken van het Workspace
object is de DefaultAzureCredential, waarmee verschillende typen verificatie worden uitgevoerd.
De eerste is de EnvironmentCredential en daarmee geeft u de referenties van de service-principal door via de volgende omgevingsvariabelen:
- AZURE_TENANT_ID: id van de tenant van de service-principal. Ook wel de map-id genoemd.
- AZURE_CLIENT_ID: de client-id van de service-principal.
- AZURE_CLIENT_SECRET: een van de clientgeheimen van de service-principal.
Optie 2: ClientSecretCredential gebruiken: Geef een ClientSecretCredential door tijdens de instantiëring van het Workspace
object of stel de credentials
eigenschap in.
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
Notitie
De workspace.login()
methode is afgeschaft en is niet meer nodig. De eerste keer dat de service wordt aangeroepen, wordt een verificatie geprobeerd met behulp van de referenties die zijn doorgegeven in de Workspace
constructor of credentials
de eigenschap. Als er geen referenties zijn doorgegeven, worden verschillende verificatiemethoden uitgevoerd door de DefaultAzureCredential.