Dela via


Självstudie: Konfigurera Microsoft Entra-autentisering för SQL Server

gäller för: SQL Server 2022 (16.x)

Den här artikeln beskriver en stegvis process för att konfigurera autentisering med Microsoft Entra-ID och visar hur du använder olika Microsoft Entra-autentiseringsmetoder.

Not

Microsoft Entra ID tidigare kallades Azure Active Directory (Azure AD).

I den här guiden lär du dig hur du:

  • Skapa och registrera ett Microsoft Entra-program
  • Bevilja behörigheter till Microsoft Entra-programmet
  • Skapa och tilldela ett certifikat
  • Konfigurera Microsoft Entra-autentisering för SQL Server via Azure-portalen
  • Skapa inloggningar och användare
  • Ansluta med en autentiseringsmetod som stöds

Förutsättningar

Autentiseringskrav

Not

Utökade funktioner har implementerats i Azure för att göra det möjligt att automatiskt skapa Azure Key Vault-certifikatet och Microsoft Entra-programmet när du konfigurerar en Microsoft Entra-administratör för SQL Server. Mer information finns i Självstudie: Använda automatisering för att konfigurera Microsoft Entra-administratören för SQL Server.

  • Microsoft Entra-programregistrering för SQL Server. Genom att registrera en SQL Server-instans som ett Microsoft Entra-program kan instansen köra frågor mot Microsoft Entra-ID och göra det möjligt för Microsoft Entra-programmet att autentisera åt SQL Server-instansen. Programregistrering kräver också några behörigheter som används av SQL Server för vissa frågor.

  • SQL Server använder ett certifikat för den här autentiseringen, som lagras i Azure Key Vault (AKV). Azure Arc-agenten laddar ner certifikatet till värddatorn för SQL Server-instansen.

Varning

Anslutningar som autentiseras av Microsoft Entra-ID krypteras alltid. Om SQL Server använder ett självsignerat certifikat måste du lägga till trust server cert = true i anslutningssträngen. SQL Server- och Windows-autentiserade anslutningar kräver inte kryptering, men det rekommenderas starkt.

Skapa och registrera ett Microsoft Entra-program

  • Gå till Azure-portalenoch välj Microsoft Entra ID>App-registreringar>Ny registrering.
    1. Ange ett namn – Exemplet i den här artikeln använder SQLServerCTP1.
    2. Välj kontotyper som stöds och använd endast -konton i den här organisationskatalogen
    3. Ange inte en omdirigerings-URI
    4. Välj Registrera

Se applikationsregistreringen nedan:

Skärmbild av registrering av program i Azure-portalen.

Bevilja applikationsbehörigheter

Välj det nyligen skapade programmet och välj API-behörigheterpå menyn till vänster.

  1. Välj Lägg till en behörighet>Microsoft Graph>Programbehörigheter

    1. Kontrollera Directory.Read.All
    2. Välj Lägg till behörigheter
  2. Välj Lägg till en behörighet>Microsoft Graph>Delegerade behörigheter

    1. Kontrollera Application.Read.All
    2. Kontrollera Directory.AccessAsUser.All
    3. Kontrollera Group.Read.All
    4. Kontrollera User.Read.All
    5. Välj Lägg till behörigheter
  3. Välj Bevilja administratörsmedgivande

Skärmbild av programbehörigheter i Azure-portalen.

Anteckning

För att ge administratörsmedgivande till behörigheterna ovan kräver ditt Microsoft Entra-konto rollen Privilegierad rolladministratör eller högre behörigheter.

