Partilhar via


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

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

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. O Microsoft Entra ID fornece uma maneira de impor restrições secretas e de 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, você aprende:

  • Saiba mais sobre as restrições recomendadas para segredos e certificados.
  • Leia a política atual de gerenciamento de aplicativos para 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 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 quaisquer alterações em um ambiente que não seja de produção antes de aplicá-las ao seu ambiente de produção e fazer uma cópia das configurações de diretiva atuais antes de atualizá-las.

Pré-requisitos

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

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

  • Desativar o uso de chaves simétricas 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á se passar pelo aplicativo e acessar o recurso. As chaves simétricas também são mais difíceis de gerir do que as chaves assimétricas, uma vez que exigem que ambas as partes partilhem a mesma chave.

  • Limitar 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 corretamente. Ao limitar a vida útil 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 Cofre de Chaves do Azure. 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.

Leia a política de gestão de candidaturas de arrendamento

Antes de criar uma nova política de gerenciamento de aplicativos, você pode ler a 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.

Ligue ao Microsoft Graph usando o cmdlet Connect-MgGraph e a permissão Policy.Read.All. Inicie sessão com, pelo menos, a função de Administrador de Aplicações na Nuvem . Em seguida, execute os seguintes comandos 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.

Resultado

O exemplo a seguir mostra a saída da política de gerenciamento de aplicativo de locatário padrão. A 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 Microsoft Graph Explorer com pelo menos uma função de Administrador de Aplicativos na Nuvem . Em seguida, execute a seguinte solicitação para ler a política de gerenciamento de aplicativos padrão para seu locatário. Certifique-se de concordar com a permissão Policy.Read.All.

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

Para saber mais sobre essa solicitação, veja Get tenantAppManagementPolicy.

Resposta

O exemplo a seguir mostra a resposta da política de gerenciamento de aplicativo de locatário padrão. A 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 conseguirá 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 secretas e de 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 certos elementos se não quiser aplicá-las. 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 de 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 definir o tipo de restrição que deseja aplicar. Nesse caso, você está restringindo passwordAddition, customPasswordAdditione symmetricKeyAddition. Essas configurações limitarão a criação de segredos de 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 que você defina o tempo de vida máximo do segredo. Para passwordCredentials definiu o valor para null. Definir o valor como null significa que o tempo de vida máximo não é restrito. Isso ocorre porque você está desativando totalmente a criação de segredos de cliente e chaves simétricas. Se quiser definir um tempo de vida máximo para segredos de cliente, você pode definir esse valor para 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 definir uma data a partir da qual a política entrará em vigor para novos aplicativos. Quaisquer aplicações criadas antes desta data não serão afetadas pela política. Nesse caso, você está aplicando restrições para aplicativos criados após 20 de fevereiro de 2025. Por favor, certifique-se de atualizar esta data para atender às suas necessidades. Se quiser definir restrições diferentes para aplicativos criados antes ou depois de uma determinada data, você pode 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 definir o tipo de restrição que deseja aplicar. Nesse caso, estás a restringir 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 formatação de duração, consulte ISO 8601.

    • O restrictForAppsCreatedAfterDateTime parâmetro permite definir uma data a partir da qual a política entrará em vigor para novos aplicativos. Quaisquer aplicações criadas antes desta data não serão afetadas pela política. Nesse caso, você está aplicando restrições para aplicativos criados após 20 de fevereiro de 2025. Por favor, certifique-se de atualizar esta data para atender às suas necessidades. Se quiser definir restrições diferentes para aplicativos criados antes ou depois de uma determinada data, você pode 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 saber mais sobre esse cmdlet, veja Update-MgPolicyDefaultAppManagementPolicy.

Certifique-se de concordar com a permissão Policy.ReadWrite.All. Em seguida, execute a seguinte solicitação 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 saber mais sobre essa solicitação, veja Atualizar tenantAppManagementPolicy.

Resposta

Assim que a solicitação for enviada, você 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 que não há conteúdo a ser retornado.

    HTTP/1.1 204 No Content

Confirmar se a política foi aplicada

Depois de atualizar sua política de gerenciamento de aplicativos, você pode confirmar que ela é 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 que está a aplicar uma política de gestão de aplicações, o campo id deveria ter mudado de 00000000-0000-0000-0000-000000000000 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 aplicadas. Por exemplo, se você tentar criar um novo aplicativo com um segredo de cliente ou chave simétrica, deverá receber um erro indicando que a operação não é permitida, conforme mostrado na captura de tela abaixo.

Captura de ecrã do centro de administração Microsoft Entra a mostrar um aviso de que os segredos do cliente estão bloqueados pela política de todo o arrendatário.