machine-learning-resources-and-workflows"></a>Konfigurera autentisering för Azure Machine Learning-resurser och -arbetsflöden


Lär dig hur du konfigurerar autentisering till din Azure Machine Learning-arbetsyta. Autentisering till din Azure Machine Learning-arbetsyta baseras på __Azure Active Directory__ (Azure AD) för de flesta saker. I allmänhet finns tre arbets flöden för autentisering som du kan använda när du ansluter till arbets ytan:

* __Interaktiv__: du använder ditt konto i Azure Active Directory för att antingen autentisera dig direkt eller hämta en token som används för autentisering. Interaktiv autentisering används vid _experimentering och iterativ utveckling_. Med interaktiv autentisering kan du kontrol lera åtkomsten till resurser (till exempel en webb tjänst) per användare.

* __Tjänstens huvud namn__: du skapar ett tjänst huvud namns konto i Azure Active Directory och använder det för att autentisera eller hämta en token. Ett huvud namn för tjänsten används när du behöver en _automatiserad process för att autentisera_ till tjänsten utan att det krävs några åtgärder från användaren. Till exempel ett kontinuerligt integrerings-och distributions skript som tågen och testar en modell varje gång inlärnings koden ändras.

* __Hanterad identitet__: när du använder Azure Machine Learning SDK _på en virtuell Azure-dator_ kan du hanterade identiteter för Azure. Det här arbets flödet gör att den virtuella datorn kan ansluta till arbets ytan med hjälp av den hanterade identiteten, utan att lagra autentiseringsuppgifter i python-kod eller fråga användaren om att autentisera. Azure Machine Learning beräknings kluster kan också konfigureras för att använda en hanterad identitet för att komma åt arbets ytan när du _tränar modeller_.

> [!IMPORTANT]
> Oavsett vilket arbets flöde för autentisering som används, används Azures rollbaserade åtkomst kontroll (Azure RBAC) för att begränsa den åtkomst nivå som tillåts för resurserna. En administratörs-eller Automation-process kan till exempel ha åtkomst för att skapa en beräknings instans, men inte använda den, medan en data expert kan använda den, men inte ta bort eller skapa den. Mer information finns i [Hantera åtkomst till Azure Machine Learning-arbetsyta](how-to-assign-roles.md).

## <a name="prerequisites"></a>Förutsättningar

* Skapa en [Azure Machine Learning-arbetsyta](how-to-manage-workspace.md).
* [Konfigurera utvecklings miljön](how-to-configure-environment.md) för att installera Azure Machine Learning SDK eller använd en [Azure Machine Learning beräknings instans](concept-azure-machine-learning-architecture.md#compute-instance) med SDK redan installerad.

## <a name="azure-active-directory"></a>Azure Active Directory

Alla autentiserings-arbetsflöden för arbets ytan förlitar sig på Azure Active Directory. Om du vill att användarna ska autentiseras med hjälp av enskilda konton måste de ha konton i din Azure AD. Om du vill använda tjänstens huvud namn måste de finnas i din Azure AD. Hanterade identiteter är också en funktion i Azure AD. 

Mer information om Azure AD finns i [Vad är Azure Active Directory autentisering](..//active-directory/authentication/overview-authentication.md).

När du har skapat Azure AD-kontona läser du [Hantera åtkomst till Azure Machine Learning arbets ytan](how-to-assign-roles.md) för information om hur du beviljar dem åtkomst till arbets ytan och andra åtgärder i Azure Machine Learning.

## <a name="configure-a-service-principal"></a>Konfigurera ett huvudnamn för tjänsten

Om du vill använda ett huvud namn för tjänsten (SP) måste du först skapa SP och bevilja åtkomst till din arbets yta. Som tidigare nämnts används Azure rollbaserad åtkomst kontroll (Azure RBAC) för att kontrol lera åtkomsten, så du måste också bestämma vilken åtkomst som ska ge SP.

> [!IMPORTANT]
> När du använder ett huvud namn för tjänsten ger du det den __lägsta åtkomst som krävs för den aktivitet__ som används för. Du skulle till exempel inte bevilja tjänstens huvud namn ägare eller deltagar åtkomst om all den används för läser in åtkomsttoken för en webb distribution.
>
> Skälet till att bevilja den lägsta åtkomsten är att tjänstens huvud namn använder ett lösen ord för att autentisera, och lösen ordet kan lagras som en del av ett Automation-skript. Om lösen ordet läcker, minimeras den skadliga användningen av SP för en speciell uppgift.

Det enklaste sättet att skapa en SP-och bevilja åtkomst till din arbets yta är genom att använda [Azure CLI](/cli/azure/install-azure-cli?preserve-view=true&view=azure-cli-latest). Använd följande steg för att skapa ett huvud namn för tjänsten och ge det åtkomst till din arbets yta:

> [!NOTE]
> Du måste vara administratör för prenumerationen för att utföra alla de här stegen.

1. Autentisera till din Azure-prenumeration:

    ```azurecli-interactive
    az login
    ```

    Om CLI kan öppna din standardwebbläsare så sker det och en inloggningssida läses in. Annars måste du öppna en webbläsare och följa anvisningarna på kommando raden. Anvisningarna omfattar att bläddra till [https://aka.ms/devicelogin](https://aka.ms/devicelogin) och ange en auktoriseringskod.

    Om du har flera Azure-prenumerationer kan du använda `az account set -s <subscription name or ID>` kommandot för att ställa in prenumerationen. Mer information finns i [använda flera Azure-prenumerationer](https://docs.microsoft.com/cli/azure/manage-azure-subscriptions-azure-cli?view=azure-cli-latest).

    För andra metoder för autentisering, se [Logga in med Azure CLI](/cli/azure/authenticate-azure-cli?preserve-view=true&view=azure-cli-latest).

1. Installera Azure Machine Learning-tillägget:

    ```azurecli-interactive
    az extension add -n azure-cli-ml
    ```

1. Skapa tjänstens huvud namn. I följande exempel skapas en SP-namngiven **ml-autentisering** :

    ```azurecli-interactive
    az ad sp create-for-rbac --sdk-auth --name ml-auth
    ```

    Utdata är en JSON som liknar följande. Anteckna `clientId` `clientSecret` fälten, och `tenantId` eftersom du behöver dem för andra steg i den här artikeln.

    ```json
    {
        "clientId": "your-client-id",
        "clientSecret": "<PASSWORD>-client-secret",
        "