Reautenticação de CNA

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

A reautenticação de IAP (ou reautenticação) foi concebida para aplicar políticas de reautenticação a serviços e aplicações (ou apps) protegidos por IAP. Ao usar este serviço, pode aplicar políticas de reautenticação para serviços e aplicações críticos 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: os utilizadores finais voltam a autenticar-se através das respetivas credenciais de início de sessão.
  • Chave segura: os utilizadores finais fazem uma nova autenticação com a respetiva chave de segurança configurada.
  • Fatores secundários inscritos: os utilizadores finais voltam a autenticar-se através de um dos respetivos fatores secundários inscritos.

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

Configure uma política de reautenticação

Os reauthSettings estão incluídos como parte de IapSettings e podem ser definidos em qualquer tipo de recurso na hierarquia de recursos. Pode definir reauthSettings 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 tem em conta a duração da sessão mais curta e o método de reautenticação com maior precedência entre os dois recursos. O tipo de política resultante da união é definido como MINIMUM.

  • 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 o reauthSettings para o serviço ou a aplicação de destino. Os valores efetivos reauthSettings em qualquer nível são determinados da seguinte forma:

  • Herança: as definições do recurso de nível superior são unidas às definições do recurso de nível inferior.

  • Regras de união: se o recurso de nível inferior não tiver definições de reautenticação específicas, herda as definições do nível superior.

    Se ambos os níveis tiverem reauthSettings, o resultado unido usa o seguinte:

    • A duração da sessão mais curta.
    • O método de reautenticação com a precedência mais elevada.
    • A precedência é Secure key (mais alta), Enrolled second factors (média) e Login (mais baixa).
  • Tipo de política resultante: o tipo de política das definições unidas é MINIMUM.

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"

Neste 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 seconds como 3600, conforme mostrado no exemplo seguinte:

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

O valor mínimo de maxAge é de 300 segundos ou 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, de 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 numa 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 opção é opcional quando resource-type está definido como compute ou app-engine.
  • VERSION: o nome da versão. Isto não é aplicável ao tipo de recurso compute e é opcional para o tipo de recurso 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 de nome 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 a reautenticação bem-sucedida, o IAP cria um cookie no navegador do utilizador final. Para evitar a reautenticação frequente de aplicações no mesmo domínio, o cookie é definido no domínio privado de nível superior e é válido para todo esse domínio.

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, o IAP define um cookie em example.com porque esse é o domínio privado de nível superior. As aplicações 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.

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 aplicações para dispositivos móveis e computadores não podem voltar a autenticar os utilizadores porque os recursos que requerem a reautenticação são inacessíveis a estas aplicações.
  • 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, como o OAuth e o SAML, não são suportadas com a reautenticação.
  • As identidades da federação de identidade da força de trabalho não são suportadas para a reautenticação do IAP.