Compartilhar via


Tutorial: Impor padrões de segredo e certificado usando políticas de gerenciamento de aplicativos

Neste tutorial, você aprenderá a impor padrões de segredo e certificado usando políticas de gerenciamento de aplicativos na ID do Microsoft Entra.

Garantir que os aplicativos em sua organização estejam usando autenticação segura é crucial para proteger dados confidenciais e manter a integridade de seus sistemas. A ID do Microsoft Entra fornece uma maneira de impor restrições de segredo e certificado por meio de políticas de gerenciamento de aplicativos. Esse recurso pode ajudá-lo a gerenciar quais tipos de segredos e chaves podem ser usados e garantir que eles sejam alternados regularmente. As políticas de gerenciamento de aplicativos só podem ser atualizadas usando o Microsoft Graph PowerShell ou a API do Microsoft Graph. Para saber mais sobre esse recurso, consulte Visão geral da API de políticas de gerenciamento de aplicativos do Microsoft Entra.

As políticas podem ser aplicadas a todos os aplicativos em sua organização ou a aplicativos específicos. Neste tutorial, irá aprender:

  • Saiba mais sobre as restrições recomendadas para segredos e certificados.
  • Leia a política de gerenciamento de aplicativos atual do seu locatário.
  • Atualize a política do aplicativo para impor restrições.
  • Confirme se a política foi aplicada.

Importante

Fazer alterações em sua política de gerenciamento de aplicativos pode ter um impacto significativo em seus aplicativos e em sua capacidade de autenticação. Antes de fazer qualquer alteração, é importante entender as implicações dessas alterações e como elas podem afetar seus aplicativos. Você deve testar todas as alterações em um ambiente de não produção antes de aplicá-las ao seu ambiente de produção e fazer uma cópia das configurações de política atuais antes de atualizá-las.

Pré-requisitos

Os ataques a aplicativos geralmente visam segredos, como senhas, chaves e certificados, para obter acesso não autorizado a dados confidenciais. Ao impor restrições, você pode mitigar esses riscos e garantir que seus aplicativos permaneçam seguros. Veja a seguir nossas restrições recomendadas para segredos e certificados:

  • Desabilitar senhas de aplicativos/segredos do cliente: os aplicativos que usam segredos do cliente podem armazená-los em arquivos de configuração, codificá-los em scripts ou arriscar sua exposição de outras maneiras. As complexidades do gerenciamento de segredos tornam os segredos do cliente suscetíveis a vazamentos e atraentes para os invasores.

  • Desabilitar o uso de chave simétrica em aplicativos: as chaves simétricas são semelhantes aos segredos do cliente, pois são compartilhadas entre o aplicativo e o recurso que ele acessa. Isso significa que, se um invasor obtiver acesso à chave simétrica, ele poderá representar o aplicativo e acessar o recurso. As chaves simétricas também são mais difíceis de gerenciar do que as chaves assimétricas, pois exigem que ambas as partes compartilhem a mesma chave.

  • Limite o tempo de vida da chave assimétrica (certificado) a 180 dias: os certificados fornecem uma maneira mais segura de autenticar aplicativos do que os segredos do cliente. No entanto, eles ainda podem ser comprometidos se não forem gerenciados adequadamente. Ao limitar o tempo de vida dos certificados, você pode reduzir o risco de certificados de longa duração serem explorados por invasores. Os certificados devem ser alternados regularmente para garantir que não sejam comprometidos. O tempo de vida máximo recomendado para certificados é de 180 dias. Isso significa que você deve alternar seus certificados pelo menos a cada 180 dias. Definir uma vida útil mais curta para aplicativos altamente confidenciais pode reduzir ainda mais o risco de comprometimento. Também recomendamos que você configure a rotação automática de certificados usando o Azure Key Vault. Para saber mais, consulte Automatizar a rotação de um segredo para recursos que usam um conjunto de credenciais de autenticação

Para saber mais sobre as práticas de segurança recomendadas para locatários do Microsoft Entra, consulte Configurar o Microsoft Entra para aumentar a segurança.