Skapa och tilldela ett certifikat

  1. Gå till Azure-portalen, välj Nyckelvalvoch välj det nyckelvalv som du vill använda eller skapa ett nytt. Välj certifikat>generera/importera

    1. Använd Genereraför metod för att skapa certifikat.

    2. Lägg till ett certifikatnamn och ämne.

    3. Den rekommenderade giltighetsperioden är högst 12 månader. Resten av värdena kan lämnas som standard.

    4. Välj Skapa.

    Skärmbild av att skapa certifikat i Azure-portalen.

    Not

    När certifikatet har skapats kan det stå att det är inaktiverat. Uppdatera webbplatsen så visas certifikatet som aktiverat.

  2. Gå till det nya certifikatet och välj raden för certifikatets senaste version. Välj Ladda ned i CER-format för att spara certifikatets offentliga nyckel.

    Skärmbild av certifikatet i Azure-portalen där du kan visa och ladda ned certifikatet.

    Notera

    Detta behöver inte göras på SQL Server-värddatorn. Vilken klient som helst som har åtkomst till Azure-portalen för det nästa steget.

  3. I Azure-portalen går du till appregistreringen som skapades ovan och väljer certifikat lista

    1. Välj ladda upp certifikatet.
    2. Välj den offentliga nyckel (.cer fil) som laddades ned i det senaste steget.
    3. Välj Lägg till.

    Skärmbild av menyn certifikat och hemligheter i Azure-portalen.

  4. Hämta objekt-ID för Azure Arc-datorn i Azure-portalen.

    1. Under Azure Arc-resurser>Datorerväljer du datorn.

    2. I Översikthittar du JSON View.

    3. Under Identitykopierar du värdet för principalId.

      Skärmbild av portalkontroll av JSON-vy över datordefinition.

  5. I portalen navigerar du till Azure Key Vault-instansen där certifikatet lagras och beviljar åtkomst till Azure Machine-resurserna. I navigeringsmenyn i Azure Key Vault går du till Inställningaroch Åtkomstkonfiguration. Detaljerade steg för att hantera rolltilldelningar finns i Tilldela Azure-roller med hjälp av Azure-portalen.

    Din upplevelse beror på åtkomstkonfigurationen för nyckelvalvet:

    Så här använder du rollbaserad åtkomstkontroll i Azure (rekommenderas):

    1. Lägg till följande roller i resursen.

      • Key Vault-certifikatanvändare
      • Nyckelvalvshemlighetsanvändare
    2. Kontrollera rollerna på den här platsen:

      Skärmbild av Azure Key Vault IAM-rolltillägg.

    Så här använder du Vault-åtkomstprincipen:

    1. Välj Åtkomstprinciper på navigeringsmenyn.

    2. Välj Skapa.

    3. För Hemliga behörigheterväljer du Hämta>Lista.

    4. För certifikatbehörigheterväljer du Hämta>lista.

    5. Välj Nästa.

    6. För sidan Principal söker du efter namnet på din maskin – Azure Arc-instans, som är värdnamnet för SQL Server-värden.

      Skärmbild av Azure Arc-serverresursen i portalen.

    7. Välj Granska + skapa.

    8. Kontrollera att värdet för Principal>Object ID matchar Principal ID för den hanterade identitet som tilldelats instansen.

      Skärmbild av Azure-portalen för att granska och skapa åtkomstprincip.

      Bekräfta genom att gå till resurssidan och välja JSON-vy längst upp till höger i rutan Essentials på sidan Översikt. Under identitet hittar du principalId

    9. Välj Skapa.

      Du måste välja Skapa för att säkerställa att behörigheterna tillämpas. För att säkerställa att behörigheter har lagrats uppdaterar du webbläsarfönstret och bekräftar att din Azure Arc-instans finns.

Konfigurera Microsoft Entra-autentisering för SQL Server via Azure-portalen

Anteckning

Du kan konfigurera Microsoft Entra-autentisering med någon av följande funktioner:

  1. Gå till Azure-portalenoch välj SQL Server – Azure Arcoch välj instansen för din SQL Server-värd.

  2. Kontrollera statusen för din SQL Server – Azure Arc resurs och se om den är ansluten genom att gå till menyn Egenskaper. Mer information finns i Verifiera SQL Server – Azure Arc-resurser.

  3. Välj Microsoft Entra-ID och Purview- under Inställningar på resursmenyn.

  4. Välj Set Admin för att öppna fönstret Microsoft Entra ID och välj ett konto att ställa in som administratörsinloggning för SQL Server.

  5. Välj kundhanterat certifikat och Välj ett certifikat.

  6. Välj Ändra certifikatoch välj din AKV-instans och ditt certifikat som du skapade tidigare i det nya fönstret.

  7. Välj kundhanterad appregistrering.

  8. Välj Ändra appregistreringoch välj den appregistrering som du skapade tidigare.

  9. Välj Spara. Detta skickar en begäran till Arc-serveragenten, som konfigurerar Microsoft Entra-autentisering för den SQL Server-instansen.

    Skärmbild av hur du ställer in Microsoft Entra-autentisering i Azure-portalen.

    Det tar flera minuter att ladda ned certifikat och konfigurera inställningar. När du har angett alla parametrar och valt Spara på Azure-portalen kan följande meddelande visas: SQL Server's Azure Arc agent is currently processing a request. Values below may be incorrect. Please wait until the agent is done before continuing. Vänta tills spara-processen har bekräftats med Saved successfullyinnan du försöker logga in på Microsoft Entra.

    Azure Arc-serveragenten kan bara uppdateras när den föregående åtgärden har slutförts. Det innebär att om du sparar en ny Microsoft Entra-konfiguration innan den senaste har slutförts kan det orsaka ett fel. Om du ser meddelandet utökat anrop misslyckades när du väljer Spara, vänta i 5 minuter och försök sedan igen.

    Obs

    När Microsoft Entra-administratörsinloggning tilldelas rollen sysadmin, ändras inte den tidigare inloggningen som fortfarande finns kvar som en sysadmin, även om du byter Microsoft Entra-administratör i Azure-portalen. Om du vill ta bort inloggningen måste den tas bort manuellt.

    Microsoft Entra-administratörsändringen för SQL Server-instansen sker utan omstart av servern när processen har slutförts med SQL Server Azure Arc-agenten. För att den nya administratören ska visas i sys.server_principalsmåste SQL Server-instansen startas om och tills dess visas den gamla administratören. Den aktuella Microsoft Entra-administratören kan kontrolleras i Azure-portalen.

