SSO sem cabeça do Drupal usando o protocolo OAuth
Visão geral
A solução de SSO headless baseada em OAuth da miniOrange conecta de forma eficiente o backend do Drupal a um servidor OAuth usando o protocolo OAuth para autenticação. Após a conclusão do processo de SSO, o módulo gera um JSON Web Token (JWT) para o usuário autenticado e o transmite para o site frontend. (Opcional: Este token pode ser usado para validar outras APIs do Drupal.) Este guia destaca os principais aspectos da implementação do SSO headless tanto no backend quanto no frontend.
Vamos começar pelo backend primeiro.Pré-requisitos
- Módulo de cliente miniOrange OAuth : Este módulo habilita o SSO entre o site Drupal e o provedor OAuth/OIDC.
- Módulo de Autenticação REST e JSON API :Após a execução do SSO, este módulo ajuda a gerar o JWT e enviar esse token para o aplicativo frontend. (Opcional: para autenticar quaisquer outras APIs do Drupal, passe o mesmo JWT no cabeçalho junto com a solicitação da API, e o módulo de autenticação da API REST e JSON validará esse JWT.)
Configurações de backend
- Módulo cliente miniOrange OAuth: Siga este guia de configuração para configurar a conexão entre o site Drupal e o provedor OAuth/OIDC desejado.
- Módulo de autenticação REST e JSON API:
- Para autenticar as APIs do Drupal usando o JWT, configure o Autenticação JWT método no módulo. Siga isto guia de configuração.
- Configure a URL de redirecionamento do aplicativo frontend:
- Navegue até a Configurações avançadas guia do módulo de autenticação REST & JSON API.
- De acordo com o relatório Configurações de endpoint de token para SSO sem interface Para obter detalhes, insira o endpoint do aplicativo frontend, para onde o navegador redirecionará após o processo de Login Único (SSO) com um parâmetro de código. Em seguida, clique em Salvar configuração de endpoint de token botão.
- Fluxo de login:
- Inicie o login a partir do aplicativo frontend do usuário. (usando URL- {drupal-base-url}/moLogin)
- O usuário é redirecionado para o servidor configurado.
- Insira as credenciais do usuário para autenticação.
- Após a autenticação bem-sucedida, o usuário é redirecionado de volta ao frontend com o código como parâmetro de consulta na URL.
- Use o código obtido na etapa anterior para fazer uma solicitação ao endpoint de token do Drupal. Para isso, siga os passos abaixo:
- Localize o ponto final do token no Configurações de endpoint de token para SSO sem interface detalhes. Consulte a imagem a seguir para isso.
- Exemplo para fazer uma solicitação POST com o código recebido:-
- Suponha que um usuário receba um código (received_code) no frontend.
- Agora, use o formato abaixo para fazer uma solicitação POST usando este código.
Descobrindo as cenas do frontend
Esta seção revela tudo o que um usuário precisa fazer no frontend.
Vamos começar:
HTTP: POST https://{drupal_base_url}/getToken code=(received_code)
Nota: Para ver o formato das solicitações de API que incluem o token JWT no cabeçalho, consulte este guia de configuração.
