Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa Azure Functions udostępnia tożsamość zarządzaną, która jest kluczowym rozwiązaniem do zabezpieczania dostępu do usługi Azure SQL Database i innych usług platformy Azure. Tożsamości zarządzane zwiększają bezpieczeństwo aplikacji, eliminując tajne dane z aplikacji, takie jak poświadczenia w ciągach połączeniowych. W tym samouczku dodajesz tożsamość zarządzaną do aplikacji funkcyjnej korzystającej z wiązań Azure SQL.
Ten samouczek wykorzystuje zarządzaną tożsamość przypisaną przez użytkownika (UAMI), co jest zalecane, ponieważ może być współdzielona między zasobami i jest niezależna od cyklu życia aplikacji. Więcej informacji o połączeniach opartych na tożsamości w Azure Functions można znaleźć w sekcji Konfiguruj połączenia z usługami zdalnymi.
Po ukończeniu tego tutorialu Twoja aplikacja funkcjonalna łączy się z Azure SQL Database bez potrzeby używania nazwy użytkownika i hasła.
Przegląd kroków, które podejmujesz:
Udzielanie dostępu do bazy danych użytkownikowi Firmy Microsoft Entra
Po pierwsze, włącz uwierzytelnianie Microsoft Entra do bazy danych SQL, przypisując użytkownika Microsoft Entra jako administratora serwera Active Directory. Ten użytkownik różni się od konta Microsoft użytego do zarejestrowania się w celu uzyskania subskrypcji platformy Azure. Musi to być użytkownik, który został utworzony, zaimportowany, zsynchronizowany lub zaproszony do usługi Microsoft Entra ID. Aby uzyskać więcej informacji na temat dozwolonych użytkowników Microsoft Entra, zobacz funkcje i ograniczenia Microsoft Entra w bazie danych SQL.
Możesz włączyć uwierzytelnianie Microsoft Entra przez portal Azure, PowerShell lub Azure CLI. Instrukcje dotyczące Azure CLI znajdują się w następującej sekcji. Aby uzyskać informacje o wykonaniu tego zadania za pomocą portalu Azure i PowerShell, zobacz dokumentację Azure SQL dotyczącą uwierzytelniania Microsoft Entra.
Jeśli Twoja dzierżawa Microsoft Entra nie ma jeszcze użytkownika, utwórz go, wykonując kroki opisane w Dodawanie lub usuwanie użytkowników przy użyciu Microsoft Entra ID.
Znajdź identyfikator obiektu użytkownika Microsoft Entra za pomocą polecenia
az ad user listi zastąp <user-principal-name>. Zapisz wynik do zmiennej.W przypadku interfejsu wiersza polecenia platformy Azure w wersji 2.37.0 i nowszych:
azureaduser=$(az ad user list --filter "userPrincipalName eq '<user-principal-name>'" --query [].id --output tsv)W przypadku starszych wersji Azure CLI:
azureaduser=$(az ad user list --filter "userPrincipalName eq '<user-principal-name>'" --query [].objectId --output tsv)Wskazówka
Aby wyświetlić listę wszystkich głównych nazw użytkowników w identyfikatorze Entra firmy Microsoft, uruchom polecenie
az ad user list --query [].userPrincipalName.Dodaj tego użytkownika Microsoft Entra jako administratora Active Directory, używając polecenia
az sql server ad-admin createw Cloud Shell. W poniższym poleceniu zastąp <> nazwą serwera (bez sufiksu).az sql server ad-admin create --resource-group myResourceGroup --server-name <server-name> --display-name ADMIN --object-id $azureaduser
Aby uzyskać więcej informacji o dodaniu administratora Active Directory, zobacz Provisionuj administratora Microsoft Entra dla swojego serwera.
Tworzenie tożsamości zarządzanej przypisanej przez użytkownika
Stwórz zarządzaną tożsamość przypisaną przez użytkownika i przypisz ją do swojej aplikacji funkcyjnej. Używaj tożsamości przypisanej przez użytkownika, ponieważ możesz ją ponownie wykorzystać na wielu zasobach, a jej cykl życia jest niezależny od Twojej aplikacji funkcjonalnej.
W portalu Azure wyszukaj Managed Identities i wybierz Create.
Wybierz subskrypcję, grupę zasobów, region i nadaj tożsamości nazwę (na przykład
my-sql-identity).Wybierz Przejrzyj + utwórz, a następnie wybierz Utwórz.
Po utworzeniu tożsamości przejdź do aplikacji funkcjonalnej w portalu.
W Ustawieniach wybierz Tożsamość, a następnie zakładkę przypisana przez użytkownika .
Wybierz Dodaj (Dodaj), wybierz utworzoną przez siebie tożsamość zarządzaną i wybierz Dodaj (Dodaj).
Wskazówka
Możesz także użyć zarządzanej tożsamości przypisanej przez system. Jeśli wolisz opcję przypisaną przez system, włącz ją na karcie System assigned na stronie Tożsamość. W przypadku użycia tożsamości przypisanej przez system element <identity-name> w poleceniach SQL oznacza nazwę aplikacji funkcji i nie potrzebujesz parametru User Id w parametrach połączenia.
Przyznaj dostęp do bazy danych SQL dla tożsamości zarządzanej
W tym kroku połącz się z bazą danych SQL za pomocą konta użytkownika Microsoft Entra i przyznaj tożsamości zarządzanej dostęp do bazy danych.
Otwórz swoje ulubione narzędzie SQL i zaloguj się, używając konta użytkownika Microsoft Entra, na przykład użytkownika Microsoft Entra, którego przypisałeś jako administratora. Ten krok można wykonać w Cloud Shell, używając polecenia SQLCMD.
sqlcmd -S <server-name>.database.windows.net -d <db-name> -U <aad-user-name> -P "<aad-password>" -G -l 30W konsoli SQL dla wybranej bazy danych uruchom następujące polecenia, aby nadać uprawnienia Twojej funkcji. Na przykład:
CREATE USER [<identity-name>] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [<identity-name>]; ALTER ROLE db_datawriter ADD MEMBER [<identity-name>]; GO<identity-name> to nazwa tożsamości zarządzanej w usłudze Microsoft Entra ID. Dla tożsamości przypisanej przez użytkownika to nazwa, którą nadałeś jej przy jej tworzeniu (na przykład
my-sql-identity). W przypadku tożsamości przypisanej przez system nazwa jest zawsze taka sama jak nazwa aplikacji funkcyjnej.Note
Jeśli używasz wyzwalacza Azure SQL, tożsamość zarządzana wymaga dodatkowych uprawnień poza
db_datareaderidb_datawriter. Aby uzyskać więcej informacji, zobacz nadawanie uprawnień dla wyzwalacza Azure SQL.
Konfiguracja ciągu połączenia SQL dla funkcji Azure
W ostatnim kroku skonfiguruj parametry połączenia SQL aplikacji funkcji tak, aby używały uwierzytelniania przy użyciu tożsamości zarządzanej Microsoft Entra.
Nazwę ustawienia parametrów połączenia identyfikujesz w kodzie funkcji za pomocą atrybutu powiązania ConnectionStringSetting, co widać w atrybutach i adnotacjach powiązania wejściowego SQL.
W ustawieniach aplikacji funkcji zaktualizuj ustawienie parametrów połączenia SQL tak, aby było zgodne z następującym formatem:
Server=<server-name>.database.windows.net; Authentication=Active Directory Default; Database=<database-name>; User Id=<client-id-of-user-assigned-identity>
Zastąp element <server-name> nazwą swojego serwera SQL, element <database-name> nazwą swojej bazy danych, a element <client-id-of-user-assigned-identity> identyfikatorem klienta swojej tożsamości zarządzanej przypisanej przez użytkownika. ID klienta znajdziesz na stronie Przegląd swojego zarządzanego zasobu tożsamości w portalu Azure.
Wskazówka
Słowo kluczowe Active Directory Default uwierzytelniania działa zarówno lokalnie (przy użyciu Twoich poświadczeń deweloperskich), jak i na platformie Azure (przy użyciu tożsamości zarządzanej). Ta funkcja oznacza, że możesz używać tego samego parametry połączenia w obu środowiskach. Dla zarządzanej tożsamości przypisanej systemowi pomijam parametr.User Id
Aby uzyskać więcej informacji o połączeniach opartych na tożsamości, zobacz Konfiguruj połączenia z usługami zdalnymi.