Marcando seu app
Com o IBM Cloud® App ID, é possível customizar a experiência de inscrição inteira de seu aplicativo usando suas próprias telas de marca. Você pode substituir o widget de login fornecido pelo seu próprio widget, adicionar mais campos, validar a força da senha e verificar endereços de e-mail em uma lista de bloqueio!
Entendendo a reutilização de tela
Quando você reutiliza suas IUs existentes, é possível criar um fluxo de conexão coesa para seu app. Ao usar as mesmas imagens, cores e marca, seus usuários são mais propensos a reconhecer sua marca, mesmo quando não interagem diretamente com seu aplicativo.
Deseja usar um idioma diferente do inglês? Você pode escolher outro idioma usando as APIs de gerenciamento de idiomas para exibir seu próprio conteúdo traduzido.
Quais informações eu preciso obter com a minha tela de conexão ou de inscrição?
Quando você faz a solicitação para enviar seu formulário de conexão, ela deve conter os parâmetros de nome de usuário e senha em seu corpo da solicitação. A sua página de conexão ou inscrição deve solicitar essas informações de seus usuários.
Posso usar algumas de minhas próprias telas e algumas telas padrão?
Sim! É possível criar um fluxo híbrido que use algumas de suas próprias telas e algumas telas padrão. No entanto, é possível usar apenas uma opção por fluxo. Como um exemplo, é possível usar a sua própria tela de conexão e também usar a tela de conexão padrão. Mas, se você optar por usar a tela de inscrição padrão, deverá continuar a usar o padrão em todo o fluxo de inscrição, incluindo na verificação de inscrição.
Como os fluxos se diferenciam tecnicamente?
O serviço usa os fluxos de concessão OAuth 2.0 para mapear o processo de autorização. Quando você configura provedores de identidade social, como o Facebook, o fluxo de concessão de autorização é usado para chamar o widget de login. Quando você usa suas próprias telas, o fluxo Credenciais de senha do proprietário do recurso é usado para fornecer acesso e tokens de identidade que você pode usar para chamar suas telas.
Inserindo uma marca no aplicativo com o SDK do Android
Com o Cloud Directory ativado, é possível chamar telas customizadas com o SDK do Android. É possível escolher a combinação das telas com as quais você gostaria que seus usuários fossem capazes de interagir.
Registrar
-
Defina as configurações do Cloud Directory no console.
-
Inclua o código a seguir no aplicativo. O fluxo de conexão é acionado quando um usuário clica em se conectar em sua tela customizada. Você obtém tokens de acesso, identidade e atualização, fornecendo a senha e o nome do usuário.
AppID.getInstance().signinWithResourceOwnerPassword(getApplicationContext(), username, password, new TokenResponseListener() { @Override public void onAuthorizationFailure (AuthorizationException exception) { //Exception occurred } @Override public void onAuthorizationSuccess (AccessToken accessToken, IdentityToken identityToken, RefreshToken refreshToken) { //User authenticated } });
Inserindo uma marca no aplicativo com o SDK do iOS Swift
Com o Cloud Directory ativado, você pode chamar suas próprias telas de marca com o SDK iOS Swift.
Registrar
-
Defina as configurações do Cloud Directory no console.
-
Coloque o código a seguir em seu aplicativo. Quando um usuário tenta se conectar, sua tela customizada é chamada e o processo de autorização e autenticação é iniciado com a sua página de conexão customizada.
class delegate : TokenResponseDelegate { public func onAuthorizationSuccess(accessToken: AccessToken?, identityToken: IdentityToken?, response:Response?) { //User authenticated } public func onAuthorizationFailure(error: AuthorizationError) { //Exception occurred } } AppID.sharedInstance.signinWithResourceOwnerPassword(username: username, password: password, delegate: delegate())
Inserindo uma marca no aplicativo com o SDK do Node.js
Com o Cloud Directory ativado, é possível chamar as telas customizadas com o SDK do Node.js.
Registrar
Usando o WebAppStrategy, os usuários podem se conectar aos seus apps da web com seu nome de usuário e uma senha. Depois que um usuário conectar-se com êxito ao seu aplicativo, o token de acesso dele persistirá em uma sessão HTTP
enquanto ela permanecer ativa. Após a sessão HTTP ser fechada ou expirada, o token de acesso também é destruído.
-
Defina as configurações do Cloud Directory no console.
-
Coloque o código a seguir em seu aplicativo. Quando um usuário tenta se conectar, sua tela customizada é chamada e o processo de autorização e autenticação é iniciado.
app.post("/form/submit", bodyParser.urlencoded({extended: false}), passport.authenticate(WebAppStrategy.STRATEGY_NAME, { successRedirect: LANDING_PAGE_URL, failureRedirect: ROP_LOGIN_PAGE_URL, failureFlash : true // allow flash messages }));Parâmetros de login Parâmetro Descrição successRedirectA URL para a qual você deseja redirecionar o usuário após uma autenticação bem-sucedida. failureRedirectA URL para a qual você deseja redirecionar o usuário se a autenticação falhar. Os usuários são redirecionados para a URL especificada quando ocorrem as seguintes falhas de autenticação:
- O usuário insere um nome de usuário ou senha incorretos.
- O limite do plano para a instância App ID foi atingido.
failureFlashQuando configurado para trueuma mensagem de erro é retornada do serviço Cloud Directory. Por padrão, o valor é configurado comofalse.Para vê-lo em ação, confira a amostra do aplicativo Web.
Inserindo uma marca no aplicativo com a API
É possível exibir suas próprias telas customizadas e aproveitar os recursos de autenticação e autorização do App ID. Com o Cloud Directory como o provedor de identidade, os usuários são capazes de interagir com o seu app com menos ajuda sua. Eles são capazes de conectar-se, inscrever-se, reconfigurar suas senhas e muito mais sem pedir ajuda.
Para tornar essa experiência possível, o App ID expõe as APIs de REST. É possível usar as APIs de REST para construir um servidor de back-end que atenda aos seus aplicativos da web, ou para interagir com um aplicativo móvel com suas próprias telas customizadas.
A API de gerenciamento é protegida com tokens gerados pelo IBM Cloud Identity and Access Management, o que significa que os proprietários da conta podem especificar o nível de acesso para cada instância de serviço de cada um dos integrantes da equipe. Para mais informações sobre como o IAM e o App ID trabalham juntos, consulte Gerenciamento de acesso de serviço.
Depois de configurar suas configurações, é possível chamar os terminais a seguir para exibir cada tela.
Inscrever
É possível usar o terminal /sign_up para permitir que os usuários se conectem ao seu aplicativo. Forneça os seguintes dados no corpo da solicitação:
- Seu tenantID.
- Dados do usuário do Cloud Directory com os atributos necessários a seguir. Consulte SCIM Full User Representation para obter mais detalhes.
- Um atributo
password. - Uma matriz
emailscom pelo menos um endereço de e-mail e um atributoprimaryque é configurada comotrue.
- Um atributo
Dependendo da sua configuração de e-mail, um usuário pode receber uma solicitação para verificação, um e-mail que dá as boas-vindas quando ele se inscreve em seu app ou ambos. Ambos os tipos de e-mails são acionados quando um usuário se inscreve para seu app. O e-mail de verificação contém um link que o usuário pode clicar para confirmar sua identidade. Uma tela é exibida agradecendo pela verificação ou confirmando que sua verificação está concluída.
Para apresentar sua própria página de verificação de postagem:
- Navegue até o provedor de identidade do Cloud Directory no painel do App ID.
- Clique na guia Verificação de e-mail.
- Na URL da página de verificação customizada, insira a URL para a página inicial.
Quando esse valor for fornecido, o App ID chamará a URL junto com uma consulta de context. Quando você chama o terminal /sign_up/confirmation_result e passa o parâmetro context recebido, o resultado informa
se seu usuário verificou a conta. Se sim, será possível exibir sua página customizada.
Esqueci a senha
É possível usar o terminal /forgot_password para permitir que os usuários recuperem suas senhas se as esqueceram.
Forneça os seguintes dados no corpo da solicitação:
- Seu tenantID.
- O e-mail do usuário do Cloud Directory.
Quando o terminal é chamado, um e-mail de reconfiguração de senha é enviado para o usuário. O e-mail contém um botão Reconfigurar. Depois de pressionar o botão, uma tela é exibida pelo App ID em que é possível reconfigurar a sua senha.
É possível apresentar a sua própria página de reconfiguração de senha de post:
- Defina as configurações do Cloud Directory no console. Permitir que os usuários gerenciem a sua conta por meio de seu app deve ser configurado como Ativado.
- Na guia Reconfigurar senha do painel de serviço, certifique-se de que E-mail de senha esquecida esteja configurado como Ativado.
- Insira a URL para a página inicial na URL para a página de reconfiguração de senha customizada
Quando esse valor for fornecido, o App ID chamará a URL junto com uma consulta de context. O parâmetro context é usado para receber o resultado quando /forgot_password/confirmation_result é chamado. Se
o resultado for bem-sucedido, será possível exibir sua página customizada.
Inclua uma sequência aleatória em sua página customizada de reconfiguração de senha e passe-a ao seu backend quando a solicitação for enviada. Deixe o manipulador validar a sequência e chame o terminal /change_password somente
se ele for válido. Ao fazer isso, é possível reduzir a vulnerabilidade do seu terminal de senha de reconfiguração de back-end.
Alterar senha
É possível usar o terminal /change_password de duas maneiras: quando um usuário envia uma solicitação de reconfiguração ou quando um usuário está conectado ao seu app e deseja atualizar a senha dele.
Antes de você chamar a API /change_password para permitir que um usuário reconfigure a sua senha, é altamente recomendado verificar se o context tem um resultado bem-sucedido usando o terminal /forgot_password/confirmation_result.
Esta operação inclui um nível mais alto de segurança em seu processo de reconfiguração de senha de back-end e assegura que um usuário poderá modificar a sua senha apenas se o context ainda for válido.
Para atualizar uma senha do usuário após uma solicitação de reconfiguração, forneça os dados a seguir no corpo da solicitação:
- Seu tenantID.
- A nova senha do usuário.
- O UUID do usuário do Cloud Directory.
- Opcional: o endereço IP por meio do qual a reconfiguração de senha foi executada. Se você escolher passar o endereço IP, o item temporário
%{passwordChangeInfo.ipAddress}estará disponível para o modelo de e-mail de mudança de senha.
Dependendo de sua configuração, quando uma senha é mudada, o App ID envia um e-mail para o usuário para que ele saiba que uma mudança foi feita.
Para permitir que os usuários mudem a sua senha enquanto estiverem conectados em seu app, forneça os dados a seguir no corpo da solicitação:
- Seu tenantID.
- A nova senha do usuário.
- O UUID do usuário do Cloud Directory.
Sua página de mudança de senha deve solicitar que o usuário insira sua senha atual e sua nova senha.
Seu backend valida a senha atual do usuário com a API do ROP e, se válida, chama o terminal com a nova senha. Dependendo da sua configuração, quando uma senha mudar, o App ID poderá enviar um e-mail para informar isso ao usuário.
Reenviar
Você pode usar o /resend/<templateName> para reenviar um e-mail quando um usuário não o receber por algum motivo.
Forneça os seguintes dados no corpo da solicitação:
- O ID do locatário.
- O nome de modelo
- O UUID do usuário do Cloud Directory.
Mudar detalhes
Quando um usuário está conectado ao seu app, ele pode atualizar algumas das suas informações. Você pode usar o site /Users/<userID> para obter e atualizar suas informações.
Quando os detalhes do usuário são atualizados, o ponto de extremidade obtém os dados atualizados do usuário no corpo da solicitação no formato SCIM. Certifique-se de que mudar somente os detalhes relevantes.
Seu endereço de e-mail não pode ser mudado.