Ověřování v pracovním prostoru pomocí instančního objektu
Někdy není vhodné použít interaktivní ověřování nebo ověřit jako uživatelský účet. K těmto případům může dojít, když chcete odesílat úlohy z webové služby, jiné role pracovního procesu nebo automatizovaného systému. Jednou z možností je nakonfigurovat spravovanou identitu, druhou možností je použít instanční objekt, který tento článek vysvětluje.
Předpoklad: Vytvoření instančního objektu a tajného kódu aplikace
Pokud se chcete ověřit jako instanční objekt, musíte nejprve vytvořit instanční objekt.
Pokud chcete vytvořit instanční objekt, přiřaďte přístup a vygenerujte přihlašovací údaje:
Vytvoření aplikace Azure AD:
Poznámka:
Není nutné nastavit identifikátor URI přesměrování.
- Po vytvoření si poznamenejte ID aplikace (klienta) a ID adresáře (tenanta).
Vytvořte přihlašovací údaje pro přihlášení jako aplikaci:
- V nastavení aplikace vyberte Certifikáty a tajné kódy.
- V části Tajné kódy klienta vyberte Vytvořit nový tajný klíč.
- Zadejte popis a dobu trvání a pak vyberte Přidat.
- Okamžitě zkopírujte hodnotu tajného kódu na bezpečné místo – už ji neuvidíte!
Udělení oprávnění instančního objektu pro přístup k pracovnímu prostoru:
- Otevřete Azure Portal.
- Na panelu hledání zadejte název skupiny prostředků, ve které jste vytvořili pracovní prostor. Vyberte skupinu prostředků, jakmile se objeví ve výsledcích.
- V přehledu skupiny prostředků vyberte Řízení přístupu (IAM).
- Vyberte Přidat přiřazení role.
- Vyhledejte a vyberte instanční objekt.
- Přiřaďte roli Přispěvatel nebo Vlastník .
Poznámka:
Abyste mohli vytvořit přiřazení role ve skupině prostředků nebo pracovním prostoru, musíte být vlastníkem nebo správcem přístupu uživatele v oboru přiřazení role. Pokud nemáte oprávnění k vytvoření instančního objektu ve vašem předplatném, budete muset požádat o oprávnění od vlastníka nebo správce předplatného Azure.
Pokud máte oprávnění pouze na úrovni skupiny prostředků nebo pracovního prostoru, můžete vytvořit instanční objekt pod rolí Přispěvatel pomocí:
az ad sp create-for-rbac --role Contributor --scopes /subscriptions/<SUBSCRIPTION-ID>
Ověření jako instančního objektu
Možnost 1: Použití proměnných prostředí: Výchozí přihlašovací údaje použité při Workspace
vytváření objektu jsou DefaultAzureCredential, které se pokusí o několik typů ověřování.
První je EnvironmentCredential a s tím, že předáte přihlašovací údaje instančního objektu pomocí následujících proměnných prostředí:
- AZURE_TENANT_ID: ID tenanta instančního objektu. Označuje se také jako ID adresáře.
- AZURE_CLIENT_ID: ID klienta instančního objektu.
- AZURE_CLIENT_SECRET: jeden z tajných kódů klienta instančního objektu.
Možnost 2: Použití ClientSecretCredential: Předat ClientSecretCredential během vytváření instance objektu Workspace
nebo nastavit credentials
vlastnost.
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
Poznámka:
Metoda workspace.login()
je zastaralá a už není nutná. Při prvním volání služby se pokusí o ověření pomocí přihlašovacích údajů předaných v konstruktoru Workspace
nebo jeho credentials
vlastnosti. Pokud nebyly předány žádné přihlašovací údaje, pokusí se o několik metod ověřování DefaultAzureCredential.