Ler sua política de gerenciamento de aplicativos de locatário

Antes de criar uma nova política de gerenciamento de aplicativos, você pode ler sua política existente para ver se ela atende às suas necessidades. O exemplo a seguir mostra como ler a política de gerenciamento de aplicativos padrão para seu locatário. Você também pode reutilizar essa solicitação de API para confirmar que a política foi aplicada posteriormente neste tutorial.

Exemplo

O exemplo a seguir lê a política de gerenciamento de aplicativos padrão para seu locatário. A resposta mostra as configurações de política atuais.

Conecte-se ao Microsoft Graph usando o Connect-MgGraph cmdlet e a Policy.Read.All permissão. Entre com pelo menos a função de Administrador de Aplicativos na Nuvem . Em seguida, execute os comandos a seguir para ler a política de gerenciamento de aplicativos padrão para seu locatário.

Connect-MgGraph -Scopes 'Policy.Read.All'
# Get the default application management policy
Get-MgPolicyDefaultAppManagementPolicy | format-list

Para obter mais informações sobre esse cmdlet, consulte Get-MgPolicyDefaultAppManagementPolicy.

Saída

O exemplo a seguir mostra a saída da política de gerenciamento de aplicativos de locatário padrão. Sua política pode ser diferente do exemplo. Se nenhuma política for aplicada em sua organização, o id campo será definido como 00000000-0000-0000-0000-000000000000 e o isEnabled campo será definido como false.

ApplicationRestrictions      : Microsoft.Graph.PowerShell.Models.MicrosoftGraphAppManagementApplicationConfiguration
DeletedDateTime              :
Description                  : Default tenant policy that enforces app management restrictions on applications and service principals. To apply policy to targeted resources, create a new policy under appManagementPolicies collection.
DisplayName                  : Default app management tenant policy
Id                           : 00000000-0000-0000-0000-000000000000
IsEnabled                    : false
ServicePrincipalRestrictions : Microsoft.Graph.PowerShell.Models.MicrosoftGraphAppManagementServicePrincipalConfiguration
AdditionalProperties         : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#policies/defaultAppManagementPolicy/$entity]}

Entre no Explorador do Microsoft Graph com pelo menos uma função de Administrador de Aplicativos de Nuvem . Em seguida, execute a solicitação a seguir para ler a política de gerenciamento de aplicativos padrão para seu locatário. Você deve consentir com a permissão Policy.Read.All.

GET https://graph.microsoft.com/v1.0/policies/defaultAppManagementPolicy

Para obter mais informações sobre essa solicitação, consulte Obter tenantAppManagementPolicy.

Resposta

O exemplo a seguir mostra a resposta da política de gerenciamento de aplicativos de locatário padrão. Sua política pode ser diferente do exemplo. Se nenhuma política já estiver aplicada em sua organização, o id campo será definido como 00000000-0000-0000-0000-000000000000 e o isEnabled campo será definido como false.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#policies/defaultAppManagementPolicy/$entity",
    "@odata.id": "https://graph.microsoft.com/v2/927c6607-8060-4f4a-a5f8-34964ac78d70/defaultAppManagementPolicy/00000000-0000-0000-0000-000000000000",
    "id": "00000000-0000-0000-0000-000000000000",
    "displayName": "Default app management tenant policy",
    "description": "Default tenant policy that enforces app management restrictions on applications and service principals. To apply policy to targeted resources, create a new policy under appManagementPolicies collection.",
    "isEnabled": false,
    "applicationRestrictions": {
        "passwordCredentials": [],
        "keyCredentials":[]
    },
    "servicePrincipalRestrictions": {
        "passwordCredentials": [],
        "keyCredentials":[]
    }
}

Importante

Faça uma cópia das configurações de política atuais antes de atualizá-las. Isso permitirá que você reverta para as configurações originais, se necessário. Você pode fazer isso copiando as configurações de política atuais para um arquivo ou fazendo uma captura de tela das configurações. Você não poderá encontrar as configurações originais depois de atualizá-las se não as tiver salvo.

Atualizar a política de gerenciamento de aplicativos

