Använda Azure Active Directory autentisering

GÄLLER FÖR: Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics

Azure Active Directory-autentisering (Azure AD) är en mekanism för att ansluta till Azure SQL Database, Azure SQL Managed Instanceoch Synapse SQL i Azure Synapse Analytics med hjälp av identiteter i Azure AD.

Anteckning

Den här artikeln gäller för Azure SQL Database, SQL Managed Instance och Azure Synapse Analytics.

Med Azure AD-autentisering kan du centralt hantera identiteterna för databasanvändare och andra Microsoft-tjänster på en central plats. Central ID-hantering ger en enda plats för hantering av databasanvändare och förenklar behörighetshanteringen. Här är några av fördelarna:

  • Det ger ett alternativ till SQL Server autentisering.

  • Det hjälper till att stoppa spridningen av användaridentiteter mellan servrar.

  • Den tillåter lösenordsrotation på en enda plats.

  • Kunder kan hantera databasbehörigheter med hjälp av externa grupper (Azure AD).

  • Det kan eliminera lagring av lösenord genom att aktivera integrerad Windows autentisering och andra former av autentisering som stöds av Azure Active Directory.

  • Azure AD-autentisering använder inneslutna databasanvändare för att autentisera identiteter på databasnivå.

  • Azure AD stöder tokenbaserad autentisering för program som ansluter till SQL Database och SQL Managed Instance.

  • Azure AD-autentisering stöder:

  • Azure AD stöder anslutningar från SQL Server Management Studio som använder Active Directory Universal Authentication, vilket innefattar Multi-Factor Authentication. Multifaktorautentisering innehåller stark autentisering med en mängd enkla verifieringsalternativ – telefonsamtal, SMS, smartkort med PIN-kod eller meddelanden från mobilappar. Mer information finns i SSMS-stöd för Azure AD Multi-Factor Authentication med Azure SQL Database, SQL Managed Instance och Azure Synapse

  • Azure AD har stöd för liknande anslutningar från SSDT (SQL Server Data Tools) som använder Active Directory Interactive Authentication. Mer information finns i Azure Active Directory i SQL Server Data Tools (SSDT)

Anteckning

Det går inte att ansluta till en SQL Server-instans som körs på en virtuell Azure-dator (VM) med ett Azure Active Directory konto. Använd ett Active Directory-domänkonto i stället.

Konfigurationsstegen omfattar följande procedurer för att konfigurera och använda Azure Active Directory autentisering.

  1. Skapa och fyll i Azure AD.
  2. Valfritt: Associera eller ändra den Active Directory som för närvarande är associerad med din Azure-prenumeration.
  3. Skapa en Azure Active Directory administratör.
  4. Konfigurera klientdatorerna.
  5. Skapa inneslutna databasanvändare i din databas som är mappade till Azure AD-identiteter.
  6. Anslut till databasen med hjälp av Azure AD-identiteter.

Anteckning

Information om hur du skapar och fyller i Azure AD och sedan konfigurerar Azure AD med Azure SQL Database, SQL Managed Instance och Synapse SQL i Azure Synapse Analytics finns i Konfigurera Azure AD med Azure SQL Database.

Förtroendearkitektur

  • Endast molndelen av Azure AD, SQL Database, SQL Managed Instance och Azure Synapse anses stödja inbyggda användarlösenord för Azure AD.
  • För att stödja Windows-autentiseringsuppgifter för enkel inloggning (eller användare/lösenord för Windows-autentiseringsuppgifter) använder du Azure Active Directory-autentiseringsuppgifter från en federerad eller hanterad domän som är konfigurerad för sömlös enkel inloggning för direkt- och lösenordshasharautentisering. Mer information finns i Azure Active Directory sömlös enkel inloggning.
  • För att stödja federerad autentisering (eller användare/lösenord Windows autentiseringsuppgifter) krävs kommunikation med ADFS-blocket.

Mer information om Azure AD-hybrididentiteter, konfiguration och synkronisering finns i följande artiklar:

Ett exempel på federerad autentisering med ADFS-infrastruktur (eller användare/lösenord för Windows autentiseringsuppgifter) finns i diagrammet nedan. Pilarna visar kommunikationsvägar.

aad auth-diagram

