Pré-registrando usuários futuros

Com o IBM Cloud® App ID, é possível iniciar a construção de um perfil para usuários que você sabe que precisarão de acesso ao seu app antes de sua conexão inicial.

Para saber mais sobre as considerações de segurança que podem ser aplicadas quando você trabalha com atributos customizados, consulte Armazenando e acessando perfis do usuário.

Entendendo o pré-registro

Pode haver momentos em que você está desenvolvendo um app e já sabe quem serão os usuários dele. Esses usuários são conhecidos como "usuários futuros". Você pode saber antecipadamente que certos usuários precisam de níveis de permissão específicos ou de uma preferência alimentar específica antes de começar a interagir com seu app. Por exemplo, você trabalha para uma empresa de desenvolvimento e contrata uma nova pessoa para atuar como líder de equipe. Você pode desejar designar a esse usuário acesso de admin ao seu app antes de começar para que, quando ele se conectar pela primeira vez, possa começar a trabalhar imediatamente sem nenhuma interação adicional de sua parte. Digamos que a mesma pessoa é vegetariana. Ao anotar isso como um atributo customizado em seu perfil, a preferência pode ser puxada para todos os almoços da equipe, sem que você precise ser lembrado disso.

Por padrão, a capacidade dos usuários de mudarem seus próprios atributos customizados por meio do aplicativo está configurada como off. É possível fornecer a seus usuários essa capacidade, mas antes de fazer isso, tenha certeza de que entendeu e considerou os problemas de segurança que podem surgir.

Para designar atributos customizados para usuários futuros, é possível usar a GUI ou o terminal de pré-registro.

Como os usuários são identificados?

É possível identificar seus usuários usando um dos seguintes:

  • O endereço de e-mail com o qual o usuário se conecta ao seu app.
  • Se disponível, o ID exclusivo do usuário, chamado de GUID, no provedor de identidade. Embora esse identificadorsempre exista e sua exclusividade seja garantida, ele nem sempre está prontamente disponível ou é fácilde entender. Por exemplo, o Cloud Directory usa um GUID de 16 bytes aleatórios.

Quais informações os provedores de identidade fornecem?

Efetue o registro de saída da tabela a seguir para ver o tipo de informações de identidade que podem ser usadas.

Tipos de informações de identidade que podem ser usadas com cada provedor
Provedor de identidade GUID E-mail Sub
Cloud Directory Ícone de visto Ícone de visto
Facebook Ícone de visto Ícone de visto
Google Ícone de visto Ícone de visto
SAML Ícone de visto
Customizado Ícone de visto

Como o Cloud Directory é manipulado?

Para garantir a integridade de um futuro usuário, o Cloud Directory impõe requisitos de pré-registro.

  • Deve-se usar um e-mail, não um nome de usuário, para incluir o usuário. Se você ainda não tiver nenhum usuário, alterne para o modo de e-mail e senha para incluir usuários futuros. Se você tiver usuários, deverá esperar até que o usuário tenha se conectado para designar os atributos customizados.
  • O usuário deve confirmar sua identidade por meio da verificação. Quando você incluir um usuário futuro com atributos específicos, esses atributos serão destinados a essa pessoa. Qualquer usuário que se conecte usando um e-mail registrado para um usuário futuro deve verificar seu endereço de e-mail antes de ter acesso concedido ao seu app. Para concluir os requisitos de verificação, é possível enviar um e-mail para que a verificação do usuário ou verificar manualmente seu endereço em seu nome. Para permitir a autoverificação, configure Verificação de e-mail para Ligado na guia Cloud Directory do painel de serviço. Isso envia um e-mail ao usuário para solicitar verificação em sua conexão inicial. Para verificar os usuários manualmente, deve-se ser um administrador. Faça uma solicitação às APIs de gerenciamento do Cloud Directory para definir o campo status no payload como CONFIRMED.

Se um usuário futuro for incluído por você e se conectar ao seu app sem verificar o e-mail, os atributos customizados dele serão excluídos e o perfil será criado do zero.

Há algo especial que eu precise fazer ao usar um provedor de identidade customizado?

