Reautenticação de CNA

A reautenticação do IAP permite que os proprietários ou os Google Cloud administradores de serviços e aplicações exijam que os utilizadores finais autenticados façam novamente a autenticação após um período especificado quando acederem a um serviço ou a uma aplicação protegidos pelo IAP. Limita o período durante o qual um utilizador pode aceder ao serviço ou à aplicação protegidos pelo IAP antes de lhe ser pedido que faça novamente a autenticação.

A reautenticação de CNAs foi concebida para aplicar políticas de reautenticação a serviços e aplicações protegidos por CNAs. Pode fazê-lo para serviços e aplicações essenciais que processam informações confidenciais. Por exemplo, pode especificar que os utilizadores que acedem a uma aplicação de RH crítica têm de voltar a autenticar-se de hora a hora através de um segundo fator.

Métodos de reautenticação suportados

Pode usar os seguintes métodos para gerir as definições de reautenticação:

  • Início de sessão: o IAP força a reautenticação da aplicação protegida e os utilizadores têm de iniciar sessão novamente.
  • Chave de segurança: os utilizadores finais têm de fazer uma nova autenticação através da autenticação de dois fatores baseada na chave de segurança configurada.
  • Fatores secundários inscritos: os utilizadores finais têm de autenticar novamente a conta através de um dos métodos de autenticação de fator duplo inscritos.

Para mais informações, consulte o artigo IapSettings.

Configure uma política de reautenticação

reauthSettings fazem parte de IapSettings e, como tal, podem ser definidas em qualquer tipo de recurso na hierarquia de recursos. Pode definir reauthSettings num serviço ou numa aplicação ao nível da organização, da pasta, do projeto ou do serviço para aplicar restrições. Por exemplo, pode limitar a duração da sessão a um máximo de uma hora para todas as aplicações numa organização ou para uma aplicação específica.

Existem dois tipos de políticas que pode usar para definir a reautenticação:

  • Mínimo: se o tipo de política estiver definido como MINIMUM num recurso, como uma organização, quando avaliar as definições de reautenticação no recurso de nível inferior, como uma pasta, as duas definições são unidas. Se o recurso de nível inferior não tiver definições de reautenticação, o resultado da união são as definições não vazias do recurso de nível superior. Caso contrário, a união usa a duração da sessão mais curta e o método de reautenticação de maior precedência entre os dois recursos. O tipo de política será sempre MINIMUM. As definições de reautenticação unidas são usadas para a união com as definições de reautenticação do recurso de nível inferior seguinte, como um projeto.

    A ordem de precedência dos três métodos suportados, do mais alto para o mais baixo, é Secure key, Enrolled second factors e Login.

  • Predefinição: se o tipo de política estiver definido como DEFAULT num recurso, como uma organização, quando avaliar a definição de reautenticação no recurso de nível inferior, como uma pasta, a definição do recurso de nível inferior é usada se estiver configurada; caso contrário, a definição de reautenticação do recurso de nível superior é aplicada.

Para ambos os tipos de políticas, o processo de avaliação é repetido para determinar a reauthSettings para o serviço ou a aplicação de destino. Os exemplos seguintes mostram as definições antes e depois da avaliação. Durante a avaliação, a pasta e a organização reauthSettings são unidas, o que resulta na alteração do tipo de política da pasta para MINIMUM. As definições unidas são, em seguida, usadas para a união com o serviço ou a aplicação reauthSettings.

Organização IapSettings:

accessSettings:
  reauthSettings:
    method: "ENROLLED_SECOND_FACTORS"
    maxAge: "3600s"
    policyType: "MINIMUM"

Pasta IapSettings:

accessSettings:
  reauthSettings:
    method: "LOGIN"
    maxAge: "1200s"
    policyType: "DEFAULT"

Serviço ou aplicação IapSettings:

accessSettings:
  reauthSettings:
    method: "SECURE_KEY"
    maxAge: "7200s"
    policyType: "DEFAULT"

Definições após a união:

Organização IapSettings:

accessSettings:
  reauthSettings:
    method: "ENROLLED_SECOND_FACTORS"
    maxAge: "3600s"
    policyType: "MINIMUM"

Pasta IapSettings:

accessSettings:
  reauthSettings:
    method: "ENROLLED_SECOND_FACTORS"
    maxAge: "1200s"
    policyType: "MINIMUM"

Serviço ou aplicação IapSettings:

accessSettings:
  reauthSettings:
    method: "SECURE_KEY"
    maxAge: "1200s"
    policyType: "MINIMUM"

No exemplo, se o tipo de política de cada recurso estiver definido como DEFAULT, é usado o reauthSettings do serviço ou da aplicação.

MaxAge

Use o parâmetro MaxAge para especificar a frequência com que um utilizador final tem de se reautenticar, indicada em segundos. Por exemplo, para definir uma política de reautenticação de uma hora, defina os segundos como 3600, conforme mostrado no exemplo seguinte:

accessSettings:
  reauthSettings:
    method: "LOGIN"
    maxAge: "3600s"
    policyType: "MINIMUM"

O valor mínimo de maxAge é de cinco minutos.

Para definir uma política de reautenticação, conclua os passos seguintes.

Consola

  1. Aceda à página de compras na app.
    Aceda à página Identity-Aware Proxy
  2. Selecione um projeto e, em seguida, selecione o recurso no qual quer definir uma política de reautenticação.

  3. Abra as Definições do recurso e, em Política de reautenticação, selecione Configurar reautenticação.

  4. Especifique as definições de reautenticação e, de seguida, clique em Guardar.

gcloud

Pode definir uma política de reautenticação em recursos e serviços ao nível da organização, do projeto e da pasta. Seguem-se alguns exemplos de comandos para definir uma política de reautenticação.

Para mais informações, consulte gcloud iap settings set.

Execute o seguinte comando:

gcloud iap settings set SETTING_FILE [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION

Para definir uma política de reautenticação nos recursos de uma organização, execute o seguinte comando:

gcloud iap settings set SETTING_FILE --organization=ORGANIZATION

Para definir uma política de reautenticação nos recursos de uma pasta, execute o seguinte comando:

gcloud iap settings set SETTING_FILE --folder=FOLDER

Para definir uma política de reautenticação em todos os recursos do tipo Web num projeto, execute o seguinte comando:

gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=iap_web

Para definir uma política de reautenticação num serviço do App Engine num projeto, execute o seguinte comando:

gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=app-engine --service=SERVICE

Onde SETTING_FILE está:

accessSettings:
  reauthSettings:
    method: "LOGIN"
    maxAge: "3600s"
    policyType: "MINIMUM"

Substitua o seguinte:

  • FOLDER: o ID da pasta.
  • ORGANIZATION: o ID da organização.
  • PROJECT: o ID do projeto.
  • RESOURCE_TYPE: o tipo de recurso de CNA. Tem de ser app-engine, iap_web, compute, organization ou folder.
  • SERVICE: o nome do serviço. Esta ação é opcional quando resource-type é compute ou app-engine.
  • VERSION: o nome da versão. Isto não se aplica a compute e é opcional quando resource-type é app-engine.

API

Execute o seguinte comando para preparar um ficheiro iap_settings.json. Atualize os valores conforme necessário.

cat << EOF > iap_settings.json
{
  "access_settings": {
      "reauth_settings": {
            "method": "LOGIN",
            "maxAge": "300s",
            "policy_type": "DEFAULT"
        }
    }
}
EOF

Obtenha o nome do recurso executando o comando gcloud iap settings get. Copie o campo name da saída. Vai precisar do nome no passo seguinte.

gcloud iap settings get [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION]

Substitua RESOURCE_NAME no comando seguinte pelo nome do passo anterior. O IapSettings vai ser atualizado.

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d @iap_settings.json \
"https://iap.googleapis.com/v1/RESOURCE_NAME:iapSettings?updateMask=iapSettings.accessSettings.reauthSettings"

Compreender as credenciais de reautenticação

Após uma reautenticação bem-sucedida, a IAP cria um cookie no navegador do utilizador final. Para evitar que os utilizadores tenham de voltar a autenticar-se com demasiada frequência quando usam apps semelhantes, o cookie é definido no domínio privado de nível superior e é válido para todo esse domínio privado de nível superior.

Por exemplo, foo.example.com é um recurso protegido por IAP e tem uma política de reautenticação do IAP. Após uma reautenticação bem-sucedida, a IAP define um cookie em example.com, uma vez que esse é o domínio privado de nível superior. As apps do mesmo domínio privado de nível superior, como bar.example.com, usam as mesmas credenciais de reautenticação e não pedem ao utilizador para se reautenticar, desde que as credenciais sejam válidas.

Tenha em atenção que, para URLs como myapp.appspot.com, appspot.com é um domínio público. Por conseguinte, o domínio privado de nível superior é myapp.appspot.com.

Limitações conhecidas

  • A reautenticação só é suportada para fluxos de navegador. O acesso à conta de utilizador programático não é suportado. Por exemplo, as apps para dispositivos móveis e computadores não têm forma de reautenticar os utilizadores, porque os recursos que requerem reautenticação são inacessíveis.
  • As contas de serviço e o IAP-TCP estão isentos dos requisitos de reautenticação.
  • A reautenticação não funciona com o tipo de membro do Identity and Access Management allUsers.
  • As identidades externas que usam a Identity Platform não são suportadas com a reautenticação, porque os recursos que requerem reautenticação não são acessíveis.
  • As identidades da federação de identidade da força de trabalho não são suportadas para a reautenticação do IAP.