Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Funções do Azure fornece uma identidade gerenciada, que é uma solução pronta para uso para proteger o acesso ao Banco de Dados SQL do Azure e a outros serviços do Azure. As identidades gerenciadas tornam seu aplicativo mais seguro, eliminando segredos de seu aplicativo, como credenciais nas cadeias de conexão. Neste tutorial, adiciona uma identidade gerida a uma aplicação de funções que utiliza bindings do SQL do Azure.
Este tutorial utiliza uma identidade gerida atribuída pelo utilizador (UAMI), recomendada porque pode ser partilhada entre recursos e é independente do ciclo de vida da aplicação. Para mais informações sobre ligações baseadas em identidade no Funções do Azure, consulte Configurar ligações a serviços remotos.
Quando terminares este tutorial, a tua app de funções liga-se ao Base de Dados SQL do Azure sem necessidade de nome de utilizador e palavra-passe.
Descrição geral das etapas que executa:
Conceder acesso ao banco de dados ao usuário do Microsoft Entra
Primeiro, ative a autenticação Microsoft Entra na base de dados SQL atribuindo a um utilizador Microsoft Entra como administrador do Active Directory do servidor. Este utilizador é diferente da conta Microsoft que utilizou para se inscrever na sua subscrição do Azure. Deve ser um usuário que você criou, importou, sincronizou ou convidou para o Microsoft Entra ID. Para obter mais informações sobre usuários permitidos do Microsoft Entra, consulte Recursos e limitações do Microsoft Entra no banco de dados SQL.
Pode ativar a autenticação Microsoft Entra através do portal Azure, PowerShell ou CLI do Azure. As instruções para o CLI do Azure encontram-se na secção seguinte. Para informações sobre como realizar esta tarefa através do portal Azure e PowerShell, consulte a documentação SQL do Azure sobre autenticação Microsoft Entra.
Se o seu locatário do Microsoft Entra ainda não tiver um usuário, crie um seguindo as etapas em Adicionar ou excluir usuários usando a ID do Microsoft Entra.
Encontre o ID do objeto do utilizador Microsoft Entra usando o
az ad user listcomando e substitua <user-principal-name>. Guardar o resultado numa variável.Para a CLI do Azure 2.37.0 e mais recente:
azureaduser=$(az ad user list --filter "userPrincipalName eq '<user-principal-name>'" --query [].id --output tsv)Para versões mais antigas da CLI do Azure:
azureaduser=$(az ad user list --filter "userPrincipalName eq '<user-principal-name>'" --query [].objectId --output tsv)Gorjeta
Para ver a lista de todos os nomes principais de usuário no Microsoft Entra ID, execute
az ad user list --query [].userPrincipalName.Adicione este utilizador do Microsoft Entra como administrador do Active Directory usando o
az sql server ad-admin createcomando no Cloud Shell. No comando a seguir, substitua <> pelo nome do servidor (sem o sufixo).az sql server ad-admin create --resource-group myResourceGroup --server-name <server-name> --display-name ADMIN --object-id $azureaduser
Para mais informações sobre como adicionar um administrador do Active Directory, consulte Provisionar um administrador Microsoft Entra para o seu servidor.
Criar uma identidade gerenciada atribuída pelo usuário
Crie uma identidade gerida atribuída pelo utilizador e atribua-a à sua aplicação funcional. Use uma identidade atribuída pelo utilizador porque pode reutilizá-la em múltiplos recursos e o seu ciclo de vida é independente da sua aplicação funcional.
No portal do Azure, pesquise por Identidades Geridas e selecione Criar.
Escolha a sua Subscrição, Grupo de Recursos, Região e atribua à identidade um Nome (por exemplo,
my-sql-identity).Selecione Rever + criar e, em seguida, selecione Criar.
Depois de criada a identidade, vá à sua aplicação de funções no portal.
Em Definições, selecione Identidade e depois selecione o separador Utilizador atribuído.
Selecione Adicionar, escolha a identidade gerida que criou e selecione Adicionar.
Gorjeta
Também pode usar uma identidade gerida atribuída pelo sistema. Se preferir o sistema atribuído, ative-o no separador Atribuído pelo sistema da página Identidade. Ao usar a identidade atribuída pelo sistema, o <identity-name> nos comandos SQL é o nome da sua aplicação de funções, e não necessita do parâmetro User Id na cadeia de ligação.
Conceder acesso ao banco de dados SQL à identidade gerenciada
Neste passo, ligue-se à base de dados SQL usando uma conta de utilizador Microsoft Entra e conceda à identidade gerida acesso à base de dados.
Abra a sua ferramenta SQL preferida e inicie sessão usando uma conta de utilizador Microsoft Entra, como o utilizador Microsoft Entra que atribuiu como administrador. Pode realizar este passo no Cloud Shell usando o comando SQLCMD.
sqlcmd -S <server-name>.database.windows.net -d <db-name> -U <aad-user-name> -P "<aad-password>" -G -l 30No prompt SQL para o banco de dados desejado, execute os seguintes comandos para conceder permissões à sua função. Por exemplo,
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> é o nome da identidade gerenciada no Microsoft Entra ID. Para uma identidade atribuída pelo utilizador, este nome é o nome que deu à identidade quando a criou (por exemplo,
my-sql-identity). Para uma identidade atribuída pelo sistema, o nome é sempre o mesmo que o nome da tua aplicação funcional.Note
Se estiveres a usar o trigger SQL do Azure, a tua identidade gerida requer permissões adicionais para além de
db_datareaderedb_datawriter. Para mais informações, consulte Conceder permissões para SQL do Azure trigger.
Configurar a cadeia de conexão SQL do Azure Function
No passo final, configure a cadeia de ligação SQL da aplicação de funções para utilizar a autenticação de identidade gerida do Microsoft Entra.
Identifica o nome da definição da cadeia de ligação no código da função como o atributo de associação ConnectionStringSetting, conforme mostrado nos atributos e anotações da associação de entrada SQL.
Nas definições da aplicação da sua aplicação de funções, atualize a definição da cadeia de ligação SQL para seguir este formato:
Server=<server-name>.database.windows.net; Authentication=Active Directory Default; Database=<database-name>; User Id=<client-id-of-user-assigned-identity>
Substitua <server-name> pelo nome do seu servidor SQL, <database-name> pelo nome da base de dados e <client-id-of-user-assigned-identity> pelo ID do cliente da sua identidade gerida atribuída pelo utilizador. Pode encontrar o ID do cliente na página de Visão Geral do seu recurso de identidade gerida no portal Azure.
Gorjeta
A Active Directory Default palavra-chave de autenticação funciona tanto localmente (usando as suas credenciais de programador) como no Azure (usando a identidade gerida). Esta funcionalidade significa que podes usar a mesma cadeia de ligação em ambos os ambientes. Para identidade gerida atribuída pelo sistema, omita o parâmetro User Id.
Para mais informações sobre ligações baseadas em identidade, consulte Configurar ligações a serviços remotos.