Gerenciar o IAP com sessões da federação de identidade da força de trabalho

Nesta página, mostramos como gerenciar o Identity-Aware Proxy (IAP) com sessões de federação de identidade de colaboradores.

Ao configurar um pool de colaboradores, é possível especificar a duração da sessão entre o Google Cloud e um IdP. É possível especificar a duração da sessão entre 15 minutos e 12 horas. Essa configuração também é a duração do cookie de sessão do IAP. A duração padrão da sessão é de uma hora.

Quando uma sessão expira, o usuário final é redirecionado para o IdP de terceiros para fazer login. Se a sessão do IdP de terceiros ainda estiver ativa, o login será silencioso.

Para mais informações sobre como definir a duração da sessão, consulte Gerenciar provedores de pools de identidade de colaboradores.

Estabelecer uma sessão usando uma solicitação AJAX

Ao trabalhar com a federação de identidade de colaboradores, também é possível fazer solicitações AJAX para estabelecer uma sessão.

O IAP depende de cookies para gerenciar sessões de usuário e uma sequência de redirecionamentos para estabelecer uma sessão durante o login. Se o aplicativo usa o Compartilhamento de recursos entre origens (CORS) para fazer solicitações AJAX de um domínio de origem para um domínio de destino que hospeda um aplicativo protegido pelo IAP, primeiro é necessário estabelecer uma sessão do IAP no domínio de destino fora de banda. Não é possível compartilhar cookies entre os domínios de origem e de destino.

Depois que uma sessão for estabelecida no domínio de destino, configure as solicitações para incluir credenciais, porque os métodos JavaScript não anexam cookies por padrão:

  • Para objetos XMLHttpRequest, defina a propriedade withCredentials como true.
  • Para Fetch API, defina a opção credentials como include ou same-origin.

Para solicitações AJAX expiradas ou não autenticadas, o IAP retorna um código de status HTTP 401: Unauthorized. Se as solicitações AJAX receberem um código de status 302 em vez de 401, adicione um cabeçalho X-Requested-With com um valor de "XMLHttpRequest" para indicar que a solicitação é originada do JavaScript. Para estabelecer ou atualizar a sessão depois de receber uma resposta HTTP 401, abra uma nova janela para o URL do domínio de destino com ?gcp-iap-mode=DO_SESSION_REFRESH anexado.

Para mais informações e exemplos de código, consulte Solicitações AJAX.