Skapa inloggningar och användare

När Azure Arc-agenten på SQL Server-värden har slutfört sin åtgärd, kommer det administratörskonto som valts i Microsoft Entra ID-menyn i portalen att bli en sysadmin på SQL Server-instansen. Logga in på SQL Server med microsoft Entra-administratörskontot som har sysadmin behörigheter på servern med hjälp av en klient som SSMS eller Azure Data Studio.

Anmärkning

Alla anslutningar till SQL Server som görs med Microsoft Entra-autentisering kräver en krypterad anslutning. Om databasadministratören (DBA) inte har konfigurerat ett betrott SSL/TLS-certifikat för servern misslyckas inloggningarna troligen med meddelandet Certifikatkedjan har utfärdats av en utfärdare som inte är betrodd. Om du vill åtgärda detta konfigurerar du antingen SQL Server-instansen så att den använder ett SSL/TLS-certifikat som är betrott av klienten eller väljer förtroendeservercertifikat i de avancerade anslutningsegenskaperna. Mer information finns i Aktivera krypterade anslutningar till databasmotorn.

Skapa inloggningssyntax

Samma syntax för att skapa Microsoft Entra-inloggningar och användare i Azure SQL Database och Azure SQL Managed Instance kan nu användas på SQL Server.

Not

På SQL Server kan alla konton som har behörigheten ALTER ANY LOGIN eller ALTER ANY USER skapa Microsoft Entra-inloggningar respektive användare. Kontot behöver inte vara en Microsoft Entra-inloggning.

Om du vill skapa en inloggning för ett Microsoft Entra-konto kör du följande T-SQL-kommando i master-databasen:

CREATE LOGIN [principal_name] FROM EXTERNAL PROVIDER;

För användare måste huvudnamnet ha formatet user@tenant.com. I Microsoft Entra-ID är detta användarens huvudnamn. För alla andra kontotyper, till exempel Microsoft Entra-grupper eller program, är huvudnamnet namnet på Microsoft Entra-objektet.

Här är några exempel:

