Compartilhar via


Usar o tipo SecretText para proteger credenciais e valores textuais confidenciais impedindo-os de serem revelados

Importante

Esse conteúdo está arquivado e não está sendo atualizado. Para obter a documentação mais recente, acesse Novidades ou alterações no Business Central. Para ver os planos de lançamento mais recentes, acesse Planos de lançamento do Dynamics 365, do Power Platform e do Cloud for Industry.

Habilitado para Versão preliminar pública Disponibilidade geral
Administradores, criadores, profissionais de marketing ou analistas, automaticamente 16 de agosto de 2023 2 de out. de 2023

Valor do negócio

Com o aumento da quantidade de integrações com sistemas externos, não é algo incomum no código AL trabalhar com segredos, como credenciais e outros valores textuais confidenciais. Considerando a necessidade de proteger estes de serem revelados por meio da depuração, estes últimos têm sido frequentemente bloqueados por meio de políticas de exposição de recursos, ao custo de uma fácil resolução de problemas. Para dar suporte à habilitação da depuração e, ao mesmo tempo, proteger credenciais e outros valores textuais confidenciais de serem revelados, estamos introduzindo um novo tipo SecretText para variáveis. Além disso, alguns dos cenários comuns no aplicativo do sistema terão suporte para passar parâmetros SecretText para credenciais — por exemplo, os tipos HttpClient e Armazenamento Isolado.

Detalhes do recurso

Um novo tipo, SecretText, foi adicionado para proteger credenciais e outros valores textuais confidenciais de serem revelados por meio de depuração. A sintaxe da declaração será semelhante ao tipo de dados Text, com a única diferença de que não serão permitidas as restrições de comprimento.

SecretText poderá ser usado como:

  • Valor da variável
  • Valor de retorno
  • Valor do parâmetro

Seu uso será limitado a transportar, por exemplo, credenciais do ponto de criação até o método de destino. O método de destino deve aceitar um valor SecretText.

Qualquer tipo de texto poderá ser atribuído ao tipo SecretText, desde que possa ser convertido no tipo Text. O tipo SecretText encapsula um tipo Text. Se um Código ou outro tipo de texto for armazenado, ele será convertido no tipo Text. Um tipo de cadeia de caracteres Dotnet também poderá ser convertido em SecretText. No entanto, uma constante ou outros tipos não poderão ser atribuídos a um tipo SecretText.

Para casos excepcionais em que deva ser usado como texto, um método Unwrap integrado será permitido. Isso só poderá ser usado quando o escopo do projeto for local. Considerando apenas local, ele será permitido fora dos limites de um procedimento marcado como NonDebuggable, mas resultará em um aviso e, portanto, também poderá ser bloqueado por meio do uso de um conjunto de regras para projetos específicos.

Inicialmente, os eventos não serão compatíveis com parâmetros SecretText. No entanto, os gatilhos, sim. O último cenário é dar suporte ao caso de suplementos de controle, como o suplemento de controle OAuth, para retornar as credenciais em um contêiner seguro.

No aplicativo do sistema, HttpClient terá suporte para passar parâmetros SecretText; por exemplo, para credenciais.

No exemplo a seguir, o valor de retorno e o parâmetro não serão depuráveis:

Exemplo de uso de SecretText no valor de retorno e parâmetro do procedimento para impedir que seja depurável

Consulte também

Proteger valores confidenciais com o tipo de dados SecretText (documentos)