Esta página foi traduzida pela API Cloud Translation.
Switch to English

Como configurar declarações personalizadas para os usuários

Neste documento, você verá como configurar declarações personalizadas em usuários com o Identity Platform. As declarações personalizadas são inseridas em tokens de usuários durante a autenticação. O aplicativo pode usar essas declarações para lidar com cenários de autorização complexos, como a restrição do acesso de um usuário a um recurso com base no papel dele.

Antes de começar

Como usar declarações personalizadas

Para preservar a segurança, defina declarações personalizadas usando o SDK Admin no seu servidor. O exemplo a seguir mostra como usar declarações personalizadas com o Node.js. A referência do SDK Admin inclui exemplos para outros linguagens.

  1. Defina a declaração personalizada que você quer usar. No exemplo a seguir, uma declaração personalizada é definida no usuário para descrever que ele é um administrador:

    // Set admin privilege on the user corresponding to uid.
    admin.auth().setCustomUserClaims(uid, {admin: true}).then(() => {
      // The new custom claims will propagate to the user's ID token the
      // next time a new one is issued.
    });
    
  2. Valide a declaração personalizada na próxima vez que ela for enviada ao servidor:

    // Verify the ID token first.
    admin.auth().verifyIdToken(idToken).then((claims) => {
      if (claims.admin === true) {
        // Allow access to requested admin resource.
      }
    });
    
  3. Para determinar quais declarações personalizadas estão presentes para um usuário:

    // Lookup the user associated with the specified uid.
    admin.auth().getUser(uid).then((userRecord) => {
      // The claims can be accessed on the user record.
      console.log(userRecord.customClaims.admin);
    });
    

As declarações personalizadas são extremamente eficientes, mas observe o seguinte:

  • As declarações personalizadas não podem exceder 1.000 bytes. A tentativa de transmitir reivindicações maiores que 1.000 bytes resultará em um erro.
  • As declarações personalizadas são inseridas no JWT do usuário quando o token é emitido. Novas reivindicações não estarão disponíveis até que o token seja atualizado. É possível atualizar um token silenciosamente chamando user.getIdToken(true).
  • Para manter a continuidade e a segurança, defina apenas declarações personalizadas em um ambiente de servidor seguro.

A seguir