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.
| Provedor de identidade | GUID | Sub | |
|---|---|---|---|
| Cloud Directory | |||
| SAML | |||
| Customizado |
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
statusno payload comoCONFIRMED.
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 qual provedor de identidade o usuário se conectará.
- O e-mail do usuário que você deseja incluir ou seu identificador exclusivo.
- As informações de atributo customizado que você deseja designar.
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.
-
Acesse a guia Perfis do usuário do painel do App ID.
-
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.
-
Insira o e-mail do seu usuário.
-
Selecione o provedor de identidade com o que eles se conectem no menu suspenso Provedor de identidade.
-
Inclua atributos customizados digitando as informações em um objeto JSON, conforme mostrado no exemplo a seguir.
{ "food": "Pizza", "preference": "Vegetarian", "points": "37" } -
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.
-
Efetue login no IBM Cloud.
ibmcloud login -
Localize o token do IAM ao executar o comando a seguir.
ibmcloud iam oauth-tokens -
Faça uma solicitação de POST para o terminal
/usersque 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/jsonCorpo:
{ "idp": "<identityProvider>", "idp-identity": "<userUniqueIdentifier>", "profile": { "attributes": { "mealPreference":"vegeterian" } } }Os componentes da solicitação POST Componentes Descrição idpO provedor de identidade com o qual o usuário se autentica. As opções incluem: saml,cloud_directory,facebook,google,appid_custom.idp-identityO identificador exclusivo fornecido pelo provedor de identidade. profileO 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 }}}' -
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.