Etapa 6: criar a política de segurança do Azure para o serviço de proxy no portal¶
As etapas anteriores permitem que suas APIs (e Azure Function) importadas sejam chamadas pelo Snowflake, assim como outros clientes autenticados, como aplicativos que estão em seu locatário do Azure AD ou que tenham uma entidade de serviço em seu locatário do Azure AD.
Se você quiser permitir que apenas o Snowflake chame o Azure Function, você deve implementar a validação de token. Com a validação de token, quando o Snowflake tenta acessar o Serviço de gerenciamento de API, o Snowflake apresenta um token de acesso JWT (Token Web JSON) obtido do Azure AD. O Serviço de gerenciamento de API pode validar o JWT ou passá-lo sem validação.
Este tópico fornece instruções para a criação de uma política de segurança para o Serviço de gerenciamento de API, acrescentando uma política Validar JWT que define as regras para validação do token.
Importante
O Snowflake recomenda enfaticamente a criação de uma política de segurança para o Serviço de gerenciamento de API. Após completar essa etapa, somente o Snowflake pode chamar seu Azure Function pelo Serviço de gerenciamento de API.
Se você preferir usar validação baseada em funções na sua política Validar JWT, consulte a documentação de Entidades de serviço Microsoft para atribuir uma função a uma entidade de serviço: New-AzureADServiceAppRoleAssignment.
Neste tópico:
Etapa anterior¶
Criar uma política Validar JWT que permite que o Snowflake chame o Azure Function¶
Esta seção mostra como especificar uma política para a validação de um Token Web JSON (JWT) que autoriza o Snowflake a chamar seu Azure Function. A política Validar JWT (“validate-JWT policy”) valida as duas seguintes declarações no JWT:
A ID do aplicativo da entidade de serviço Snowflake.
A ID do Aplicativo do aplicativo de destino (“ID de audiência” ou apenas “aud”) do Azure Function.
Para obter mais informações sobre declarações em Tokens Web JSON (JWTs) emitidos pelo Azure Active Directory, consulte a documentação da Microsoft: tokens de acesso.
As seguintes etapas configuram a API importada para usar um Token Web JSON:
Entre no Portal do Azure se ainda não tiver feito isso.
Acesse a tela API Management service.
Selecione seu Serviço de gerenciamento de API.
Encontre a seção APIs na coluna da esquerda, depois clique na opção APIs abaixo dela.
Na coluna que contém All APIs, clique no nome da API para a qual você deseja adicionar uma política de segurança.
Procure In-bound Processing:
Clique em + Add policy.
Clique em validate-jwt.
Preencha o Header name com o valor
Authorization
.Adicione validação para o JWT (Token Web JSON) fornecido pelo Snowflake para acessar o Azure Function:
Procure Required claims e clique em + Add claim.
Preencha o campo Name com
aud
(abreviação para “audiência”).Dentro da declaração exigida, procure Values e clique em +Add value.
Adicione o UUID que você copiou ao campo azure_ad_application_id no comando CREATE API INTEGRATION. Isso é registrado no campo
Azure Function App AD Application ID
da sua planilha de rastreamento.
Adicione uma “declaração” separada para o Snowflake:
Clique novamente em + Add claim:
Preencha o campo Name com o literal de cadeia de caracteres
appid
.Dentro da declaração, clique em + Add value e adicione a ID do aplicativo Snowflake no campo Values.
Se você ainda não tem a ID do aplicativo Snowflake, você pode obtê-la executando os seguintes passos (a ID do aplicativo Snowflake está no campo Application ID):
Na planilha, encontre o AZURE_MULTI_TENANT_APP_NAME que você preencheu anteriormente.
Na caixa de busca do Portal do Azure, procure Enterprise Applications.
Isso redireciona você para a tela Enterprise applications | All applications.
Nessa tela, procure o AZURE_MULTI_TENANT_APP_NAME.
A caixa de busca de aplicativos empresariais não tem uma identificação. Procure um campo amplo imediatamente acima da lista de aplicativos empresariais. A caixa pode apresentar algo semelhante a First 50 shown, to search all of your applications, enter a display name or the application ID.
Se você não encontrar uma correspondência exata para o AZURE_MULTI_TENANT_APP_NAME, procure novamente usando apenas os primeiros caracteres desse nome (se o nome contém um sublinhado, não inclua o sublinhado ou outros caracteres após o sublinhado).
Encontre o valor Application ID para o AZURE_MULTI_TENANT_APP_NAME.
Cole o seguinte em Open ID URLs:
https://login.microsoftonline.com/<tenant_id>/.well-known/openid-configuration
Substitua o
<tenant_id>
por sua ID de locatário do Azure AD (conforme descrito na seção Pré-requisitos para planejamento de uma função externa).Clique em Save.
Testar sua função externa¶
Para garantir que sua função externa funcione corretamente com a nova política de segurança, chame novamente sua função externa.
Para obter mais detalhes, consulte Chamada de uma função externa para o Azure.
Restringir endereços IP que aceitam chamadas do Azure Functions (opcional)¶
Além de especificar uma política Validar JWT (ou usar a validação baseada em funções), você pode implementar segurança adicional restringindo os endereços IP. Isso assegura que somente o endereço IP do serviço de gerenciamento de API tenha permissão para acessar o aplicativo Azure Functions contendo seu Azure Function.
Para obter mais informações sobre a restrição de endereços IP, consulte a documentação da Microsoft: restrições de endereços IP de entrada.
Próxima etapa¶
Nenhum. Você criou com sucesso uma função externa para o Azure.