Ao incluir informações sobre o usuário em seu aplicativo antecipadamente, é possível usar qualquer identificador exclusivoque seja fornecido pelo fluxo de autenticação. O identificador deve corresponder exatamente com o sub do JSON Web Token assinado que é enviado durante a solicitação de autorização. Se oidentificador não corresponder, então o perfil que você deseja incluir não será vinculado com êxito.

Incluindo um usuário futuro

Agora que você aprendeu sobre o processo e considerou suas implicações de segurança, tente incluir um usuário.

Os atributos predefinidos do usuário estão vazios até sua primeira autenticação. Embora elas estejam vazias, o usuário ainda está totalmente autenticado. É possível usar seu ID de perfil exatamente como você faria com alguém que já tenha se conectado. Por exemplo, é possível modificar, procurar ou excluir o perfil.

Antes de Iniciar

Antes de começar, deve-se ter as informações a seguir:

Com a GUI

É possível incluir um usuário futuro e seus atributos customizados usando a GUI.

A capacidade de incluir usuários futuros está desativada para o nome do usuário e a configuração de senha do Cloud Directory.

  1. Acesse a guia Perfis do usuário do painel do App ID.

  2. Clique em Usuários futuros. Se você já tiver usuários futuros, você verá uma tabela com uma lista de usuários que você já incluiu. Para incluir outro usuário, clique em Construir um perfil. Se você ainda não tiver nenhum usuário, clique em Introdução. Uma tela é aberta.

  3. Insira o e-mail do seu usuário.

  4. Selecione o provedor de identidade com o que eles se conectem no menu suspenso Provedor de identidade.

  5. Inclua atributos customizados digitando as informações em um objeto JSON, conforme mostrado no exemplo a seguir.

    {
       "food": "Pizza",
       "preference": "Vegetarian",
       "points": "37"
    }
    
  6. Clique em Salvar. A tabela é exibida e o usuário é designado a um identificador.

Com a API

É possível incluir um usuário futuro e seus atributos customizados usando a API.

  1. Efetue login no IBM Cloud.

    ibmcloud login
    
  2. Localize o token do IAM ao executar o comando a seguir.

    ibmcloud iam oauth-tokens
    
  3. Faça uma solicitação de POST para o terminal /users que contém uma descrição do usuário e osatributos que você deseja configurar como um objeto JSON.

    Cabeçalho:

    POST <managementUrl>/management/v4/<tenantID>/users
          Host: <managementServerURL>
          Authorization: 'Bearer <IAMToken>'
          Content-Type: application/json
    

    Corpo:

    {
          "idp": "<identityProvider>",
          "idp-identity": "<userUniqueIdentifier>",
          "profile": {
             "attributes": {
                "mealPreference":"vegeterian"
             }
          }
    }
    
    Os componentes da solicitação POST
    Componentes Descrição
    idp O provedor de identidade com o qual o usuário se autentica. As opções incluem: saml, cloud_directory, facebook, google, appid_custom.
    idp-identity O identificador exclusivo fornecido pelo provedor de identidade.
    profile O perfil do usuário que contém o mapeamento JSON do atributo customizado.

    Solicitação de exemplo:

    $ curl --request POST \
          --url 'https://<managementURI>/users \
          --header 'Authorization: Bearer <IAMToken>' \
          --header 'Content-Type: application/json' \
          --data '{"idp": "saml", "idp-identity": "user@ibm.com", "profile": { "attributes": { "role": "admin",
          "frequent_flyer_points": 1000 }}}'
    
  4. Verifique se o registro foi bem-sucedido.

    • Verifique o perfil do usuário que foi criado.

      curl --request GET https://us-south.appid.cloud.ibm.com/management/v4/<tenantID>/users/<userProfileId>/profile \
      --header 'Authorization: Bearer <IAMToken>' \
      --header 'Content-Type: application/json' \
      
    • Verifique o ID do usuário na resposta.

      {
         "id": "5ce78e09-1356-4ef8-a45d-808b633101db",
         "identities": [],
         "attributes": {
            "role": "manager"
         }
      }
      

Próximas etapas

Agora que você associou um usuário futuro a atributos específicos, tente acessar ou atualizar atributos.