Använda hanterade identiteter för att komma åt Azure SQL Database eller Azure Synapse Analytics från ett Azure Stream Analytics-jobb

Azure Stream Analytics stöder hanterad identitetsautentisering för Azure SQL Database- och Azure Synapse Analytics-utdatamottagare. Hanterade identiteter eliminerar begränsningarna för användarbaserade autentiseringsmetoder, till exempel behovet av att autentisera igen på grund av lösenordsändringar eller förfallodatum för användartoken som inträffar var 90:e dag. När du tar bort behovet av att manuellt autentisera kan dina Stream Analytics-distributioner automatiseras helt.

En hanterad identitet är ett hanterat program registrerat i Microsoft Entra-ID som representerar ett visst Stream Analytics-jobb. Det hanterade programmet används för att autentisera till en målresurs. Den här artikeln visar hur du aktiverar hanterad identitet för en Azure SQL Database eller azure Synapse Analytics-utdata från ett Stream Analytics-jobb via Azure-portalen.

Översikt

Den här artikeln visar de steg som krävs för att ansluta Stream Analytics-jobbet till din Azure SQL Database- eller Azure Synapse Analytics SQL-pool med läget för hanterad identitetsautentisering.

  • Först skapar du en systemtilldelad hanterad identitet för ditt Stream Analytics-jobb. Det här är ditt jobbs identitet i Microsoft Entra-ID.

  • Lägg till en Active Directory-administratör till sql-servern eller Synapse-arbetsytan, vilket möjliggör Microsoft Entra ID-autentisering (hanterad identitet) för den resursen.

  • Skapa sedan en innesluten användare som representerar Stream Analytics-jobbets identitet i databasen. När Stream Analytics-jobbet interagerar med din SQL DB- eller Synapse SQL DB-resurs är det här den identitet som det refererar till för att kontrollera vilka behörigheter ditt Stream Analytics-jobb har.

  • Bevilja behörigheter till Stream Analytics-jobbet för att få åtkomst till SQL Database- eller Synapse SQL-pooler.

  • Lägg slutligen till Azure SQL Database/Azure Synapse Analytics som utdata i Stream Analytics-jobbet.

Förutsättningar

Följande krävs för att använda den här funktionen:

  • Ett Azure Stream Analytics-jobb.

  • En Azure SQL Database-resurs.

Skapa en hanterad identitet

Först skapar du en hanterad identitet för ditt Azure Stream Analytics-jobb.

  1. Öppna ditt Azure Stream Analytics-jobb i Azure-portalen.

  2. I den vänstra navigeringsmenyn väljer du Hanterad identitet under Konfigurera. Markera sedan kryssrutan bredvid Använd systemtilldelad hanterad identitet och välj Spara.

    Select system-assigned managed identity

    Ett tjänsthuvudnamn för Stream Analytics-jobbets identitet skapas i Microsoft Entra-ID. Livscykeln för den nyligen skapade identiteten hanteras av Azure. När Stream Analytics-jobbet tas bort tas den associerade identiteten (dvs. tjänstens huvudnamn) bort automatiskt av Azure.

  3. Du kan också växla till användartilldelade hanterade identiteter.

  4. När du sparar konfigurationen visas objekt-ID (OID) för tjänstens huvudnamn som huvudnamns-ID enligt nedan:

    Object ID shown as Principal ID

    Tjänstens huvudnamn har samma namn som Stream Analytics-jobbet. Om namnet på ditt jobb till exempel är MyASAJob är namnet på tjänstens huvudnamn även MyASAJob.

Välj en Active Directory-administratör

När du har skapat en hanterad identitet väljer du en Active Directory-administratör.

  1. Gå till din Azure SQL Database- eller Azure Synapse Analytics SQL-poolresurs och välj den SQL Server- eller Synapse-arbetsyta som resursen finns under. Du hittar länken till dessa på resursöversiktssidan bredvid Servernamn eller Arbetsytenamn.

  2. Välj Active Directory Admin eller SQL Active Directory Admin under Inställningar för SQL Server respektive Synapse Workspace. Välj sedan Ange administratör.

    Active Directory admin page

  3. På sidan Active Directory-administratör söker du efter en användare eller grupp som ska vara administratör för SQL Server och klickar på Välj. Det här är den användare som kommer att kunna skapa den inneslutna databasanvändaren i nästa avsnitt.

    Add Active Directory admin

    På active directory-administratörssidan visas alla medlemmar och grupper i Active Directory. Nedtonade användare eller grupper kan inte väljas eftersom de inte stöds som Microsoft Entra-administratörer. Se listan över administratörer som stöds i avsnittet Microsoft Entra-funktioner och begränsningar i Använda Microsoft Entra-autentisering för autentisering med SQL Database eller Azure Synapse.

  4. Välj Spara på active directory-administratörssidan. Processen för att ändra administratör tar några minuter.

