Autenticar em recursos do Azure a partir de aplicativos JavaScript locais
Os aplicativos executados fora do Azure (por exemplo, no local ou em um data center de terceiros) devem usar uma entidade de serviço de aplicativo para autenticar no Azure ao acessar recursos do Azure. Os objetos principais do serviço de aplicativo são criados usando o processo de registro do aplicativo no Azure. Quando uma entidade de serviço de aplicativo é criada, uma ID do cliente e um segredo do cliente são gerados para seu aplicativo. Você armazena a ID do cliente, o segredo do cliente e a ID do locatário em variáveis de ambiente para que o SDK do Azure para JavaScript use as variáveis de ambiente para autenticar seu aplicativo no Azure em tempo de execução.
Um registro de aplicativo diferente deve ser criado para cada ambiente (como teste, estágio, produção) em que o aplicativo está sendo executado. Isso permite que permissões de recursos específicos do ambiente sejam configuradas para cada entidade de serviço e certifique-se de que um aplicativo implantado em um ambiente não converse com os recursos do Azure que fazem parte de outro ambiente.
1 - Registar a aplicação no Azure
Um aplicativo pode ser registrado no Azure usando o portal do Azure ou a CLI do Azure.
Entre no portal do Azure e siga estas etapas.
2 - Atribuir funções à entidade de serviço do aplicativo
Em seguida, você precisa determinar quais funções (permissões) seu aplicativo precisa em quais recursos e atribuir essas funções ao seu aplicativo. As funções podem ser atribuídas a uma função em um recurso, grupo de recursos ou escopo de assinatura. Este exemplo mostrará como atribuir funções para a entidade de serviço no escopo do grupo de recursos, já que a maioria dos aplicativos agrupa todos os seus recursos do Azure em um único grupo de recursos.
3 - Configurar variáveis de ambiente para aplicação
Você deve definir as AZURE_CLIENT_ID
variáveis , AZURE_TENANT_ID
e de AZURE_CLIENT_SECRET
ambiente para o processo que executa seu aplicativo JavaScript para disponibilizar as credenciais da entidade de serviço do aplicativo para seu aplicativo em tempo de execução. O DefaultAzureCredential
objeto procura as informações da entidade de serviço nessas variáveis de ambiente.
AZURE_CLIENT_ID=<value>
AZURE_TENANT_ID=<value>
AZURE_CLIENT_SECRET=<value>
4 - Implementar DefaultAzureCredential no aplicativo
Para autenticar objetos de cliente do SDK do Azure no Azure, seu aplicativo deve usar a DefaultAzureCredential
classe do pacote @azure/identity .
Primeiro, adicione o pacote @azure/identity ao seu aplicativo.
npm install @azure/identity
Em seguida, para qualquer código JavaScript que crie um objeto de cliente do SDK do Azure em seu aplicativo, você deseja:
- Importe a
DefaultAzureCredential
classe do@azure/identity
módulo. - Crie um
DefaultAzureCredential
objeto. - Passe o
DefaultAzureCredential
objeto para o construtor de objeto de cliente do SDK do Azure.
Um exemplo disso é mostrado no segmento de código a seguir.
// connect-with-default-azure-credential.js
import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';
import 'dotenv/config'
const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
if (!accountName) throw Error('Azure Storage accountName not found');
const blobServiceClient = new BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
new DefaultAzureCredential()
);
Quando o código acima instancia o DefaultAzureCredential
objeto, DefaultAzureCredential
lê as variáveis AZURE_SUBSCRIPTION_ID
de ambiente , , AZURE_CLIENT_ID
AZURE_TENANT_ID
e AZURE_CLIENT_SECRET
para as informações da entidade de serviço de aplicativo com as quais se conectar ao Azure.