Невозможно встроить Jupyterlab, работающий на Jupyterhub, в iframe - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь интегрировать jupyterlab, работающий с jupyterhub, в iframe. Я сделал все необходимые изменения в файлах конфигурации. В jupyter_notebook_config.py я сделал следующие изменения:

c.NotebookApp.tornado_settings = {'headers': {
    'Access-Control-Allow-Origin': '*',
    'Content-Security-Policy': 'frame-ancestors http://localhost:9005'
  }}

, а в jupyterhub_config.py я добавил следующее

c.JupyterHub.tornado_settings = {'headers': {
    'Access-Control-Allow-Origin': '*',
    'Content-Security-Policy': 'frame-ancestors http://localhost:9005'
  }}

Но все же, когда я пытаюсь открыть http://localhost: 8002 / user / admin / lab URL в фрейме Я получаю следующую ошибку

Refused to display 'http://localhost:8002/user/admin/lab' in a frame because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self'".

Может кто-нибудь сообщить мне, если я что-то упустил или есть проблема с моей конфигурацией?

1 Ответ

1 голос
/ 25 февраля 2020

Вот обходной путь,

  • Имеют общий файл конфигурации ноутбука для всех пользователей, которые входят в Jupyterhub.
  • Передайте файл конфигурации как аргументы spawner.

Выполните следующую процедуру:

  1. Создайте файл с именем jupyter_notebook_config.py в указанном c расположении, скажем / home / shared_config /

Вы можете создать файл вручную с помощью текстового редактора, такого как vim, или создать файл coinfig по умолчанию, используя блокнот jupyter, с помощью следующей команды

jupyter notebook --generate-config

Обратите внимание, что для указанной выше команды требуется jupyter устанавливаемая записная книжка (pip3 install jupyterhub notebook)

После установки, если при загрузке tljh-config возникнет ошибка, связанная с версией ruamel.yaml, выполните следующую команду: pip3 install ruamel.yaml == 0,15 *

Откройте файл jupyter_notebook_config.py, который вы создали выше, и добавьте следующий код:

c .NotebookApp.tornado_settings = {'headers': {'Content-Security-Policy': "frame-ancestors * 'self'"}}

изменить разрешение файла, используя следующий код:

chmod -R 755 /home/shared_config/jupyter_notebook_config.py
Откройте файл конфигурации jupyterhub (по умолчанию находится в /opt/tljh/config/jupyterhub_config.d/jupyterhub_config.py) и добавьте следующий код:

Примечание: вы можете создать файл конфигурации jupyterhub с помощью следующей команды: jupyterhub --generate-config

c.Spawner.args = [ '--config=/home/shared_config/jupyter_notebook_config.py']

Перезагрузите tljf-config с помощью следующей команды:

sudo tljf-config reload

Счастливого кодирования !!

Вот как выглядит моя конфигурация

- /opt/tljh/config/jupyterhub_config.d/jupyterhub_config.py

c.JupyterHub.tornado_settings = {'headers': {'Content-Security-Policy': "frame-ancestors * 'self' "}}
c.Spawner.args = [ '--config=/home/ubuntu/jupyter_notebook_config.py']

- /home/shared_config/jupyter_notebook_config.py

c.NotebookApp.tornado_settings={'headers': {'Content-Security-Policy': "frame-ancestors * 'self' "}}

Некоторые полезные ссылки и связанные с этим вопросы:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...