Skapa en innesluten databasanvändare

Sedan skapar du en innesluten databasanvändare i din Azure SQL- eller Azure Synapse-databas som är mappad till Microsoft Entra-identiteten. Den inneslutna databasanvändaren har ingen inloggning för den primära databasen, men mappas till en identitet i katalogen som är associerad med databasen. Microsoft Entra-identiteten kan vara ett enskilt användarkonto eller en grupp. I det här fallet vill du skapa en oberoende databasanvändare för ditt Stream Analytics-jobb.

Mer information finns i följande artikel för bakgrund om Microsoft Entra-integrering: Universell autentisering med SQL Database och Azure Synapse Analytics (SSMS-stöd för MFA)

  1. Anslut till din Azure SQL- eller Azure Synapse-databas med SQL Server Management Studio. Användarnamnet är en Microsoft Entra-användare med ALTER ANY USER-behörighet. Administratören som du angav på SQL Server är ett exempel. Använd Microsoft Entra ID – Universell med MFA-autentisering .

    Connect to SQL Server

    Servernamnet <SQL Server name>.database.windows.net kan vara annorlunda i olika regioner. Till exempel bör Kina-regionen använda <SQL Server name>.database.chinacloudapi.cn.

    Du kan ange en specifik Azure SQL- eller Azure Synapse-databas genom att gå till Alternativ > Anslut ionsegenskaper > Anslut till databasen.

    SQL Server connection properties

  2. När du ansluter för första gången kan du stöta på följande fönster:

    New firewall rule window

    1. I så fall går du till din SQL Server-/Synapse-arbetsyteresurs på Azure-portalen. Under avsnittet Säkerhet öppnar du sidan Brandväggar och virtuella nätverk/brandväggar .
    2. Lägg till en ny regel med valfritt regelnamn.
    3. Använd från IP-adressen från fönstret Ny brandväggsregel för start-IP.
    4. Använd till IP-adressen från fönstret Ny brandväggsregel för slut-IP.
    5. Välj Spara och försök att ansluta från SQL Server Management Studio igen.
  3. När du är ansluten skapar du den inneslutna databasanvändaren. Följande SQL-kommando skapar en innesluten databasanvändare som har samma namn som ditt Stream Analytics-jobb. Se till att ta med hakparenteserna runt ASA_JOB_NAME. Använd följande T-SQL-syntax och kör frågan.

    CREATE USER [ASA_JOB_NAME] FROM EXTERNAL PROVIDER;
    

    Kontrollera om du har lagt till den inneslutna databasanvändaren korrekt genom att köra följande kommando i SSMS under den tillhörande databasen och kontrollera om din ASA_JOB_NAME finns under kolumnen "namn".

    SELECT * FROM <SQL_DB_NAME>.sys.database_principals
    WHERE type_desc = 'EXTERNAL_USER'
    
  4. För att Microsofts Microsoft Entra-ID ska kunna kontrollera om Stream Analytics-jobbet har åtkomst till SQL Database måste vi ge Microsoft Entra behörighet att kommunicera med databasen. Det gör du genom att gå till sidan "Brandväggar och virtuella nätverk"/"Brandväggar" i Azure-portalen igen och aktivera "Tillåt att Azure-tjänster och resurser får åtkomst till den här servern/arbetsytan".

    Firewall and virtual network

Bevilja Stream Analytics-jobbbehörigheter

När du har skapat en innesluten databasanvändare och gett åtkomst till Azure-tjänster i portalen enligt beskrivningen i föregående avsnitt har Stream Analytics-jobbet behörighet från Hanterad identitet till CONNECT till din Azure SQL-databasresurs via hanterad identitet. Vi rekommenderar att du beviljar SELECT - och INSERT-behörigheterna till Stream Analytics-jobbet eftersom de behövs senare i Stream Analytics-arbetsflödet. Med SELECT-behörigheten kan jobbet testa sin anslutning till tabellen i Azure SQL-databasen. Med INSERT-behörigheten kan du testa Stream Analytics-frågor från slutpunkt till slutpunkt när du har konfigurerat indata och Azure SQL-databasutdata.

Du kan bevilja dessa behörigheter till Stream Analytics-jobbet med hjälp av SQL Server Management Studio. Mer information finns i referensen GRANT (Transact-SQL).

Om du bara vill bevilja behörighet till en viss tabell eller ett visst objekt i databasen använder du följande T-SQL-syntax och kör frågan.

GRANT CONNECT TO ASA_JOB_NAME;
GRANT SELECT, INSERT ON OBJECT::TABLE_NAME TO ASA_JOB_NAME;

Du kan också högerklicka på din Azure SQL- eller Azure Synapse-databas i SQL Server Management Studio och välja Egenskaperbehörigheter>. På behörighetsmenyn kan du se Stream Analytics-jobbet som du lade till tidigare och du kan manuellt bevilja eller neka behörigheter som du vill.

