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 comoMINIMUM
.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) eLogin
(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
- Aceda à página de compras na app.
Aceda à página Identity-Aware Proxy Selecione um projeto e, de seguida, selecione o recurso no qual quer definir uma política de reautenticação.
Abra as Definições do recurso e, em Política de reautenticação, selecione Configurar reautenticação.
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
oufolder
. - SERVICE: o nome do serviço. Esta opção é opcional quando
resource-type
está definido comocompute
ouapp-engine
. - VERSION: o nome da versão. Isto não é aplicável ao tipo de recurso
compute
e é opcional para o tipo de recursoapp-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.