Följande diagram visar federations-, förtroende- och värdrelationer som gör att en klient kan ansluta till en databas genom att skicka en token. Token autentiseras av en Azure AD och är betrodd av databasen. Kund 1 kan representera en Azure Active Directory med interna användare eller en Azure AD med federerade användare. Kund 2 representerar en möjlig lösning, inklusive importerade användare, som i det här exemplet kommer från en federerad Azure Active Directory där ADFS synkroniseras med Azure Active Directory. Det är viktigt att förstå att åtkomst till en databas som använder Azure AD-autentisering kräver att värdprenumerationen är associerad med Azure AD. Samma prenumeration måste användas för att skapa Azure SQL Database, SQL Managed Instance eller Azure Synapse resurser.

prenumerationsrelation

Administratörsstruktur

När du använder Azure AD-autentisering finns det två administratörskonton: den ursprungliga Azure SQL Database och Azure AD-administratören. Samma begrepp gäller för Azure Synapse. Endast administratören baserat på ett Azure AD-konto kan skapa den första inneslutna Azure AD-databasanvändaren i en användardatabas. Azure AD-administratörsinloggningen kan vara en Azure AD-användare eller en Azure AD-grupp. När administratören är ett gruppkonto kan det användas av valfri gruppmedlem, vilket aktiverar flera Azure AD-administratörer för servern. Att använda gruppkonto som administratör förbättrar hanterbarheten genom att låta dig centralt lägga till och ta bort gruppmedlemmar i Azure AD utan att ändra användare eller behörigheter i SQL Database eller Azure Synapse. Endast en Azure AD-administratör (en användare eller grupp) kan konfigureras när som helst.

administratörsstruktur

Behörigheter

Om du vill skapa nya användare måste du ALTER ANY USER ha behörigheten i databasen. Behörigheten ALTER ANY USER kan beviljas till alla databasanvändare. Behörigheten lagras också av serveradministratörskontona och databasanvändarna med behörigheten eller för databasen ALTER ANY USER och av medlemmar i CONTROL ON DATABASE ALTER ON DATABASE db_owner databasrollen.

Om du vill skapa en innesluten databasanvändare i Azure SQL Database, SQL Managed Instance eller Azure Synapse måste du ansluta till databasen eller instansen med hjälp av en Azure AD-identitet. Om du vill skapa den första inneslutna databasanvändaren måste du ansluta till databasen med hjälp av en Azure AD-administratör (som är ägare till databasen). Detta visas i Konfigurera och hantera Azure Active Directory autentisering med SQL Database eller Azure Synapse. Azure AD-autentisering är endast möjligt om Azure AD-administratören har skapats för Azure SQL Database, SQL Managed Instance eller Azure Synapse. Om administratören Azure Active Directory från servern kan befintliga Azure Active Directory-användare som skapats tidigare i SQL Server inte längre ansluta till databasen med sina Azure Active Directory autentiseringsuppgifter.

Funktioner och begränsningar i Azure AD

  • Följande medlemmar i Azure AD kan etableras för Azure SQL Database:

    • Interna medlemmar: En medlem som skapats i Azure AD i den hanterade domänen eller i en kunddomän. Mer information finns i Lägga till ett eget domännamn i Azure AD.
    • Medlemmar i en Active Directory-domän som federeras med Azure Active Directory på en hanterad domän som konfigurerats för sömlös enkel inloggning med direkt- eller lösenordshasharautentisering. Mer information finns i Microsoft Azure stöder federation med Windows Server Active Directory och Azure Active Directory sömlös enkel inloggning.
    • Importerade medlemmar från andra Azure AD:er som är interna eller federerade domänmedlemmar.
    • Active Directory-grupper som skapats som säkerhetsgrupper.
  • Azure AD-användare som ingår i en grupp som har serverrollen kan inte använda db_owner syntaxen CREATE DATABASE SCOPED CREDENTIAL mot Azure SQL Database och Azure Synapse. Följande fel visas:

    SQL Error [2760] [S0001]: The specified schema name 'user@mydomain.com' either does not exist or you do not have permission to use it.

    Bevilja rollen db_owner direkt till den enskilda Azure AD-användaren för att åtgärda problemet med CREATE DATABASE SCOPED CREDENTIAL.

  • Dessa systemfunktioner returnerar NULL-värden när de körs under Azure AD-huvudnamn:

    • SUSER_ID()
    • SUSER_NAME(<admin ID>)
    • SUSER_SNAME(<admin SID>)
    • SUSER_ID(<admin name>)
    • SUSER_SID(<admin name>)

