Guia de início rápido: implantar o aplicativo de API RESTful no Azure Spring Apps
Nota
Os planos Basic, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de aposentadoria de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.
O plano de consumo padrão e dedicado será preterido a partir de 30 de setembro de 2024, com um desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte Migrar consumo padrão e plano dedicado do Azure Spring Apps para Aplicativos de Contêiner do Azure.
Este artigo descreve como implantar um aplicativo de API RESTful protegido pelo Microsoft Entra ID no Azure Spring Apps. O projeto de exemplo é uma versão simplificada baseada no aplicativo Web Simple Todo , que fornece apenas o serviço de back-end e usa o Microsoft Entra ID para proteger as APIs RESTful.
Essas APIs RESTful são protegidas pela aplicação de RBAC (controle de acesso baseado em função). Os utilizadores anónimos não podem aceder a quaisquer dados e não têm permissão para controlar o acesso de diferentes utilizadores. Os utilizadores anónimos têm apenas as três permissões seguintes:
- Leia: Com essa permissão, um usuário pode ler os dados do ToDo.
- Gravação: Com essa permissão, um usuário pode adicionar ou atualizar os dados ToDo.
- Excluir: Com essa permissão, um usuário pode excluir os dados ToDo.
Depois que a implantação for bem-sucedida, você poderá exibir e testar as APIs por meio da interface do usuário do Swagger.
O diagrama a seguir mostra a arquitetura do sistema:
Este artigo descreve as seguintes opções para criar recursos e implantá-los no Azure Spring Apps:
- A opção de plug-in do portal do Azure + Maven fornece uma maneira mais convencional de criar recursos e implantar aplicativos passo a passo. Essa opção é adequada para desenvolvedores do Spring que usam os serviços de nuvem do Azure pela primeira vez.
- A opção CLI do Desenvolvedor do Azure é uma maneira mais eficiente de criar recursos e implantar aplicativos automaticamente por meio de comandos simples. A CLI do Desenvolvedor do Azure usa um modelo para provisionar os recursos do Azure necessários e implantar o código do aplicativo. Essa opção é adequada para desenvolvedores do Spring que estão familiarizados com os serviços de nuvem do Azure.
Este artigo descreve as seguintes opções para criar recursos e implantá-los no Azure Spring Apps:
- A opção de plug-in do portal do Azure + Maven fornece uma maneira mais convencional de criar recursos e implantar aplicativos passo a passo. Essa opção é adequada para desenvolvedores do Spring que usam os serviços de nuvem do Azure pela primeira vez.
- A opção CLI do Azure usa uma poderosa ferramenta de linha de comando para gerenciar recursos do Azure. Essa opção é adequada para desenvolvedores do Spring que estão familiarizados com os serviços de nuvem do Azure.
1. Pré-requisitos
Uma subscrição do Azure. Se você não tiver uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Uma das seguintes funções:
- Administrador Global ou Administrador de Funções Privilegiadas para conceder consentimento para aplicações que pedem qualquer permissão, para qualquer API.
- Cloud Application Administrator ou Application Administrator, por conceder consentimento para aplicativos que solicitam qualquer permissão para qualquer API, exceto funções de aplicativo do Microsoft Graph (permissões de aplicativo).
- Uma função de diretório personalizada que inclui a permissão para conceder permissões a aplicativos, para as permissões exigidas pelo aplicativo.
Para obter mais informações, consulte Conceder consentimento de administrador de todo o locatário para um aplicativo.
Se você estiver implantando uma instância do plano do Azure Spring Apps Enterprise pela primeira vez na assinatura de destino, consulte a seção Requisitos do plano Enterprise no Azure Marketplace.
Git.
Java Development Kit (JDK), versão 17.
Um locatário do Microsoft Entra. Para obter instruções sobre como criar um, consulte Guia de início rápido: criar um novo locatário no Microsoft Entra ID.
Uma assinatura do Azure, Se você não tiver uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Uma das seguintes funções:
- Administrador Global ou Administrador de Funções Privilegiadas para conceder consentimento para aplicações que pedem qualquer permissão, para qualquer API.
- Cloud Application Administrator ou Application Administrator, por conceder consentimento para aplicativos que solicitam qualquer permissão para qualquer API, exceto funções de aplicativo do Microsoft Graph (permissões de aplicativo).
- Uma função de diretório personalizada que inclui a permissão para conceder permissões a aplicativos, para as permissões exigidas pelo aplicativo.
Para obter mais informações, consulte Conceder consentimento de administrador de todo o locatário para um aplicativo.
Git.
Java Development Kit (JDK), versão 17.
Um locatário do Microsoft Entra. Para obter instruções sobre como criar um, consulte Guia de início rápido: criar um novo locatário no Microsoft Entra ID.
2. Preparar o projeto da primavera
Para implantar o aplicativo de API RESTful, a primeira etapa é preparar o projeto Spring para ser executado localmente.
Use as seguintes etapas para clonar e executar o aplicativo localmente:
Use o seguinte comando para clonar o projeto de exemplo do GitHub:
git clone https://github.com/Azure-Samples/ASA-Samples-Restful-Application.git
Se você quiser executar o aplicativo localmente, conclua as etapas nas seções Expor APIs RESTful e Atualizar a configuração do aplicativo primeiro e, em seguida, use o seguinte comando para executar o aplicativo de exemplo com o Maven:
cd ASA-Samples-Restful-Application ./mvnw spring-boot:run
3. Prepare o ambiente de nuvem
Os principais recursos necessários para executar este aplicativo de exemplo são uma instância do Azure Spring Apps e uma instância do Banco de Dados do Azure para PostgreSQL. As seções a seguir descrevem como criar esses recursos.
3.1. Inicie sessão no portal do Azure
Vá para o portal do Azure e insira suas credenciais para entrar no portal. A vista predefinida é o dashboard de serviço.
3.2. Criar uma instância do Azure Spring Apps
Use as seguintes etapas para criar uma instância de serviço do Azure Spring Apps:
Selecione Criar um recurso no canto do portal do Azure.
Selecione Compute>Azure Spring Apps.
Preencha o formulário Básico com as seguintes informações:
Definição Valor sugerido Description Subscrição O nome da subscrição. A subscrição do Azure que quer utilizar para o servidor. Se tiver várias subscrições, escolha a subscrição na qual pretende ser cobrado pelo recurso. Grupo de recursos myresourcegroup Um nome de grupo de recursos novo ou um já existente na sua subscrição. Nome Miasa Um nome exclusivo que identifica seu serviço Azure Spring Apps. O nome deve ter entre 4 e 32 caracteres e pode conter apenas letras minúsculas, números e hífenes. O primeiro caractere do nome do serviço deve ser uma letra e o último caractere deve ser uma letra ou um número. Planear Enterprise O plano de preços que determina o recurso e o custo associados à sua instância. Região A região mais próxima dos seus utilizadores. A localização que esteja mais próxima dos seus utilizadores. Zona redundante não selecionado A opção para criar seu serviço Azure Spring Apps em uma zona de disponibilidade do Azure. Atualmente, esse recurso não é suportado em todas as regiões. Plano IP de software Pay As You Go O plano de preços que lhe permite pagar à medida que avança com as Aplicações Azure Spring. Termos Selecionado A caixa de seleção do contrato associada à oferta do Marketplace. É necessário selecionar essa caixa de seleção. Implantar projeto de exemplo não selecionado A opção para usar o aplicativo de exemplo interno. Selecione Rever e Criar para rever as suas seleções. Em seguida, selecione Criar para provisionar a instância do Azure Spring Apps.
Na barra de ferramentas, selecione o ícone Notificações (um sino) para monitorizar o processo de implementação. Após a conclusão da implantação, você pode selecionar Fixar no painel, que cria um bloco para esse serviço no painel do portal do Azure como um atalho para a página Visão geral do serviço.
Selecione Ir para o recurso para ir para a página Visão Geral do Azure Spring Apps.
3.3. Preparar a instância do PostgreSQL
Use as seguintes etapas para criar um Banco de Dados do Azure para o servidor PostgreSQL:
Vá para o portal do Azure e selecione Criar um recurso.
Selecione Bases de Dados>Base de Dados do Azure para PostgreSQL.
Selecione a opção Implantação flexível do servidor .
Preencha a guia Noções básicas com as seguintes informações:
- Nome do servidor: my-demo-pgsql
- Região: East US
- Versão do PostgreSQL: 14
- Tipo de carga de trabalho: Desenvolvimento
- Ativar alta disponibilidade: desselecionado
- Método de autenticação: somente autenticação PostgreSQL
- Nome de usuário do administrador: myadmin
- Palavra-passe e Confirmar palavra-passe: Introduza uma palavra-passe.
Use as seguintes informações para configurar a guia Rede :
- Método de conectividade: Acesso público (endereços IP permitidos)
- Permitir acesso público de qualquer serviço do Azure no Azure a este servidor: selecionado
Selecione Rever + criar para rever as suas seleções e selecione Criar para provisionar o servidor. Esta operação pode demorar alguns minutos.
Vá para o seu servidor PostgreSQL no portal do Azure. Na página Visão geral, procure o valor Nome do servidor e registre-o para uso posterior. Você precisa dele para configurar as variáveis de ambiente para o aplicativo no Azure Spring Apps.
Selecione Bancos de dados no menu de navegação para criar um banco de dados - por exemplo, todo.
3.4. Conectar a instância do aplicativo à instância do PostgreSQL
Use as seguintes etapas para conectar suas instâncias de serviço:
Vá para sua instância do Azure Spring Apps no portal do Azure.
No menu de navegação, abra Aplicativos e selecione Criar aplicativo.
Na página Criar aplicativo, preencha o nome do aplicativo simple-todo-api e selecione artefatos Java como o tipo de implementação.
Selecione Criar para concluir a criação do aplicativo e, em seguida, selecione o aplicativo para exibir os detalhes.
Vá para o aplicativo que você criou no portal do Azure. Na página Visão geral, selecione Atribuir ponto de extremidade para expor o ponto de extremidade público do aplicativo. Salve a URL para acessar o aplicativo após a implantação.
Selecione Conector de Serviço no painel de navegação e, em seguida, selecione Criar para criar uma nova conexão de serviço.
Preencha a guia Noções básicas com as seguintes informações:
- Tipo de serviço: DB para servidor flexível PostgreSQL
- Nome da conexão: um nome gerado automaticamente é preenchido, que também pode ser modificado.
- Subscrição: selecione a sua subscrição.
- Servidor flexível PostgreSQL: my-demo-pgsql
- Banco de dados PostgreSQL: Selecione o banco de dados que você criou.
- Tipo de cliente: SpringBoot
Configure a guia Next: Authentication com as seguintes informações:
- Selecione o tipo de autenticação que você deseja usar entre o serviço de computação e o serviço de destino.: Selecione Cadeia de conexão.
- Continuar com...: Selecione Credenciais do banco de dados
- Nome de usuário: myadmin
- Palavra-passe: Introduza a sua palavra-passe.
Selecione Next: Networking. Use a opção padrão Configurar regras de firewall para habilitar o acesso ao serviço de destino.
Selecione Seguinte: Rever e Criar para rever as suas seleções e, em seguida, selecione Criar para criar a ligação.
3.5. Expor APIs RESTful
Use as seguintes etapas para expor suas APIs RESTful no Microsoft Entra ID:
Inicie sessão no portal do Azure.
Se você tiver acesso a vários locatários, use o filtro Diretório + assinatura ( ) para selecionar o locatário no qual deseja registrar um aplicativo.
Procure e selecione Microsoft Entra ID.
Em Gerir, selecione Registos de>aplicações Novo registo.
Insira um nome para seu aplicativo no campo Nome - por exemplo, Todo. Os usuários do seu aplicativo podem ver esse nome e você pode alterá-lo mais tarde.
Em Tipos de conta suportados, selecione Contas em qualquer diretório organizacional (Qualquer diretório Microsoft Entra - Multilocatário) e contas pessoais da Microsoft.
Selecione Registar para criar a aplicação.
Na página Visão geral do aplicativo, procure o valor da ID do aplicativo (cliente) e registre-o para uso posterior. Você precisa dele para configurar o arquivo de configuração YAML para este projeto.
Em Gerenciar, selecione Expor uma API, localize o URI da ID do Aplicativo no início da página e selecione Adicionar.
Na página Editar URI da ID do aplicativo, aceite o URI da ID do Aplicativo proposto (
api://{client ID}
) ou use um nome significativo em vez da ID do cliente, comoapi://simple-todo
, e selecione Salvar.Em Gerenciar, selecione Expor uma API>Adicionar um escopo e insira as seguintes informações:
- Em Nome do escopo, digite ToDo.Read.
- Em Quem pode consentir, selecione Somente administradores.
- Para Nome de exibição do Consentimento do administrador, insira Ler os dados do ToDo.
- Para Descrição do consentimento do administrador, insira Permite que usuários autenticados leiam os dados do ToDo.
- Para Estado, mantenha-o ativado.
- Selecione Adicionar escopo.
Repita as etapas anteriores para adicionar os outros dois escopos: ToDo.Write e ToDo.Delete.
3.6. Atualizar a configuração do aplicativo
Use as seguintes etapas para atualizar o arquivo YAML para usar as informações do aplicativo registrado do Microsoft Entra para estabelecer um relacionamento com o aplicativo de API RESTful:
Localize o arquivo src/main/resources/application.yml para o
simple-todo-api
aplicativo. Atualize aspring.cloud.azure.active-directory
configuração na seção para corresponder ao exemplo a seguir. Certifique-se de substituir os espaços reservados pelos valores criados anteriormente.spring: cloud: azure: active-directory: profile: tenant-id: <tenant> credential: client-id: <your-application-ID-of-ToDo> app-id-uri: <your-application-ID-URI-of-ToDo>
Nota
Nos tokens v1.0, a configuração requer o ID do cliente da API, enquanto nos tokens v2.0, você pode usar o ID do cliente ou o URI do ID do aplicativo na solicitação. Você pode configurar ambos para concluir corretamente a validação de audiência.
Os valores permitidos são
tenant-id
:common
,organizations
,consumers
, ou o ID do locatário. Para obter mais informações sobre esses valores, consulte a seção Usado o ponto de extremidade errado (contas pessoais e da organização) de AADSTS50020 de erro - A conta de usuário do provedor de identidade não existe no locatário. Para obter informações sobre como converter seu aplicativo de locatário único, consulte Converter aplicativo de locatário único em multilocatário no Microsoft Entra ID.Use o seguinte comando para reconstruir o projeto de exemplo:
./mvnw clean package
4. Implantar o aplicativo no Azure Spring Apps
Agora você pode implantar o aplicativo no Azure Spring Apps.
Use as seguintes etapas para implantar usando o plug-in Maven para Azure Spring Apps:
Navegue até o diretório completo e execute o seguinte comando para configurar o aplicativo no Azure Spring Apps:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
A lista a seguir descreve as interações de comando:
- Login OAuth2: você precisa autorizar o logon no Azure com base no protocolo OAuth2.
- Selecionar assinatura: selecione o número da lista de assinaturas da instância do Azure Spring Apps que você criou, que assume como padrão a primeira assinatura na lista. Se você usar o número padrão, pressione Enter diretamente.
- Usar aplicativos Azure Spring existentes no Azure: pressione y para usar a instância existente do Azure Spring Apps.
- Selecione Azure Spring Apps para implantação: selecione o número da instância do Azure Spring Apps que você criou. Se você usar o número padrão, pressione Enter diretamente.
- Usar aplicativo existente no Azure Spring Apps <your-instance-name>: pressione y para usar o aplicativo criado.
- Confirme para salvar todas as configurações acima: Pressione y. Se você pressionar n, a configuração não será salva nos arquivos POM.
Use o seguinte comando para implantar o aplicativo:
./mvnw azure-spring-apps:deploy
A lista a seguir descreve a interação de comando:
- Login OAuth2: você precisa autorizar o logon no Azure com base no protocolo OAuth2.
Depois que o comando for executado, você poderá ver nas seguintes mensagens de log que a implantação foi bem-sucedida:
[INFO] Deployment Status: Running
[INFO] InstanceName:simple-todo-api-default-15-xxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:N/A
[INFO] Getting public url of app(simple-todo-api)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-simple-todo-api.azuremicroservices.io
5. Valide o aplicativo
Agora você pode acessar a API RESTful para ver se ela funciona.
5.1. Pedir um token de acesso
As APIs RESTful atuam como um servidor de recursos, que é protegido pelo Microsoft Entra ID. Antes de adquirir um token de acesso, você deve registrar outro aplicativo no Microsoft Entra ID e conceder permissões ao aplicativo cliente, que é chamado ToDoWeb
.
Registar a aplicação cliente
Use as seguintes etapas para registrar um aplicativo no Microsoft Entra ID, que é usado para adicionar as permissões para o ToDo
aplicativo:
Inicie sessão no portal do Azure.
Se você tiver acesso a vários locatários, use o filtro Diretório + assinatura ( ) para selecionar o locatário no qual deseja registrar um aplicativo.
Procure e selecione Microsoft Entra ID.
Em Gerir, selecione Registos de>aplicações Novo registo.
Insira um nome para seu aplicativo no campo Nome - por exemplo, ToDoWeb. Os usuários do seu aplicativo podem ver esse nome e você pode alterá-lo mais tarde.
Para Tipos de conta suportados, use o valor padrão Contas somente neste diretório organizacional.
Selecione Registar para criar a aplicação.
Na página Visão geral do aplicativo, procure o valor da ID do aplicativo (cliente) e registre-o para uso posterior. Você precisa dele para adquirir um token de acesso.
Selecione Permissões>de API Adicionar uma permissão>Minhas APIs. Selecione o
ToDo
aplicativo que você registrou anteriormente e, em seguida, selecione as permissões ToDo.Read, ToDo.Write e ToDo.Delete. Selecione Adicionar permissões.Selecione Conceder consentimento de administrador para <seu nome> de locatário para conceder consentimento de administrador para as permissões adicionadas.
Adicionar usuário para acessar as APIs RESTful
Use as etapas a seguir para criar um usuário membro em seu locatário do Microsoft Entra. Em seguida, o usuário pode gerenciar os ToDo
dados do aplicativo por meio de APIs RESTful.
Em Gerenciar, selecione Usuários>Novo usuário>Criar novo usuário.
Na página Criar novo usuário, insira as seguintes informações:
- Nome principal do usuário: insira um nome para o usuário.
- Nome para exibição: insira um nome para exibição para o usuário.
- Senha: copie a senha gerada automaticamente fornecida na caixa Senha .
Nota
Novos usuários devem concluir a primeira autenticação de entrada e atualizar suas senhas, caso contrário, você receberá um
AADSTS50055: The password is expired
erro quando receber o token de acesso.Quando um novo usuário faz login, ele recebe um prompt de Ação necessária . Eles podem escolher Perguntar mais tarde para ignorar a validação.
Selecione Rever + criar para rever as suas seleções. Selecione Criar para criar o usuário.
Atualizar a configuração OAuth2 para autorização da interface do usuário do Swagger
Use as etapas a seguir para atualizar a configuração OAuth2 para autorização da interface do usuário do Swagger. Em seguida, você pode autorizar os usuários a adquirir tokens de acesso por meio do ToDoWeb
aplicativo.
Abra seu locatário do Microsoft Entra ID no portal do Azure e vá para o aplicativo registrado
ToDoWeb
.Em Gerir, selecione Autenticação, selecione Adicionar uma plataforma e, em seguida, selecione Aplicação de página única.
Use o formato
<your-app-exposed-application-URL-or-endpoint>/swagger-ui/oauth2-redirect.html
como a URL de redirecionamento OAuth2 no campo URIs de redirecionamento e selecione Configurar.
2. Preparar o projeto da primavera
Para implantar o aplicativo de API RESTful, a primeira etapa é preparar o projeto Spring para ser executado localmente.
Use as seguintes etapas para clonar e executar o aplicativo localmente:
Use o seguinte comando para clonar o projeto de exemplo do GitHub:
git clone https://github.com/Azure-Samples/ASA-Samples-Restful-Application.git
Se você quiser executar o aplicativo localmente, conclua as etapas nas seções Expor APIs RESTful e Atualizar a configuração do aplicativo primeiro e, em seguida, use o seguinte comando para executar o aplicativo de exemplo com o Maven:
cd ASA-Samples-Restful-Application ./mvnw spring-boot:run
3. Prepare o ambiente de nuvem
Os principais recursos necessários para executar este aplicativo de exemplo são uma instância do Azure Spring Apps e uma instância do Banco de Dados do Azure para PostgreSQL. As seções a seguir descrevem como criar esses recursos.
3.1. Inicie sessão no portal do Azure
Vá para o portal do Azure e insira suas credenciais para entrar no portal. A vista predefinida é o dashboard de serviço.
3.2. Criar uma instância do Azure Spring Apps
Use as seguintes etapas para criar uma instância de serviço:
Selecione Criar um recurso no canto do portal.
Selecione Compute>Azure Spring Apps.
Preencha o formulário Noções básicas . Use a tabela a seguir como um guia para preencher o formulário. O valor recomendado do Plano é Consumo padrão e dedicado (visualização).
Definição Valor sugerido Description Subscrição O nome da subscrição. A subscrição do Azure que quer utilizar para o servidor. Se tiver várias subscrições, escolha a subscrição na qual pretende ser cobrado pelo recurso. Grupo de recursos myresourcegroup Um nome de grupo de recursos novo ou um já existente na sua subscrição. Nome Miasa Um nome exclusivo que identifica seu serviço Azure Spring Apps. O nome deve ter entre 4 e 32 caracteres e pode conter apenas letras minúsculas, números e hífenes. O primeiro caractere do nome do serviço deve ser uma letra e o último caractere deve ser uma letra ou um número. Planear Consumo padrão e dedicado (pré-visualização) O plano de preços determina os recursos e o custo associados à sua instância. Região A região mais próxima dos seus utilizadores. A localização que esteja mais próxima dos seus utilizadores. Ambiente de aplicativos de contêiner myenvironment A opção para selecionar qual instância do ambiente Container Apps compartilhar a mesma rede virtual com outros serviços e recursos. Use a tabela a seguir como um guia para a criação do Ambiente de Aplicativos de Contêiner:
Definição Valor sugerido Description Nome do ambiente myenvironment Um nome exclusivo que identifica seu serviço de Ambiente de Aplicativos de Contêiner do Azure. Planear Consumo O plano de preços determina os recursos e o custo associados à sua instância. Zona redundante Desativado A opção para criar o serviço Ambiente de Aplicativos de Contêiner em uma zona de disponibilidade do Azure. Selecione Rever e Criar para rever as suas seleções. Em seguida, selecione Criar para provisionar a instância do Azure Spring Apps.
Na barra de ferramentas, selecione o ícone Notificações (um sino) para monitorizar o processo de implementação. Após a conclusão da implantação, você pode selecionar Fixar no painel, que cria um bloco para esse serviço no painel do portal do Azure como um atalho para a página Visão geral do serviço.
Selecione Ir para recurso para abrir a página Visão geral do serviço.
Importante
O perfil de carga de trabalho de Consumo tem um modelo de faturamento pré-pago, sem custo inicial. Você é cobrado pelo perfil de carga de trabalho dedicada com base nos recursos provisionados. Para obter mais informações, consulte Perfis de carga de trabalho nos preços dos Aplicativos de Contêiner do Azure e dos Aplicativos Azure Spring.
3.3. Preparar a instância do PostgreSQL
Use as seguintes etapas para criar um Banco de Dados do Azure para o servidor PostgreSQL:
Vá para o portal do Azure e selecione Criar um recurso.
Selecione Bases de Dados>Base de Dados do Azure para PostgreSQL.
Selecione a opção Implantação flexível do servidor .
Preencha a guia Noções básicas com as seguintes informações:
- Nome do servidor: my-demo-pgsql
- Região: East US
- Versão do PostgreSQL: 14
- Tipo de carga de trabalho: Desenvolvimento
- Ativar alta disponibilidade: desselecionado
- Método de autenticação: somente autenticação PostgreSQL
- Nome de usuário do administrador: myadmin
- Palavra-passe e Confirmar palavra-passe: Introduza uma palavra-passe.
Use as seguintes informações para configurar a guia Rede :
- Método de conectividade: Acesso público (endereços IP permitidos)
- Permitir acesso público de qualquer serviço do Azure no Azure a este servidor: selecionado
Selecione Rever + criar para rever as suas seleções e selecione Criar para provisionar o servidor. Esta operação pode demorar alguns minutos.
Vá para o seu servidor PostgreSQL no portal do Azure. Na página Visão geral, procure o valor Nome do servidor e registre-o para uso posterior. Você precisa dele para configurar as variáveis de ambiente para o aplicativo no Azure Spring Apps.
Selecione Bancos de dados no menu de navegação para criar um banco de dados - por exemplo, todo.
3.4. Conectar a instância do aplicativo à instância do PostgreSQL
Use as seguintes etapas para conectar suas instâncias de serviço:
Vá para sua instância do Azure Spring Apps no portal do Azure.
No menu de navegação, abra Aplicativos e selecione Criar aplicativo.
Na página Criar aplicativo, preencha o nome do aplicativo simple-todo-api e selecione artefatos Java como o tipo de implementação.
Selecione Criar para concluir a criação do aplicativo e selecione o aplicativo para exibir os detalhes.
Vá para o aplicativo que você criou no portal do Azure. Na página Visão geral, selecione Atribuir ponto de extremidade para expor o ponto de extremidade público do aplicativo. Salve a URL para acessar o aplicativo após a implantação.
Vá para o aplicativo que você criou, expanda Configurações e selecione Configuração no menu de navegação e, em seguida, selecione Variáveis de ambiente para definir as variáveis de ambiente.
Adicione as seguintes variáveis de ambiente para a conexão PostgreSQL e selecione Salvar para concluir a atualização de configuração do aplicativo. Certifique-se de substituir os espaços reservados por seus próprios valores que você criou anteriormente.
Variável de ambiente Value SPRING_DATASOURCE_URL
jdbc:postgresql://<your-PostgreSQL-server-name>:5432/<your-PostgreSQL-database-name>
SPRING_DATASOURCE_USERNAME
<your-PostgreSQL-admin-user>
SPRING_DATASOURCE_PASSWORD
<your-PostgreSQL-admin-password>
3.5. Expor APIs RESTful
Use as seguintes etapas para expor suas APIs RESTful no Microsoft Entra ID:
Inicie sessão no portal do Azure.
Se você tiver acesso a vários locatários, use o filtro Diretório + assinatura ( ) para selecionar o locatário no qual deseja registrar um aplicativo.
Procure e selecione Microsoft Entra ID.
Em Gerir, selecione Registos de>aplicações Novo registo.
Insira um nome para seu aplicativo no campo Nome - por exemplo, Todo. Os usuários do seu aplicativo podem ver esse nome e você pode alterá-lo mais tarde.
Em Tipos de conta suportados, selecione Contas em qualquer diretório organizacional (Qualquer diretório Microsoft Entra - Multilocatário) e contas pessoais da Microsoft.
Selecione Registar para criar a aplicação.
Na página Visão geral do aplicativo, procure o valor da ID do aplicativo (cliente) e registre-o para uso posterior. Você precisa dele para configurar o arquivo de configuração YAML para este projeto.
Em Gerenciar, selecione Expor uma API, localize o URI da ID do Aplicativo no início da página e selecione Adicionar.
Na página Editar URI da ID do aplicativo, aceite o URI da ID do Aplicativo proposto (
api://{client ID}
) ou use um nome significativo em vez da ID do cliente, comoapi://simple-todo
, e selecione Salvar.Em Gerenciar, selecione Expor uma API>Adicionar um escopo e insira as seguintes informações:
- Em Nome do escopo, digite ToDo.Read.
- Em Quem pode consentir, selecione Somente administradores.
- Para Nome de exibição do Consentimento do administrador, insira Ler os dados do ToDo.
- Para Descrição do consentimento do administrador, insira Permite que usuários autenticados leiam os dados do ToDo.
- Para Estado, mantenha-o ativado.
- Selecione Adicionar escopo.
Repita as etapas anteriores para adicionar os outros dois escopos: ToDo.Write e ToDo.Delete.
3.6. Atualizar a configuração do aplicativo
Use as seguintes etapas para atualizar o arquivo YAML para usar as informações do aplicativo registrado do Microsoft Entra para estabelecer um relacionamento com o aplicativo de API RESTful:
Localize o arquivo src/main/resources/application.yml para o
simple-todo-api
aplicativo. Atualize aspring.cloud.azure.active-directory
configuração na seção para corresponder ao exemplo a seguir. Certifique-se de substituir os espaços reservados pelos valores criados anteriormente.spring: cloud: azure: active-directory: profile: tenant-id: <tenant> credential: client-id: <your-application-ID-of-ToDo> app-id-uri: <your-application-ID-URI-of-ToDo>
Nota
Nos tokens v1.0, a configuração requer o ID do cliente da API, enquanto nos tokens v2.0, você pode usar o ID do cliente ou o URI do ID do aplicativo na solicitação. Você pode configurar ambos para concluir corretamente a validação de audiência.
Os valores permitidos são
tenant-id
:common
,organizations
,consumers
, ou o ID do locatário. Para obter mais informações sobre esses valores, consulte a seção Usado o ponto de extremidade errado (contas pessoais e da organização) de AADSTS50020 de erro - A conta de usuário do provedor de identidade não existe no locatário. Para obter informações sobre como converter seu aplicativo de locatário único, consulte Converter aplicativo de locatário único em multilocatário no Microsoft Entra ID.Use o seguinte comando para reconstruir o projeto de exemplo:
./mvnw clean package
4. Implantar o aplicativo no Azure Spring Apps
Agora você pode implantar o aplicativo no Azure Spring Apps.
Use as seguintes etapas para implantar usando o plug-in Maven para Azure Spring Apps:
Navegue até o diretório completo e execute o seguinte comando para configurar o aplicativo no Azure Spring Apps:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
A lista a seguir descreve as interações de comando:
- Login OAuth2: você precisa autorizar o logon no Azure com base no protocolo OAuth2.
- Selecionar assinatura: selecione o número da lista de assinaturas da instância do Azure Spring Apps que você criou, que assume como padrão a primeira assinatura na lista. Se você usar o número padrão, pressione Enter diretamente.
- Usar aplicativos Azure Spring existentes no Azure: pressione y para usar a instância existente do Azure Spring Apps.
- Selecione Azure Spring Apps para implantação: selecione o número da instância do Azure Spring Apps que você criou. Se você usar o número padrão, pressione Enter diretamente.
- Usar aplicativo existente no Azure Spring Apps <your-instance-name>: pressione y para usar o aplicativo criado.
- Confirme para salvar todas as configurações acima: Pressione y. Se você pressionar n, a configuração não será salva nos arquivos POM.
Use o seguinte comando para implantar o aplicativo:
./mvnw azure-spring-apps:deploy
A lista a seguir descreve a interação de comando:
- Login OAuth2: você precisa autorizar o logon no Azure com base no protocolo OAuth2.
Depois que o comando for executado, você poderá ver nas seguintes mensagens de log que a implantação foi bem-sucedida:
[INFO] Deployment(default) is successfully created
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
[INFO] InstanceName:demo--default-xxxxxxx-xxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:NONE
[INFO] Getting public url of app(demo)...
[INFO] Application url: https://demo.<unique-identifier>.<region-name>.azurecontainerapps.io
5. Valide o aplicativo
Agora você pode acessar a API RESTful para ver se ela funciona.
5.1. Pedir um token de acesso
As APIs RESTful atuam como um servidor de recursos, que é protegido pelo Microsoft Entra ID. Antes de adquirir um token de acesso, você deve registrar outro aplicativo no Microsoft Entra ID e conceder permissões ao aplicativo cliente, que é chamado ToDoWeb
.
Registar a aplicação cliente
Use as seguintes etapas para registrar um aplicativo no Microsoft Entra ID, que é usado para adicionar as permissões para o ToDo
aplicativo:
Inicie sessão no portal do Azure.
Se você tiver acesso a vários locatários, use o filtro Diretório + assinatura ( ) para selecionar o locatário no qual deseja registrar um aplicativo.
Procure e selecione Microsoft Entra ID.
Em Gerir, selecione Registos de>aplicações Novo registo.
Insira um nome para seu aplicativo no campo Nome - por exemplo, ToDoWeb. Os usuários do seu aplicativo podem ver esse nome e você pode alterá-lo mais tarde.
Para Tipos de conta suportados, use o valor padrão Contas somente neste diretório organizacional.
Selecione Registar para criar a aplicação.
Na página Visão geral do aplicativo, procure o valor da ID do aplicativo (cliente) e registre-o para uso posterior. Você precisa dele para adquirir um token de acesso.
Selecione Permissões>de API Adicionar uma permissão>Minhas APIs. Selecione o
ToDo
aplicativo que você registrou anteriormente e, em seguida, selecione as permissões ToDo.Read, ToDo.Write e ToDo.Delete. Selecione Adicionar permissões.Selecione Conceder consentimento de administrador para <seu nome> de locatário para conceder consentimento de administrador para as permissões adicionadas.
Adicionar usuário para acessar as APIs RESTful
Use as etapas a seguir para criar um usuário membro em seu locatário do Microsoft Entra. Em seguida, o usuário pode gerenciar os ToDo
dados do aplicativo por meio de APIs RESTful.
Em Gerenciar, selecione Usuários>Novo usuário>Criar novo usuário.
Na página Criar novo usuário, insira as seguintes informações:
- Nome principal do usuário: insira um nome para o usuário.
- Nome para exibição: insira um nome para exibição para o usuário.
- Senha: copie a senha gerada automaticamente fornecida na caixa Senha .
Nota
Novos usuários devem concluir a primeira autenticação de entrada e atualizar suas senhas, caso contrário, você receberá um
AADSTS50055: The password is expired
erro quando receber o token de acesso.Quando um novo usuário faz login, ele recebe um prompt de Ação necessária . Eles podem escolher Perguntar mais tarde para ignorar a validação.
Selecione Rever + criar para rever as suas seleções. Selecione Criar para criar o usuário.
Atualizar a configuração OAuth2 para autorização da interface do usuário do Swagger
Use as etapas a seguir para atualizar a configuração OAuth2 para autorização da interface do usuário do Swagger. Em seguida, você pode autorizar os usuários a adquirir tokens de acesso por meio do ToDoWeb
aplicativo.
Abra seu locatário do Microsoft Entra ID no portal do Azure e vá para o aplicativo registrado
ToDoWeb
.Em Gerir, selecione Autenticação, selecione Adicionar uma plataforma e, em seguida, selecione Aplicação de página única.
Use o formato
<your-app-exposed-application-URL-or-endpoint>/swagger-ui/oauth2-redirect.html
como a URL de redirecionamento OAuth2 no campo URIs de redirecionamento e selecione Configurar.
Obter o token de acesso
Use as seguintes etapas para usar o método de fluxo de código de autorização OAuth 2.0 para obter um token de acesso com o Microsoft Entra ID e, em seguida, acessar as APIs RESTful do ToDo
aplicativo:
Abra o URL exposto pelo aplicativo e selecione Autorizar para preparar a autenticação OAuth2.
Na janela Autorizações disponíveis, insira a
ToDoWeb
ID do cliente do aplicativo no campo client_id, selecione todos os escopos para o campo Escopos, ignore o campo client_secret e selecione Autorizar para redirecionar para a página de entrada do Microsoft Entra.
Depois de concluir o login com o usuário anterior, você retornará à janela Autorizações disponíveis.
5.2. Acesse as APIs RESTful
Use as seguintes etapas para acessar as APIs RESTful do ToDo
aplicativo na interface do usuário do Swagger:
Selecione a API POST /api/simple-todo/lists e, em seguida, selecione Experimentar. Insira o seguinte corpo da solicitação e selecione Executar para criar uma lista de Tarefas Pendentes.
{ "name": "My List" }
Após a conclusão da execução, você verá o seguinte corpo de resposta:
{ "id": "<ID-of-the-ToDo-list>", "name": "My List", "description": null }
Selecione a API POST /api/simple-todo/lists/{listId}/items e selecione Experimentar. Para listId, insira o ID da lista ToDo que você criou anteriormente, insira o seguinte corpo da solicitação e selecione Executar para criar um item ToDo.
{ "name": "My first ToDo item", "listId": "<ID-of-the-ToDo-list>", "state": "todo" }
Esta ação retorna o seguinte item ToDo:
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": null, "state": "todo", "dueDate": "2023-07-11T13:59:24.9033069+08:00", "completedDate": null }
Selecione a API GET /api/simple-todo/lists e, em seguida, selecione Executar para consultar listas de ToDo. Esta ação retorna as seguintes listas de ToDo:
[ { "id": "<ID-of-the-ToDo-list>", "name": "My List", "description": null } ]
Selecione a API GET /api/simple-todo/lists/{listId}/items e selecione Experimentar. Para listId, insira o ID da lista de ToDo que você criou anteriormente e selecione Executar para consultar os itens de ToDo. Esta ação retorna o seguinte item ToDo:
[ { "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": null, "state": "todo", "dueDate": "2023-07-11T13:59:24.903307+08:00", "completedDate": null } ]
Selecione a API PUT /api/simple-todo/lists/{listId}/items/{itemId} e selecione Experimentar. Para listId, insira o ID da lista ToDo. Para itemId, insira a ID do item ToDo, insira o seguinte corpo da solicitação e selecione Executar para atualizar o item ToDo.
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": "Updated description.", "dueDate": "2023-07-11T13:59:24.903307+08:00", "state": "inprogress" }
Esta ação retorna o seguinte item ToDo atualizado:
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": "Updated description.", "state": "inprogress", "dueDate": "2023-07-11T05:59:24.903307Z", "completedDate": null }
Selecione a API DELETE /api/simple-todo/lists/{listId}/items/{itemId} e selecione Experimentar. Para listId, insira o ID da lista ToDo. Para itemId, insira a ID do item ToDo e selecione Executar para excluir o item ToDo. Você deve ver que o código de resposta do servidor é
204
.
6. Limpar os recursos
Pode eliminar o grupo de recursos do Azure, que inclui todos os recursos no grupo de recursos.
Use as seguintes etapas para excluir todo o grupo de recursos, incluindo o serviço recém-criado:
Localize o grupo de recursos no portal do Azure.
No menu de navegação, selecione Grupos de recursos. Em seguida, selecione o nome do seu grupo de recursos - por exemplo, myresourcegroup.
Na página do grupo de recursos, selecione Eliminar. Digite o nome do seu grupo de recursos na caixa de texto para confirmar a exclusão - por exemplo, myresourcegroup. Em seguida, selecione Excluir.
Use as seguintes etapas para excluir todo o grupo de recursos, incluindo o serviço recém-criado:
Localize o grupo de recursos no portal do Azure.
No menu de navegação, selecione Grupos de recursos. Em seguida, selecione o nome do seu grupo de recursos - por exemplo, myresourcegroup.
Na página do grupo de recursos, selecione Eliminar. Digite o nome do seu grupo de recursos na caixa de texto para confirmar a exclusão - por exemplo, myresourcegroup. Em seguida, selecione Excluir.
7. Próximas etapas
Para obter mais informações, consulte os seguintes artigos:
- Exemplos de aplicativos do Azure Spring.
- Spring no Azure
- Spring Cloud Azure