Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:Azure SQL Database
Azure SQL Managed Instance
Azure SQL-resources ondersteunen programmatische toegang voor toepassingen met behulp van service-principals en beheerde identiteiten in Microsoft Entra ID (voorheen Azure Active Directory).
Ondersteuning voor service-principals (Microsoft Entra-toepassingen)
Dit artikel is van toepassing op toepassingen die zijn geregistreerd in Microsoft Entra ID. Het gebruik van toepassingsreferenties voor toegang tot Azure SQL ondersteunt het beveiligingsprincipe van Scheiding van taken, zodat organisaties nauwkeurige toegang kunnen configureren voor elke toepassing die verbinding maakt met hun databases. Beheerde identiteiten, een speciale vorm van serviceprincipals, worden aanbevolen omdat ze zonder wachtwoord zijn en de noodzaak voor ontwikkelaars om referenties te beheren elimineert.
Microsoft Entra ID maakt geavanceerde verificatiescenario's mogelijk, zoals OAuth 2.0 On-Behalf-Of Flow (OBO). Met OBO kunnen toepassingen aanmeldingsreferenties aanvragen voor scenario's waarin toepassingen zelf geen databasetoegang mogen krijgen zonder gedelegeerde machtigingen.
Zie Toepassings- en service-principalobjecten in Microsoft Entra-id en een Azure-service-principal maken met Azure PowerShell voor meer informatie over Microsoft Entra-toepassingen.
Microsoft Entra-gebruikers maken met behulp van service-principals
Het ondersteunen van deze functionaliteit is nuttig in automatiseringsprocessen van Microsoft Entra-toepassingen waarbij Microsoft Entra-principals worden gemaakt en onderhouden in SQL Database of SQL Managed Instance zonder menselijke interactie. Service-principals kunnen Microsoft Entra-beheerders zijn voor de SQL-logische server of het beheerde exemplaar, als onderdeel van een groep of als zelfstandige identiteit. De toepassing kan het maken van Microsoft Entra-objecten in SQL Database of SQL Managed Instance automatiseren, waardoor het maken van databasegebruikers volledig kan worden geautomatiseerd.
Service-principals inschakelen om Microsoft Entra-gebruikers aan te maken
Wanneer u toepassingen gebruikt voor toegang tot Azure SQL, zijn voor het maken van Microsoft Entra-gebruikers en aanmeldingen machtigingen vereist die niet standaard zijn toegewezen aan service-principals of beheerde identiteiten: de mogelijkheid om gebruikers, groepen en toepassingen in een tenant te lezen vanuit Microsoft Graph. Deze machtigingen zijn nodig voor de SQL-engine om de identiteit te valideren die is opgegeven in CREATE LOGIN of CREATE USER, en belangrijke informatie op te halen, inclusief het object of de toepassings-id van de identiteit, die wordt gebruikt om de aanmelding of gebruiker te maken.
Wanneer een Microsoft Entra-gebruiker deze opdrachten uitvoert, gebruikt de Microsoft-toepassing van Azure SQL gedelegeerde machtigingen om de aangemelde gebruiker te imiteren en Microsoft Graph op te vragen met behulp van hun machtigingen. Deze workflow is niet mogelijk met service-principals, omdat een toepassing zich niet kan voordoen als een andere toepassing. In plaats daarvan probeert de SQL-engine de serveridentiteit te gebruiken. Dit is de primaire beheerde identiteit die is toegewezen aan een met SQL beheerd exemplaar, een logische Azure SQL-server of een Azure Synapse-werkruimte. De serveridentiteit moet bestaan en de Microsoft Graph-querymachtigingen hebben of de bewerkingen mislukken.
In de volgende stappen wordt uitgelegd hoe u een beheerde identiteit toewijst aan de server en hoe u deze toewijst aan de Microsoft Graph-machtigingen om service-principals in staat te stellen Microsoft Entra-gebruikers en -aanmeldingen in de database te maken.
Wijs de serveridentiteit toe. De serveridentiteit kan een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit zijn. Voor meer informatie, zie Beheerde identiteiten in Microsoft Entra voor Azure SQL.
- Met de volgende PowerShell-opdracht maakt u een nieuwe logische server die is ingericht met een door het systeem toegewezen beheerde identiteit:
$newServerParams = @{ ResourceGroupName = '<resource group>' Location = '<Location name>' ServerName = '<Server name>' ServerVersion = '12.0' SqlAdministratorCredentials = (Get-Credential) AssignIdentity = $true } New-AzSqlServer @newServerParamsZie de opdracht New-AzSqlServer of new-AzSqlInstance voor SQL Managed Instance voor meer informatie.
- Voer voor een bestaande logische server de volgende opdracht uit om er een door het systeem toegewezen beheerde identiteit aan toe te voegen:
$setServerParams = @{ ResourceGroupName = '<resource group>' ServerName = '<Server name>' AssignIdentity = $true } Set-AzSqlServer @setServerParamsZie de opdracht Set-AzSqlServer of set-AzSqlInstance voor SQL Managed Instance voor meer informatie.
- Als u wilt controleren of de serveridentiteit is toegewezen aan de server, voert u de opdracht Get-AzSqlServer of get-AzSqlInstance uit voor SQL Managed Instance.
Opmerking
De serveridentiteit kan ook worden toegewezen met behulp van REST API- en CLI-opdrachten. Zie az sql server create, az sql server update en Servers - REST API voor meer informatie.
Verdeel de serveridentiteitsmachtigingen om een query uit te voeren op Microsoft Graph. U kunt dit op meerdere manieren doen: door de identiteit toe te voegen aan de rol Microsoft Entra Directory Readers , door de identiteit toe te wijzen aan de afzonderlijke Microsoft Graph-machtigingen of door de identiteit toe te voegen aan een roltoewijsbare groep met de rol Directory Readers :
Serveridentiteit toevoegen aan een groep waaraan rollen kunnen worden toegewezen
In productieomgevingen wordt aanbevolen dat een tenantbeheerder een roltoewijsbare groep maakt en de rol Adreslijstlezers eraan toewijst. Groepseigenaren kunnen vervolgens serveridentiteiten toevoegen aan de groep, waarbij deze machtigingen worden overgenomen. Hiermee verwijdert u de vereiste voor een beheerder met bevoorrechte rollen om machtigingen te verlenen aan elke afzonderlijke serveridentiteit, zodat beheerders machtigingen kunnen delegeren aan eigenaren van de groep voor dit scenario. Voor meer informatie, zie de rol Directory Readers in Microsoft Entra ID voor Azure SQL.
Microsoft Graph-machtigingen toewijzen aan serveridentiteit
Als u de afzonderlijke Microsoft Graph-machtigingen wilt toewijzen aan de serveridentiteit, moet u de rol van Microsoft Entra Privileged Roles-beheerder hebben. Dit wordt aanbevolen voor het toewijzen van de rol Adreslijstlezers , omdat er machtigingen zijn opgenomen in de rol die de serveridentiteit niet nodig heeft. Als u alleen de afzonderlijke Microsoft Graph-leesmachtigingen toewijst, worden de machtigingen van de serveridentiteit binnen uw tenant beperkt en wordt het principe van minimale bevoegdheden gehandhaafd. Zie Beheerde identiteiten in Microsoft Entra voor Azure SQL voor instructies.
Serveridentiteit toevoegen aan de rol Directory Readers
Als u de serveridentiteit wilt toevoegen aan de rol Directory Readers , moet u lid zijn van de rol Microsoft Entra Privileged Roles Administrator . In productieomgevingen wordt deze optie om twee redenen niet aanbevolen: de rol Adreslijstlezer geeft meer machtigingen dan de serveridentiteit vereist en het roltoewijzingsproces vereist nog steeds beheerdersgoedkeuringen voor elke serveridentiteit (in tegenstelling tot het gebruik van groepen). Volg de instructies voor SQL Managed Instance die beschikbaar zijn in het artikel Microsoft Entra-beheerder (SQL Managed Instance) instellen.
Troubleshoot
Bij het oplossen van problemen kan de volgende fout optreden:
Msg 33134, Level 16, State 1, Line 1
Principal 'test-user' could not be resolved.
Error message: 'Server identity is not configured. Please follow the steps in "Assign an Azure AD identity to your server and add Directory Reader permission to your identity" (https://aka.ms/sqlaadsetup)'
Deze fout geeft aan dat de serveridentiteit niet is gegenereerd of dat de Microsoft Graph-machtigingen niet zijn toegekend aan de serveridentiteit. Volg de stappen voor het toewijzen van een identiteit aan de logische server en de machtiging Adreslijstlezers toewijzen aan de identiteit van de logische server.
Beperkingen
Service-principals kunnen niet authenticeren over tenant-grenzen heen. Het openen van SQL Database of SQL Managed Instance met behulp van een Microsoft Entra-toepassing die in een andere tenant is gemaakt, mislukt.
Az.Sql 2.9.0-module of hoger is vereist om een Microsoft Entra-toepassing in te stellen als Microsoft Entra-beheerder voor Azure SQL. Zorg ervoor dat u een upgrade uitvoert naar de nieuwste module.