Para implementar restrições de segredo e certificado, você precisa atualizar a política de gerenciamento de aplicativos padrão. Este exemplo fornece nossas configurações recomendadas, mas você pode ajustá-las para atender às suas necessidades ou até mesmo omitir determinados elementos se não quiser aplicá-los. O exemplo a seguir mostra como atualizar a política de gerenciamento de aplicativos padrão com as configurações recomendadas:

  • passwordCredentials: Permite definir políticas para restringir atributos para segredos do cliente e chaves simétricas. Isso pode ser omitido se você não quiser definir uma política para restringir esses tipos de credenciais.

    • O restrictionType parâmetro permite que você defina o tipo de restrição que deseja aplicar. Nesse caso, você está restringindo passwordAddition, customPasswordAddition, e symmetricKeyAddition. Essas configurações limitarão a criação de segredos do cliente, senhas personalizadas e chaves simétricas.

    • O state parâmetro permite ativar ou desativar a restrição. Se definido como enabled, a restrição será aplicada. Se definido como disabled, a restrição não será aplicada.

    • O maxLifetime parâmetro permite definir o tempo de vida máximo do segredo. Pois passwordCredentials você definiu o valor como null. Definir o valor como null significa que o tempo de vida máximo não é restrito. Isso ocorre porque você está desabilitando totalmente a criação de segredos do cliente e chaves simétricas. Se você quiser definir um tempo de vida máximo para segredos do cliente, poderá definir esse valor como uma duração no formato ISO 8601. Você encontrará um exemplo disso na próxima seção. Para obter mais informações sobre formatação de duração, consulte ISO 8601.

    • O restrictForAppsCreatedAfterDateTime parâmetro permite que você defina uma data a partir da qual a política entrará em vigor para novos aplicativos. Todos os aplicativos criados antes dessa data não serão afetados pela política. Nesse caso, você está aplicando restrições para aplicativos criados após 20 de fevereiro de 2025. Certifique-se de atualizar esta data para atender às suas necessidades. Se você quiser definir restrições diferentes para aplicativos criados antes ou depois de uma determinada data, poderá definir várias políticas com valores diferentes restrictForAppsCreatedAfterDateTime .

  • keyCredentials: Permite definir parâmetros para certificados. Nesse caso, você está restringindo o tempo de vida dos certificados de aplicativo a 180 dias.

    • O restrictionType parâmetro permite que você defina o tipo de restrição que deseja aplicar. Nesse caso, você está restringindo asymmetricKeyLifetime. Isso limitará o tempo de vida dos certificados de aplicativo a um valor definido pelo usuário.

    • O state parâmetro permite ativar ou desativar a restrição. Se definido como enabled, a restrição será aplicada. Se definido como disabled, a restrição não será aplicada.

    • O maxLifetime parâmetro permite definir o tempo de vida máximo do certificado. Nesse caso, você está restringindo o tempo de vida dos certificados a 180 dias. Isso é feito usando o formato de duração ISO 8601. O prefixo P indica que o valor é para um período de tempo e 180D indica que o período é de 180 dias. Você pode alterar o número de 180 para outro valor para atender às suas necessidades específicas. Para obter mais informações sobre a formatação de duração, consulte ISO 8601.

    • O restrictForAppsCreatedAfterDateTime parâmetro permite que você defina uma data a partir da qual a política entrará em vigor para novos aplicativos. Todos os aplicativos criados antes dessa data não serão afetados pela política. Nesse caso, você está aplicando restrições para aplicativos criados após 20 de fevereiro de 2025. Certifique-se de atualizar esta data para atender às suas necessidades. Se você quiser definir restrições diferentes para aplicativos criados antes ou depois de uma determinada data, poderá definir várias políticas com valores diferentes restrictForAppsCreatedAfterDateTime .

Exemplo

O exemplo a seguir atualiza a política de gerenciamento de aplicativos padrão com as configurações discutidas na seção anterior.

