Dela via


Självstudie: Konfigurera Microsoft Entra-autentisering för SQL Server som aktiveras av Azure Arc

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 handledningen lär du dig:

  • 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

Du kan använda Azure för att automatiskt skapa Azure Key Vault-certifikatet och Microsoft Entra-programmet när du konfigurerar en Microsoft Entra-administratör för servern. Mer information finns i Handledning: 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.

SQL Server ansluter direkt till Microsoft Entra-ID för autentisering. Antingen måste explicita brandväggs-URL:er öppnas för direkt åtkomst eller använda en proxyserver. Microsoft Entra-ID använder inte Arc Connected Machine Agent-proxyn för autentisering. Om datorn kräver att en proxyserver används kräver Microsoft Entra-ID att WinHTTP-proxyn på datornivå anges med hjälp av följande kommandon (ersätt <http://proxyserver:port> med lämpligt värde):

netsh winhttp set proxy proxy-server="<http://proxyserver:port>"

Microsoft Entra ID-autentisering använder inte proxyinställningen för Arc-agenten. Arc Agent-proxyn kan anges med hjälp av följande kommandon (ersätt <http://proxyserver:port> med lämpligt värde):

azcmagent config set proxy.url "<http://proxyserver:port>"

Skapa och registrera ett Microsoft Entra-program

  • Gå till Azure-portalenoch välj Microsoft Entra ID>Appregistreringar>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 ansökningsregistreringen 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

Eller:

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

    1. Kontrollera Application.Read.All

    2. Kontrollera Group.Read.All

    3. Kontrollera User.Read.All

    4. Välj Lägg till behörigheter

  2. Välj Bevilja administratörsmedgivande

Skärmbild som visar hur du beviljar medgivande i Azure-portalen.

Not

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. För metoden att skapa certifikat, använd Generera.

    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.

    Not

    Detta behövs inte göras på SQL Server-värdservern. Snarare, vilken klient som helst som får tillgång till Azure-portalen för nästa steg.

  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
      • Användare av nyckelvalvshemligheter
    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örigheter, välj 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 Machine – Azure Arc-instans, vilket är värdnamnet på 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

Not

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

  1. Gå till Azure-portalen, och välj SQL Server – Azure Arc, och välj serverinstansen 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 Ange administratör för att öppna panelen Microsoft Entra ID och välj ett konto som ska användas som administratörskonto 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 5 minuter och försök igen.

    Not

    När Microsoft Entra-administratörsinloggningen har beviljats rollen sysadmin, tar ändring av Microsoft Entra-administratören i Azure-portalen inte bort den tidigare inloggningen som finns kvar som en sysadmin. 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, blir det administratörskonto som valts i menyn för Microsoft Entra ID i portalen ett 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.

Not

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 SQL Server sysadmin.

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 standardbehö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. Om testuser@outlook.com till exempel bjuds in till contoso.com-klientorganisationen, kan den läggas till som ett inloggningskonto i SQL Server med samma syntax som när du skapar någon annan Microsoft Entra-användare eller -inloggningskonto. När du skapar gästanvändare och inloggningar använder du gästkontots ursprungliga e-post, inte användarens huvudnamn i klientorganisationen. I dessa exempel ges outlook.com även om kontot är registrerat i contoso.com klientorganisation.

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örvald
  • Användarnamn och lösenord
  • Integrerad
  • Universell med multifaktorautentisering
  • Tjänstens huvudnamn
  • 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

Även om Microsoft Entra ID är det nya namnet för Azure Active Directory (Azure AD), kvarstår Azure AD i vissa hårdkodade element, såsom gränssnittsfält, anslutningstjänsteleverantörer, felkoder och cmdletar, för att undvika störningar i befintliga miljöer. 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 sprids 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