es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Pasando variables de sesión al usar la anotación de reescritura de destino en el Ingress.

En mi ingreso he utilizado la anotación target-rewrite que es un servicio de dominio B que se carga en segundo plano cuando se carga el front-end de dominio A.

¿Cómo puedo pasar las variables/sesión de encabezado que proporciono durante el inicio de sesión al dominio A que es el front-end?

Actualmente, cuando abro el front-end (dominio A) ingreso mis credenciales, y luego me solicita credenciales nuevamente cuando realiza una reescritura de destino en segundo plano a dominio B.
Cualquier ayuda/entrada será muy apreciada.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Una solución para preservar las variables/cabeceras de sesión entre el dominio A y el dominio B es utilizar cookies.

    Puede configurar ambos dominios para usar el mismo nombre y valor de cookie, y establecer la cookie en la cabecera de respuesta cuando el usuario inicia sesión en el dominio A.

    Luego, cuando la solicitud se reescribe en el Dominio B, el valor de la cookie se enviará junto con la cabecera de solicitud, lo que permitirá que el Dominio B reconozca la sesión del usuario.

    Aquí hay un ejemplo de cómo puede configurar cookies utilizando Nginx y Kubernetes:

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: my-ingress
      annotations:
        nginx.ingress.kubernetes.io/rewrite-target: /
        nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
        nginx.ingress.kubernetes.io/target-rewrite: "domain-B.com"
    spec:
      rules:
      - host: domain-A.com
        http:
          paths:
          - path: /login
            backend:
              serviceName: login-service
              servicePort: 80
              # configurar la configuración de cookies
              set-cookie: "SESSIONID=123456; Path=/; Domain=.domain-A.com; HttpOnly"
      - host: domain-B.com
        http:
          paths:
          - path: /*
            backend:
              serviceName: backend-service
              servicePort: 80
    

    En este ejemplo, hemos agregado una anotación set-cookie a la regla de ingreso del Dominio A, que establece una cookie con un nombre de SESSIONID y un valor de 123456. También hemos configurado la configuración de la cookie con las opciones de Path, Domain y HttpOnly.

    Luego, en la regla de ingreso del Dominio B, hemos agregado la anotación target-rewrite para redirigir las solicitudes a domain-B.com. Cuando las solicitudes se reescriben, la cookie se enviará junto con la cabecera de solicitud, lo que permitirá que el servidor reconozca la sesión del usuario.

    Tenga en cuenta que esto es solo un ejemplo y puede que no funcione en todos los casos. Es posible que deba ajustar la configuración de la cookie o utilizar un enfoque diferente en función de sus requisitos específicos. Además, no olvide habilitar HTTPS para sus dominios para garantizar la transmisión segura de datos.

Comments are closed.