-- login creation for Microsoft Entra user
CREATE LOGIN [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra group
CREATE LOGIN [my_group_name] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra application
CREATE LOGIN [my_app_name] FROM EXTERNAL PROVIDER;
GO

Kör T-SQL-kommandot för att visa en lista över Microsoft Entra-inloggningar i master-databasen:

SELECT * FROM sys.server_principals
WHERE type IN ('E', 'X');

Om du vill bevilja ett Microsoft Entra-användarmedlemskap till rollen sysadmin (till exempel admin@contoso.com) kör du följande kommandon i master:

CREATE LOGIN [admin@contoso.com] FROM EXTERNAL PROVIDER; 
GO
ALTER SERVER ROLE sysadmin ADD MEMBER [admin@contoso.com];
GO

Den lagrade proceduren sp_addsrvrolemember måste köras som medlem i serverrollen sysadmin för SQL Server.

Skapa användarsyntax

Du kan skapa en databasanvändare från Microsoft Entra-ID antingen som en databasanvändare som är associerad med ett serverhuvudnamn (inloggning) eller som en innesluten databasanvändare.

Om du vill skapa en Microsoft Entra-användare från en Microsoft Entra-inloggning i en SQL Server-databas använder du följande syntax:

CREATE USER [principal_name] FROM LOGIN [principal_name];

Syntaxen för principal_name är densamma som för inloggningar.

Här följer några exempel:

-- for Azure AD user
CREATE USER [user@contoso.com] FROM LOGIN [user@contoso.com];
GO
-- for Azure AD group
CREATE USER [my_group_name] FROM LOGIN [my_group_name];
GO
-- for Azure AD application
CREATE USER [my_app_name] FROM LOGIN [my_app_name];
GO

Om du vill skapa en Microsoft Entra-innesluten databasanvändare, som är en användare som inte är kopplad till en serverinloggning, kan följande syntax köras:

CREATE USER [principal name] FROM EXTERNAL PROVIDER;

Använd Microsoft Entra-gruppnamnet eller Microsoft Entra-programnamnet som <principal name> när du skapar en Microsoft Entra-databasanvändare från en grupp eller ett program.

Här följer några exempel:

-- for Azure AD contained user
CREATE USER [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- for Azure AD contained group
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO
--for Azure AD contained application
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO

Kör följande T-SQL-kommando för att lista de användare som skapats i databasen:

SELECT * FROM sys.database_principals;

En ny databas har som standard behörigheten Anslut . Alla andra SQL Server-behörigheter måste uttryckligen beviljas av auktoriserade beviljare.

Microsoft Entra-gästkonton

Syntaxen CREATE LOGIN och CREATE USER stöder även gästanvändare. Till exempel, om testuser@outlook.com bjuds in till contoso.com som hyresgäst, kan den läggas till som inloggning i SQL Server med samma syntax som när du skapar någon annan Microsoft Entra-användare eller inloggning. När du skapar gästanvändare och inloggningar använder du gästkontots ursprungliga e-post, inte användarens huvudnamn i klientorganisationen. I exemplen tillhandahålls outlook.com, även om kontot är registrerat hos klientorganisationen contoso.com.

Skapa en gästanvändare från en befintlig inloggning

CREATE USER [testuser@outlook.com] FROM LOGIN [testuser@outlook.com];

Skapa en gästanvändare som en innesluten användare

CREATE USER [testuser@outlook.com] FROM EXTERNAL PROVIDER;

Ansluta med en autentiseringsmetod som stöds

SQL Server stöder flera Microsoft Entra-autentiseringsmetoder:

  • Förvalt
  • Användarnamn och lösenord
  • Integrerad
  • Universell med multifaktorautentisering
  • Service Principal
  • Hanterad identitet
  • Åtkomsttoken

Använd någon av dessa metoder för att ansluta till SQL Server-instansen. Mer information finns i Microsoft Entra-autentisering för SQL Server.

Autentiseringsexempel med SSMS

Not

Trots att Microsoft Entra ID är det nya namnet för Azure Active Directory (Azure AD), för att undvika att störa befintliga miljöer, kvarstår Azure AD i vissa hårdkodade komponenter som UI-fält, anslutningsproviders, felkoder och cmdletar. I den här artikeln är de två namnen utbytbara.

Nedan visas ögonblicksbilden av anslutningssidan för SQL Server Management Studio (SSMS) med hjälp av autentiseringsmetoden Azure Active Directory – Universal med MFA.

Skärmbild av SSMS som visar fönstret Anslut till server.

Under autentiseringsprocessen måste en databas där användaren skapades uttryckligen anges i SSMS. Expandera Alternativ > Anslutningsegenskaper > Anslut till databas: database_name.

För mer information, se Använda Microsoft Entra multifaktorautentisering.

SQL Server-verktyg som stöder Microsoft Entra-autentisering för Azure SQL stöds också för SQL Server 2022 (16.x).

Plats där Microsoft Entra ID-parametrar lagras

Varning

Microsoft Entra-ID-parametrar konfigureras av Azure Arc-agenten och bör inte konfigureras om manuellt.

I Linux lagras Microsoft Entra-ID-parametrar i mssql-conf. Mer information om konfigurationsalternativen i Linux finns i Konfigurera SQL Server på Linux med verktyget mssql-conf.

Kända problem

  • Uppdatering av certifikat sprids inte:
    • När Microsoft Entra-autentisering har konfigurerats för SQL Server, kan det hända att uppdatering av certifikatet i SQL Server – Azure Arc resursens Microsoft Entra-ID och Purview-fönstret inte propageras helt. Detta resulterar i att spara blir lyckad men det gamla värdet visas fortfarande. Gör följande för att uppdatera certifikatet:

      • Välj Ta bort administratörs.
      • Välj Spara.
      • Välj Ange administratör och konfigurera om Microsoft Entra-autentisering med det nya certifikatet.
      • Välj Spara.

Se även