Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ao integrar uma API REST em um fluxo de usuário do Azure AD B2C, você deve proteger o ponto de extremidade da API REST com autenticação. A autenticação API REST garante que somente os serviços que têm as credenciais adequadas, como o Azure AD B2C, possam fazer chamadas para o ponto de extremidade da API REST. Este artigo vai explorar como proteger a API REST.
Conclua as etapas descritas na guia Adicionar um conector de API a um fluxo de usuário de entrada.
Você pode proteger o ponto de extremidade de API usando a autenticação básica HTTP ou a autenticação de certificado de cliente HTTPS. Em qualquer caso, você fornece as credenciais que o Azure AD B2C usa ao chamar o ponto de extremidade de API. O ponto de extremidade de API verifica as credenciais e executa decisões de autorização.
A autenticação básica HTTP é definida em RFC 2617. A autenticação básica funciona conforme segue:
O Azure AD B2C envia uma solicitação HTTP com as credenciais do cliente (
username
epassword
) no cabeçalhoAuthorization
.As credenciais são formatadas como a cadeia de caracteres
username:password
codificada em base64.Em seguida, sua API é responsável por verificar esses valores para tomar outras decisões de autorização.
Para configurar um conector de API com autenticação básica HTTP, siga estas etapas:
- Entre no portal do Azure.
- Em Serviços do Azure, selecione Azure AD B2C ou pesquise e selecione Azure AD B2C.
- Selecione Conectores de API e escolha o Conector de API que deseja configurar.
- Para o Tipo de autenticação, selecione Básico.
- Forneça o nome de usuário e a senha do seu ponto de extremidade da API REST.
- Selecione Salvar.
Para configurar um perfil técnico da API REST com autenticação básica HTTP, crie as seguintes chaves de criptografia para armazenar o nome de usuário e a senha:
- Entre no portal do Azure.
- Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para o seu locatário do Azure Active Directory B2C no menu Diretórios + assinaturas.
- Escolha Todos os serviços no canto superior esquerdo do Portal do Azure, pesquise Azure AD B2C e selecione-o.
- Na página de Visão Geral, selecione Estrutura de Experiência de Identidade.
- Selecione Chaves de Política e, em seguida, escolha Adicionar.
- Em Opções selecione Manual.
- Para Nome, digite RestApiUsername. O prefixo B2C_1A_ pode ser adicionado automaticamente.
- Na caixa Segredo, digite o nome de usuário da API REST.
- Para o Uso da chave, selecione Criptografia.
- Selecione Criar.
- Selecione Chaves de Política novamente.
- Selecione Adicionar.
- Em Opções selecione Manual.
- Para Nome, digite RestApiPassword. O prefixo B2C_1A_ pode ser adicionado automaticamente.
- Na caixa Segredo, digite a senha da API REST.
- Para o Uso da chave, selecione Criptografia.
- Selecione Criar.
Depois de criar as chaves necessárias, configure os metadados de perfil técnico da API REST para fazer referência às credenciais.
- No seu diretório de trabalho, abra o arquivo de política de extensão (TrustFrameworkExtensions.xml).
- Pesquise o perfil técnico da API REST. Por exemplo,
REST-ValidateProfile
ouREST-GetProfile
. - Localize o elemento
<Metadata>
. - Altere o AuthenticationType para
Basic
. - Altere o AllowInsecureAuthInProduction para
false
. - Adicione o seguinte snippet de código XML logo após fechar o elemento
</Metadata>
:<CryptographicKeys> <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_RestApiUsername" /> <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_RestApiPassword" /> </CryptographicKeys>
O snippet de código XML a seguir é um exemplo de um perfil técnico RESTful configurado com a autenticação básica HTTP:
<ClaimsProvider>
<DisplayName>REST APIs</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="REST-GetProfile">
<DisplayName>Get user extended profile Azure Function web hook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
<Item Key="SendClaimsIn">Body</Item>
<Item Key="AuthenticationType">Basic</Item>
<Item Key="AllowInsecureAuthInProduction">false</Item>
</Metadata>
<CryptographicKeys>
<Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_RestApiUsername" />
<Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_RestApiPassword" />
</CryptographicKeys>
...
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
A autenticação de certificado do cliente é uma autenticação mútua baseada em certificado, em que o cliente, Azure AD B2C, fornece o certificado do cliente para o servidor para comprovar sua identidade. Isso acontece como parte do handshake SSL. Sua API é responsável por validar os certificados pertencentes a um cliente válido, como Azure AD B2C, e executar decisões de autorização. O certificado do cliente é um certificado digital X.509.
Importante
Nos ambientes de produção, o certificado precisa ser assinado por uma autoridade de certificação.
Para criar um certificado, você pode usar o Azure Key Vault, que tem opções para certificados autoassinados e integrações com provedores de emissor do certificado para certificados assinados. As configurações recomendadas incluem:
- Entidade:
CN=<yourapiname>.<tenantname>.onmicrosoft.com
- Tipo de conteúdo:
PKCS #12
- Tipo de ação de tempo de vida:
Email all contacts at a given percentage lifetime
ouEmail all contacts a given number of days before expiry
- Tipo de chave:
RSA
- Tamanho da chave:
2048
- Chave Privada Exportável:
Yes
(para exportar o arquivo.pfx
)
Depois, você pode exportar o certificado.
Se você ainda não tiver um certificado, será possível usar um certificado autoassinado. Um certificado autoassinado é um certificado de segurança que não é assinado por uma autoridade de certificação (AC) e não fornece as garantias de segurança de um certificado assinado por uma AC.
No Windows, use o cmdlet New-SelfSignedCertificate no PowerShell para gerar um certificado.
Execute o seguinte comando do PowerShell para gerar um certificado autoassinado. Modifique o argumento
-Subject
conforme apropriado para o aplicativo e o nome do locatário do Azure AD B2C, comocontosowebapp.contoso.onmicrosoft.com
. Você também pode ajustar a data-NotAfter
para especificar uma expiração diferente para o certificado.New-SelfSignedCertificate ` -KeyExportPolicy Exportable ` -Subject "CN=yourappname.yourtenant.onmicrosoft.com" ` -KeyAlgorithm RSA ` -KeyLength 2048 ` -KeyUsage DigitalSignature ` -NotAfter (Get-Date).AddMonths(12) ` -CertStoreLocation "Cert:\CurrentUser\My"
No Windows, pesquise e selecione Gerenciar certificados de usuário
Em Certificados – Usuário Atual, selecione Pessoal>Certificados>yourappname.yourtenant.onmicrosoft.com.
Selecione o certificado e, em seguida, selecione Ação>Todas as Tarefas>Exportar.
Selecione Próximo>Sim, exportar a chave privada>Próximo.
Aceite os padrões para Formato de arquivo para exportação e selecione Próximo.
Habilite a opção Senha, insira uma senha para o certificado e selecione Próximo.
Para especificar um local para salvar seu certificado, selecione Procurar e navegue até um diretório de sua preferência.
Na janela Salvar como, insira um Nome de arquivo e, em seguida, selecione Salvar.
Selecione Avançar>Concluir.
Para o Azure AD B2C aceitar a senha do arquivo .pfx, a senha deve estar criptografada com a opção TripleDES-SHA1 no utilitário de exportação do repositório de certificados do Windows, em oposição ao AES256-SHA256.
Para configurar um conector de API com autenticação do certificado do cliente, siga estas etapas:
- Entre no portal do Azure.
- Em Serviços do Azure, selecione Azure AD B2C.
- Selecione conectores de API e depois selecione o conector de API que você deseja configurar.
- Para o Tipo de autenticação, selecione Certificado.
- Na caixa Carregar certificado, selecione o arquivo de certificado .pfx com uma chave privada.
- Na caixa Inserir Senha, digite a senha do certificado.
- Selecione Salvar.
A API deve implementar a autorização com base em certificados de cliente enviados para proteger os pontos de extremidade de API. Para o Serviço de Aplicativo do Azure e o Azure Functions, confira Configurar a autenticação mútua TLS para saber como habilitar e validar o certificado do código de API. Como alternativa, você pode usar o Gerenciamento de API do Azure como uma camada na frente de qualquer serviço de API para verificar as propriedades de certificado do cliente em relação aos valores desejados.
É recomendável definir alertas de lembrete para quando o certificado expirar. Você precisará gerar um novo certificado e repetir as etapas acima quando os certificados usados estiverem prestes a vencer. Para "distribuir" o uso de um novo certificado, o serviço de API pode continuar aceitando certificados novos e antigos por um período temporário enquanto o novo certificado é implantado.
Para carregar um novo certificado em um conector de API existente, selecione o conector de API em Conectores de API e clique em Carregar novo certificado. O certificado carregado mais recentemente, que não expirou e já passou da data de início, será automaticamente usado pelo Azure AD B2C.
- Entre no portal do Azure.
- Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para o seu locatário do Azure Active Directory B2C no menu Diretórios + assinaturas.
- Escolha Todos os serviços no canto superior esquerdo do Portal do Azure, pesquise Azure AD B2C e selecione-o.
- Na página de Visão Geral, selecione Estrutura de Experiência de Identidade.
- Selecione Chaves de Política e, em seguida, escolha Adicionar.
- Na caixa Opções, selecione Carregar.
- Na caixa Nome, digite RestApiClientCertificate. O prefixo B2C_1A_ é adicionado automaticamente.
- Na caixa Carregar arquivo, selecione o arquivo de certificado .pfx com uma chave privada.
- Na caixa Senha, digite a senha do certificado.
- Selecione Criar.
Depois de criar as chaves necessárias, configure os metadados de perfil técnico da API REST para fazer referência ao certificado do cliente.
- No seu diretório de trabalho, abra o arquivo de política de extensão (TrustFrameworkExtensions.xml).
- Pesquise o perfil técnico da API REST. Por exemplo,
REST-ValidateProfile
ouREST-GetProfile
. - Localize o elemento
<Metadata>
. - Altere o AuthenticationType para
ClientCertificate
. - Altere o AllowInsecureAuthInProduction para
false
. - Adicione o seguinte snippet de código XML logo após fechar o elemento
</Metadata>
:<CryptographicKeys> <Key Id="ClientCertificate" StorageReferenceId="B2C_1A_RestApiClientCertificate" /> </CryptographicKeys>
O snippet de código XML a seguir é um exemplo de um perfil técnico RESTful configurado com um certificado do cliente HTTP:
<ClaimsProvider>
<DisplayName>REST APIs</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="REST-GetProfile">
<DisplayName>Get user extended profile Azure Function web hook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
<Item Key="SendClaimsIn">Body</Item>
<Item Key="AuthenticationType">ClientCertificate</Item>
<Item Key="AllowInsecureAuthInProduction">false</Item>
</Metadata>
<CryptographicKeys>
<Key Id="ClientCertificate" StorageReferenceId="B2C_1A_RestApiClientCertificate" />
</CryptographicKeys>
...
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
A autenticação de token de portador é definida em Estrutura de autorização OAuth 2.0: Uso do Token de Portador (RFC 6750). Na autenticação de token de portador, o Azure AD B2C envia uma solicitação HTTP com um token no cabeçalho de autorização.
Authorization: Bearer <token>
Um token de portador é uma cadeia de caracteres opaca. Pode ser um token de acesso JWT ou qualquer cadeia de caracteres que a API REST espera que o Azure AD B2C envie no cabeçalho de autorização. O Azure AD B2C dá suporte aos seguintes tipos:
- Token de portador. Para enviar o token de portador no perfil técnico RESTful, a política precisa primeiro adquirir o token de portador e depois usá-lo no perfil técnico RESTful.
- Token de portador estático. Use esta abordagem quando a API REST emitir um token de acesso de longo prazo. Para usar um token de portador estático, crie uma chave de política e faça uma referência do perfil técnico RESTful para a chave de política.
As etapas a seguir demonstram como usar as credenciais do cliente para obter um token de portador e passá-lo para o cabeçalho de autorização das chamadas à API REST.
Uma declaração fornece armazenamento temporário de dados durante uma execução de política do Azure AD B2C. O esquema de declarações é o lugar em que você declara suas declarações. O token de acesso deve ser armazenado em uma declaração para ser usado posteriormente.
- Abra o arquivo de extensões da sua política. Por exemplo,
SocialAndLocalAccounts/
TrustFrameworkExtensions.xml
. - Pesquise o elemento BuildingBlocks. Se o elemento não existir, adicione-o.
- Localize o elemento ClaimsSchema. Se o elemento não existir, adicione-o.
- Adicione as seguintes declarações ao elemento ClaimsSchema.
<ClaimType Id="bearerToken">
<DisplayName>Bearer token</DisplayName>
<DataType>string</DataType>
</ClaimType>
<ClaimType Id="grant_type">
<DisplayName>Grant type</DisplayName>
<DataType>string</DataType>
</ClaimType>
<ClaimType Id="scope">
<DisplayName>scope</DisplayName>
<DataType>string</DataType>
</ClaimType>
Você pode obter um token de acesso de várias maneiras: obtendo de um provedor de identidade federado, chamando uma API REST que retorna um token de acesso, usando um fluxo de ROPC ou usando o fluxo de credenciais do cliente. O fluxo de credenciais do cliente geralmente é usado para interações de servidor para servidor e elas devem ser executadas em segundo plano, sem interação imediata com um usuário.
O exemplo a seguir usa um perfil técnico da API REST para fazer uma solicitação para o ponto de extremidade do token do Microsoft Entra, usando as credenciais do cliente passadas como autenticação básica HTTP. Para saber mais, confira a plataforma de identidade da Microsoft e o fluxo de credenciais do cliente OAuth 2.0.
Antes que o perfil técnico possa interagir com o Microsoft Entra ID para obter um token de acesso, você precisa registrar um aplicativo. O Azure AD B2C conta com a plataforma do Microsoft Entra. Você pode criar o aplicativo em seu locatário do Azure AD B2C ou em qualquer locatário do Microsoft Entra que você gerencia. Para registrar um aplicativo:
- Entre no portal do Azure.
- Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para o seu locatário do Azure Active Directory B2C no menu Diretórios + assinaturas.
- No menu à esquerda, selecione Microsoft Entra ID. Ou selecione Todos os serviços e pesquise e selecione Microsoft Entra ID.
- Escolha Registros de aplicativo e Novo registro.
- Insira um Nome para o aplicativo. Por exemplo, Client_Credentials_Auth_app.
- Em Tipos de contas com suporte, selecione Contas somente neste diretório organizacional.
- Selecione Registrar.
- Registre a ID do aplicativo (cliente) .
Para um fluxo de credenciais do cliente, é necessário criar um segredo de aplicativo. O segredo do cliente também é conhecido como senha do aplicativo. Seu aplicativo usa o segredo para adquirir um token de acesso.
- Na página Microsoft Entra ID – Registros de aplicativo, selecione o aplicativo criado, por exemplo Client_Credentials_Auth_app.
- No menu à esquerda, em Gerenciar, selecione Certificados & Segredos.
- Selecione Novo segredo do cliente.
- Insira uma descrição para o segredo do cliente na caixa Descrição. Por exemplo, clientsecret1.
- Em Expirar, selecione um período durante o qual o segredo será válido e clique em Adicionar.
- Registre o Valor do segredo para uso no código do aplicativo cliente. Esse valor secreto nunca será exibido novamente depois que você sair dessa página. Use este valor como o segredo do aplicativo no código do aplicativo.
É preciso armazenar o valor do segredo e a ID do cliente que você registrou anteriormente no seu locatário do Azure AD B2C.
- Entre no portal do Azure.
- Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para o seu locatário do Azure Active Directory B2C no menu Diretórios + assinaturas.
- Escolha Todos os serviços no canto superior esquerdo do Portal do Azure, pesquise Azure AD B2C e selecione-o.
- Na página de Visão Geral, selecione Estrutura de Experiência de Identidade.
- Selecione Chaves de Política e, em seguida, escolha Adicionar.
- Para Opções, escolha
Manual
. - Insira um Nome para a chave de política,
SecureRESTClientId
. O prefixoB2C_1A_
será adicionado automaticamente ao nome da chave. - Em Segredo, insira a ID do cliente que você registrou anteriormente.
- Para Uso de chave, selecione
Signature
. - Selecione Criar.
- Crie outra chave de política com as seguintes configurações:
- Nome:
SecureRESTClientSecret
. - Segredo: insira o segredo do cliente que você registrou anteriormente
- Nome:
Para o ServiceUrl, substitua your-tenant-name pelo nome do locatário do Microsoft Entra. Confira a referência de perfil técnico RESTful para todas as opções disponíveis.
<TechnicalProfile Id="REST-AcquireAccessToken">
<DisplayName></DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ServiceUrl">https://login.microsoftonline.com/your-tenant-name.onmicrosoft.com/oauth2/v2.0/token</Item>
<Item Key="AuthenticationType">Basic</Item>
<Item Key="SendClaimsIn">Form</Item>
</Metadata>
<CryptographicKeys>
<Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_SecureRESTClientId" />
<Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_SecureRESTClientSecret" />
</CryptographicKeys>
<InputClaims>
<InputClaim ClaimTypeReferenceId="grant_type" DefaultValue="client_credentials" AlwaysUseDefaultValue="true" />
<InputClaim ClaimTypeReferenceId="scope" DefaultValue="https://graph.microsoft.com/.default" AlwaysUseDefaultValue="true" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="bearerToken" PartnerClaimType="access_token" />
</OutputClaims>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
Observação
Se você usar as declarações grant_type
ou scope
em outros perfis técnicos, recomendamos que elas também especifiquem DefaultValue
e usem AlwaysUseDefaultValue="true"
para evitar possíveis conflitos na ligação com o valor incorreto.
Para dar suporte à autenticação do token de portador na política personalizada, modifique o perfil técnico da API REST com o seguinte:
No diretório de trabalho, abra o arquivo de política de extensão TrustFrameworkExtensions.xml.
Pesquise o nó
<TechnicalProfile>
que incluiId="REST-API-SignUp"
.Localize o elemento
<Metadata>
.Altere o AuthenticationType para Portador da seguinte maneira:
<Item Key="AuthenticationType">Bearer</Item>
Altere ou adicione o UseClaimAsBearerToken para bearerToken, conforme segue. bearerToken é o nome da declaração em que o token de portador será recuperado (a declaração de saída de
REST-AcquireAccessToken
).<Item Key="UseClaimAsBearerToken">bearerToken</Item>
Adicione a declaração da etapa anterior como uma declaração de entrada:
<InputClaim ClaimTypeReferenceId="bearerToken"/>
Depois de atualizar sua política, seu perfil técnico deverá ser semelhante ao seguinte código XML:
<ClaimsProvider>
<DisplayName>REST APIs</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="REST-GetProfile">
<DisplayName>Get user extended profile Azure Function web hook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
<Item Key="SendClaimsIn">Body</Item>
<Item Key="AuthenticationType">Bearer</Item>
<Item Key="UseClaimAsBearerToken">bearerToken</Item>
<Item Key="AllowInsecureAuthInProduction">false</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="bearerToken"/>
</InputClaims>
...
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Para chamar o perfil técnico REST-GetProfile
, você precisa primeiro adquirir um token de acesso do Microsoft Entra usando o perfil técnico REST-AcquireAccessToken
. O exemplo a seguir mostra como chamar o perfil técnico REST-GetProfile
de um perfil técnico de validação:
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="REST-AcquireAccessToken" />
<ValidationTechnicalProfile ReferenceId="REST-GetProfile" />
</ValidationTechnicalProfiles>
O exemplo a seguir mostra como chamar o perfil técnico REST-GetProfile
de um percurso do usuário ou de um sub percurso:
<OrchestrationSteps>
<OrchestrationStep Order="2" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="REST-AcquireAccessTokens" TechnicalProfileReferenceId="REST-AcquireAccessToken" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="3" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="REST-GetProfile" TechnicalProfileReferenceId="REST-GetProfile" />
</ClaimsExchanges>
</OrchestrationStep>
</OrchestrationSteps>
Para configurar um perfil técnico da API REST com um token de portador OAuth2, obtenha um token de acesso do proprietário da API REST. Em seguida, crie a seguinte chave de criptografia para armazenar o token de portador.
- Entre no portal do Azure.
- Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para o seu locatário do Azure Active Directory B2C no menu Diretórios + assinaturas.
- Escolha Todos os serviços no canto superior esquerdo do Portal do Azure, pesquise Azure AD B2C e selecione-o.
- Na página de Visão Geral, selecione Estrutura de Experiência de Identidade.
- Selecione Chaves de Política e, em seguida, escolha Adicionar.
- Para Opções, escolha
Manual
. - Insira um Nome para a chave de política. Por exemplo,
RestApiBearerToken
. O prefixoB2C_1A_
será adicionado automaticamente ao nome da chave. - Em Segredo, insira o segredo do cliente que você registrou anteriormente.
- Para Uso de chave, selecione
Encryption
. - Selecione Criar.
Depois de criar as chaves necessárias, configure os metadados de perfil técnico da API REST para fazer referência ao token de portador.
- No seu diretório de trabalho, abra o arquivo de política de extensão (TrustFrameworkExtensions.xml).
- Pesquise o perfil técnico da API REST. Por exemplo,
REST-ValidateProfile
ouREST-GetProfile
. - Localize o elemento
<Metadata>
. - Altere o AuthenticationType para
Bearer
. - Altere o AllowInsecureAuthInProduction para
false
. - Adicione o seguinte snippet de código XML logo após fechar o elemento
</Metadata>
:<CryptographicKeys> <Key Id="BearerAuthenticationToken" StorageReferenceId="B2C_1A_RestApiBearerToken" /> </CryptographicKeys>
O snippet de código XML a seguir é um exemplo de um perfil técnico RESTful configurado com a autenticação de token de portador:
<ClaimsProvider>
<DisplayName>REST APIs</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="REST-GetProfile">
<DisplayName>Get user extended profile Azure Function web hook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
<Item Key="SendClaimsIn">Body</Item>
<Item Key="AuthenticationType">Bearer</Item>
<Item Key="AllowInsecureAuthInProduction">false</Item>
</Metadata>
<CryptographicKeys>
<Key Id="BearerAuthenticationToken" StorageReferenceId="B2C_1A_RestApiBearerToken" />
</CryptographicKeys>
...
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Adicione a referência de perfil técnico de validação ao perfil técnico de inscrição, que chama REST-AcquireAccessToken
. Esse comportamento significa que o Azure AD B2C se move para criar a conta no diretório somente após a validação bem-sucedida.
Por exemplo:
```XML
<ValidationTechnicalProfiles>
....
<ValidationTechnicalProfile ReferenceId="REST-AcquireAccessToken" />
....
</ValidationTechnicalProfiles>
Alguns serviços usam um mecanismo de "chave de API" para ocultar o acesso aos pontos de extremidade HTTP durante o desenvolvimento, exigindo que o chamador inclua uma chave exclusiva como um cabeçalho HTTP ou um parâmetro de consulta HTTP. Para o Azure Functions, faça isso incluindo o code
como um parâmetro de consulta na URL do Ponto de Extremidade do conector de API. Por exemplo, https://contoso.azurewebsites.net/api/endpoint
?code=0123456789
.
Esse não é um mecanismo que deve ser usado sozinho na produção. Portanto, a configuração para a autenticação básica ou de certificado é sempre necessária. Se você não quiser implementar nenhum método de autenticação (não recomendado) para fins de desenvolvimento, escolha a autenticação "básica" na configuração do conector de API e use valores temporários para username
e password
que a API possa ignorar enquanto você implementa a autorização adequada.
A chave de API é um identificador exclusivo usado para autenticar um usuário para acessar um ponto de extremidade de API REST. A chave é enviada em um cabeçalho HTTP personalizado. Por exemplo, o gatilho HTTP Azure Functions usa o cabeçalho HTTP x-functions-key
para identificar o solicitante.
Para configurar um perfil técnico da API REST com autenticação de chave de API, crie as seguintes chaves de criptografia para armazenar a chave de API:
- Entre no portal do Azure.
- Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para o seu locatário do Azure Active Directory B2C no menu Diretórios + assinaturas.
- Escolha Todos os serviços no canto superior esquerdo do Portal do Azure, pesquise Azure AD B2C e selecione-o.
- Na página de Visão Geral, selecione Estrutura de Experiência de Identidade.
- Selecione Chaves de Política e, em seguida, escolha Adicionar.
- Em Opções selecione Manual.
- Para Nome, digite RestApiKey. O prefixo B2C_1A_ pode ser adicionado automaticamente.
- Na caixa Segredo, digite a senha da chave de API REST.
- Para o Uso da chave, selecione Criptografia.
- Selecione Criar.
Depois de criar as chaves necessárias, configure os metadados de perfil técnico da API REST para fazer referência às credenciais.
- No seu diretório de trabalho, abra o arquivo de política de extensão (TrustFrameworkExtensions.xml).
- Pesquise o perfil técnico da API REST. Por exemplo,
REST-ValidateProfile
ouREST-GetProfile
. - Localize o elemento
<Metadata>
. - Altere o AuthenticationType para
ApiKeyHeader
. - Altere o AllowInsecureAuthInProduction para
false
. - Adicione o seguinte snippet de código XML logo após fechar o elemento
</Metadata>
:<CryptographicKeys> <Key Id="x-functions-key" StorageReferenceId="B2C_1A_RestApiKey" /> </CryptographicKeys>
A Id da chave criptográfica define o cabeçalho HTTP. Neste exemplo, a chave de API é enviada como x-functions-key.
O snippet de código XML a seguir é um exemplo de um perfil técnico RESTful configurado para chamar uma função do Azure com autenticação de chave de API:
<ClaimsProvider>
<DisplayName>REST APIs</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="REST-GetProfile">
<DisplayName>Get user extended profile Azure Function web hook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
<Item Key="SendClaimsIn">Body</Item>
<Item Key="AuthenticationType">ApiKeyHeader</Item>
<Item Key="AllowInsecureAuthInProduction">false</Item>
</Metadata>
<CryptographicKeys>
<Key Id="x-functions-key" StorageReferenceId="B2C_1A_RestApiKey" />
</CryptographicKeys>
...
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
- Comece agora com os nossos exemplos.
- Saiba mais sobre o elemento perfil técnico Restful na referência de política personalizada.