Connect-MgGraph -Scopes 'Policy.ReadWrite.All'
Import-Module Microsoft.Graph.Identity.SignIns
# Define the parameters for the application management policy
$params = @{
isEnabled = $true
applicationRestrictions = @{
    passwordCredentials = @(
        @{
            restrictionType = "passwordAddition"
            state = "enabled"
            maxLifetime = $null
            restrictForAppsCreatedAfterDateTime = [System.DateTime]::Parse("2025-02-20T10:37:00Z")
        }
        @{
            restrictionType = "customPasswordAddition"
            state = "enabled"
            maxLifetime = $null
            restrictForAppsCreatedAfterDateTime = [System.DateTime]::Parse("2025-05-20T10:37:00Z")
        }
        @{
            restrictionType = "symmetricKeyAddition"
            state = "enabled"
            maxLifetime = $null
            restrictForAppsCreatedAfterDateTime = [System.DateTime]::Parse("2025-02-20T10:37:00Z")
        }
    )
    keyCredentials = @(
        @{
            restrictionType = "asymmetricKeyLifetime"
            maxLifetime = "P180D"
            restrictForAppsCreatedAfterDateTime = [System.DateTime]::Parse("2025-02-20T10:37:00Z")
        }
    )
}
}
# Update the default application management policy
Update-MgPolicyDefaultAppManagementPolicy -BodyParameter $params

Para obter mais informações sobre esse cmdlet, consulte Update-MgPolicyDefaultAppManagementPolicy.

Você deve consentir com a permissão Policy.ReadWrite.All. Em seguida, execute a solicitação a seguir para atualizar a política de gerenciamento de aplicativos padrão para seu locatário.

PATCH https://graph.microsoft.com/v1.0/policies/defaultAppManagementPolicy
Content-Type: application/json

{
    "isEnabled": true,
    "applicationRestrictions": {
        "passwordCredentials": [
            {
                "restrictionType": "passwordAddition",
                "state": "enabled",
                "maxLifetime": null,
                "restrictForAppsCreatedAfterDateTime": "2025-02-20T10:37:00Z"
            },
            {
                "restrictionType": "customPasswordAddition",
                "state": "enabled",
                "maxLifetime": null,
                "restrictForAppsCreatedAfterDateTime": "2025-05-20T10:37:00Z"
            },
            {
                "restrictionType": "symmetricKeyAddition",
                "state": "enabled",
                "maxLifetime": null,
                "restrictForAppsCreatedAfterDateTime": "2025-02-20T10:37:00Z"
            },
        ],
        "keyCredentials": [
            {
                "restrictionType": "asymmetricKeyLifetime",
                "state": "enabled",
                "maxLifetime": "P180D",
                "restrictForAppsCreatedAfterDateTime": "2025-02-20T10:37:00Z"
            }
        ]
    },
}

Para obter mais informações sobre essa solicitação, consulte Atualizar tenantAppManagementPolicy.

Resposta

Depois que a solicitação for enviada, você deverá receber uma resposta indicando que a política foi atualizada com êxito. A resposta deve ser um código de 204 No Content status, indicando que a solicitação foi bem-sucedida e não há conteúdo a ser retornado.

    HTTP/1.1 204 No Content

Confirme se a política foi aplicada

Depois de atualizar sua política de gerenciamento de aplicativos, você pode confirmar se ela foi aplicada lendo a política de gerenciamento de aplicativos padrão novamente, conforme mostrado anteriormente. A resposta deve mostrar a política atualizada com as restrições aplicadas.

Se for a primeira vez, você está aplicando uma política de id gerenciamento de aplicativos da qual o 00000000-0000-0000-0000-000000000000 campo deve ter sido alterado para um novo GUID. Essa alteração indica que a política foi criada.

Você também pode confirmar se a política é aplicada criando um novo aplicativo e verificando se as restrições são impostas. Por exemplo, se você tentar criar um novo aplicativo com um segredo do cliente ou uma chave simétrica, deverá receber um erro indicando que a operação não é permitida, conforme mostrado na captura de tela abaixo.

Captura de tela do centro de administração do Microsoft Entra mostrando um aviso de que os segredos do cliente estão bloqueados pela política de todo o locatário.