Sdílet prostřednictvím


Ověřte se ve svém pracovním prostoru pomocí service principal

Někdy není vhodné použít interaktivní ověřování nebo se ověřit pomocí uživatelského účtu. 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, další možností je použít entitu služby, což tento článek vysvětluje.

Předpoklad: Vytvoření služebního hlavního jména a tajemství aplikace

Pokud se chcete ověřit jako instanční objekt, musíte nejprve vytvořit instanční objekt.

Vytvořte aplikační objekt, přiřaďte přístup a vygenerujte přihlašovací údaje:

  1. Vytvoření aplikace Azure AD:

    Poznámka:

    Nemusíte nastavovat přesměrování URI.

    1. Po vytvoření si poznamenejte ID aplikace (klienta) a ID adresáře (tenanta).
  2. Vytvořte přihlašovací údaje pro přihlášení do aplikace:

    1. V nastavení aplikace vyberte Certifikáty a tajné kódy.
    2. V části Tajné kódy klienta vyberte Vytvořit nový tajný klíč.
    3. Zadejte popis a dobu trvání a pak vyberte Přidat.
    4. Okamžitě zkopírujte hodnotu tajného kódu na bezpečné místo – už ji neuvidíte!
  3. Dejte oprávnění servisnímu hlavnímu objektu pro přístup k pracovnímu prostoru:

    1. Otevřete Azure Portal.
    2. 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.
    3. V přehledu skupiny prostředků vyberte Řízení přístupu (IAM).
    4. Vyberte Přiřazení role.
    5. Vyhledejte a vyberte principál služby.
    6. Přiřaďte buď roli přispěvatele nebo vlastníka.

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 uživatelského přístupu v rámci 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 service principal pod rolí Přispěvatel pomocí:

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

Autentizovat jako aplikační objekt služby

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 ním předáte přihlašovací údaje servisního principálu pomocí následujících proměnných prostředí:

  • AZURE_TENANT_ID: ID tenanta servisního objektu. Označuje se také jako ID adresáře.
  • AZURE_CLIENT_ID: ID klienta instančního objektu.
  • AZURE_CLIENT_SECRET: jeden z klientských tajných klíčů hlavního objektu služby.

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 dojde k pokusu o ověření pomocí přihlašovacích údajů, které byly předány buď v konstruktoru Workspace, nebo v jeho vlastnosti credentials. Pokud nebyly předány žádné přihlašovací údaje, pokusí se o několik metod ověřování DefaultAzureCredential.