Om du vill titta på alla behörigheter som du har lagt till i din ASA_JOB_NAME användare kör du följande kommando i SSMS under den tillhörande databasen:

SELECT dbprin.name, dbprin.type_desc, dbperm.permission_name, dbperm.state_desc, dbperm.class_desc, object_name(dbperm.major_id)
FROM sys.database_principals dbprin
LEFT JOIN sys.database_permissions dbperm
ON dbperm.grantee_principal_id = dbprin.principal_id
WHERE dbprin.name = '<ASA_JOB_NAME>'

Skapa en Azure SQL Database- eller Azure Synapse-utdata

Kommentar

När du använder SQL Managed Instance (MI) som referensindata måste du konfigurera en offentlig slutpunkt i din SQL Managed Instance. Du måste ange det fullständigt kvalificerade domännamnet med porten när du konfigurerar databasegenskapen. Exempel: sampleserver.public.database.windows.net,3342.

Nu när din hanterade identitet har konfigurerats är du redo att lägga till en Azure SQL Database- eller Azure Synapse-utdata till ditt Stream Analytics-jobb.

Se till att du har skapat en tabell i SQL Database med rätt utdataschema. Namnet på den här tabellen är en av de obligatoriska egenskaper som måste fyllas i när du lägger till SQL Database-utdata i Stream Analytics-jobbet. Kontrollera också att jobbet har SELECT - och INSERT-behörigheter för att testa anslutningen och köra Stream Analytics-frågor. Se avsnittet Bevilja Stream Analytics-jobbbehörigheter om du inte redan har gjort det.

  1. Gå tillbaka till Stream Analytics-jobbet och gå till sidan Utdata under Jobbtopologi.

  2. Välj Lägg till > SQL Database. I fönstret utdataegenskaper för SQL Database-utdatamottagaren väljer du Hanterad identitet i listrutan Autentiseringsläge.

  3. Fyll i resten av egenskaperna. Mer information om hur du skapar en SQL Database-utdata finns i Skapa en SQL Database-utdata med Stream Analytics. När du är klar väljer du Spara.

  4. När du har klickat på Spara ska ett anslutningstest till resursen utlösas automatiskt. När det har slutförts har du konfigurerat Stream Analytics-jobbet för att ansluta till azure SQL Database eller Synapse SQL Database med hjälp av läget för hanterad identitetsautentisering.

Ytterligare steg för SQL-referensdata

Azure Stream Analytics kräver att du konfigurerar jobbets lagringskonto när du använder SQL-referensdata. Det här lagringskontot används för att lagra innehåll som är relaterat till ditt Stream Analytics-jobb, till exempel SQL-referensdataögonblicksbilder.

Följ följande steg för att konfigurera ett associerat lagringskonto:

  1. På sidan Stream Analytics-jobb väljer du Inställningar för lagringskonto under Konfigurera på den vänstra menyn.

  2. På sidan Inställningar för lagringskonto väljer du Lägg till lagringskonto.

  3. Följ anvisningarna för att konfigurera inställningarna för lagringskontot.

    Screenshot of the Storage account settings page of a Stream Analytics job.

Viktigt!

  • Om du vill autentisera med anslutningssträng måste du inaktivera brandväggsinställningarna för lagringskontot.
  • Om du vill autentisera med hanterad identitet måste du lägga till ditt Stream Analytics-jobb i lagringskontots åtkomstkontrolllista för rollen Storage Blob Data-deltagare och rollen Storage Table Data-deltagare. Om du inte ger jobbet åtkomst kan jobbet inte utföra några åtgärder. Mer information om hur du beviljar åtkomst finns i Använda Azure RBAC för att tilldela en hanterad identitet åtkomst till en annan resurs.

Ytterligare steg med användartilldelad hanterad identitet

Upprepa stegen om du har valt användartilldelad hanterad identitet för att ansluta ASA till Synapse:

  1. Skapa en innesluten databasanvändare. Ersätt ASA_Job_Name med användartilldelad hanterad identitet. Se exemplet nedan.
    CREATE USER [User-Assigned Managed Identit] FROM EXTERNAL PROVIDER;
    
  2. Bevilja behörigheter till den användartilldelade hanterade identiteten. Ersätt ASA_Job_Name med användartilldelad hanterad identitet.

Mer information finns i avsnitten ovan.

Ta bort hanterad identitet

Den hanterade identitet som skapats för ett Stream Analytics-jobb tas bara bort när jobbet tas bort. Det går inte att ta bort den hanterade identiteten utan att ta bort jobbet. Om du inte längre vill använda den hanterade identiteten kan du ändra autentiseringsmetoden för utdata. Den hanterade identiteten fortsätter att finnas tills jobbet har tagits bort och används om du bestämmer dig för att använda hanterad identitetsautentisering igen.

Nästa steg