SQL-hanterad instans

  • Azure AD-serverhuvudnamn (inloggningar) och användare stöds för SQL Managed Instance.
  • Att ange Azure AD-serverhuvudnamn (inloggningar) som mappats till en Azure AD-grupp som databasägarestöds inte i SQL Managed Instance .
    • Ett tillägg till detta är att när en grupp läggs till som en del av serverrollen kan användare från den här gruppen ansluta till den hanterade SQL-instansen och skapa nya databaser, men inte komma åt dbcreator databasen. Det beror på att den nya databasägaren är SA och inte Azure AD-användaren. Det här problemet visas inte om den enskilda användaren läggs till i dbcreator serverrollen.
  • SQL Agenthantering och jobbkörning stöds för Azure AD-serverhuvudnamn (inloggningar).
  • Åtgärder för databassäkerhetskopiering och -återställning kan köras av Azure AD-serverhuvudkonton (inloggningar).
  • Granskning av alla instruktioner som rör Azure AD-serverhuvudnamn (inloggningar) och autentiseringshändelser stöds.
  • Dedikerad administratörsanslutning för Azure AD-serverhuvudnamn (inloggningar) som är medlemmar i sysadmin-serverrollen stöds.
    • Stöds via SQLCMD-verktyget och SQL Server Management Studio.
  • Inloggningsutlösare stöds för inloggningshändelser som kommer från Azure AD-serverhuvudkonton (inloggningar).
  • Service Broker db-post kan konfigureras med ett Azure AD-serverhuvudkonto (inloggning).

Ansluta med hjälp av Azure AD-identiteter

Azure Active Directory har stöd för följande metoder för att ansluta till en databas med hjälp av Azure AD-identiteter:

  • Azure Active Directory Lösenord
  • Azure Active Directory Integrerad
  • Azure Active Directory Universell med Multi-Factor Authentication
  • Använda autentisering med programtoken

Följande autentiseringsmetoder stöds för Azure AD-serverhuvudnamn (inloggningar):

  • Azure Active Directory Lösenord
  • Azure Active Directory Integrerad
  • Azure Active Directory Universell med Multi-Factor Authentication

Annat som är bra att tänka på

  • För att förbättra hanterbarheten rekommenderar vi att du etablerar en dedikerad Azure AD-grupp som administratör.
  • Endast en Azure AD-administratör (en användare eller grupp) kan konfigureras för en server i SQL Database eller Azure Synapse när som helst.
    • Genom att lägga till Azure AD-serverhuvudnamn (inloggningar) för SQL Managed Instance kan du skapa flera Azure AD-serverhuvudnamn (inloggningar) som kan läggas till i sysadmin rollen.
  • Endast en Azure AD-administratör för servern kan först ansluta till servern eller den hanterade instansen med ett Azure Active Directory konto. Active Directory-administratören kan konfigurera efterföljande Azure AD-databasanvändare.
  • Azure AD-användare och tjänsthuvudnamn (Azure AD-program) som är medlemmar i fler än 2 048 Azure AD-säkerhetsgrupper stöds inte för inloggning i databasen i SQL Database, Managed Instance eller Azure Synapse.
  • Vi rekommenderar att du ställer in tidsgränsen för anslutningen på 30 sekunder.
  • SQL Server 2016 Management Studio och SQL Server Data Tools för Visual Studio 2015 (version 14.0.60311.1Apile 2016 eller senare) stöder Azure Active Directory-autentisering. (Azure AD-autentisering stöds av .NET Framework-dataprovidern för SqlServer; minst version .NET Framework 4.6). Därför kan de senaste versionerna av dessa verktyg och datanivåprogram (DAC och BACPAC) använda Azure AD-autentisering.
  • Från och med version 15.0.1 har sqlcmd-verktyget och bcp-verktyget stöd för interaktiv Active Directory-autentisering med Multi-Factor Authentication.
  • SQL Server Data Tools för Visual Studio 2015 kräver minst april 2016-versionen av dataverktygen (version 14.0.60311.1). Azure AD-användare visas för närvarande inte i SSDT-Object Explorer. Som en lösning kan du visa användarna i sys.database_principals.
  • Microsoft JDBC Driver 6.0 för SQL Server stöder Azure AD-autentisering. Se även Ställa in anslutningsegenskaperna.
  • PolyBase kan inte autentisera med hjälp av Azure AD-autentisering.
  • Azure AD-autentisering stöds för Azure SQL Database och Azure Synapse med hjälp Azure Portal bladen Importera databas och Exportera databas. Import och export med Azure AD-autentisering stöds också från ett PowerShell-kommando.
  • Azure AD-autentisering stöds för SQL Database, SQL Managed Instance och Azure Synapse med hjälp av CLI. Mer information finns i Konfigurera och hantera Azure AD-autentisering med SQL Database eller Azure Synapse och SQL Server – az sql server.

Nästa steg