Аутентификация Nginx, SPA и Sphinx Doco - PullRequest
0 голосов
/ 01 июля 2019

У меня есть приложение SPA, которое использует Azure AD для аутентификации. Он работает хорошо, и теперь я добавил несколько пользовательских документов, используя Sphinx.

Я настроил Nginx, так что документация доступна через /app/doco. Это работает хорошо, однако теперь я хотел бы также защитить его, чтобы только пользователи, прошедшие проверку подлинности Azure AD, могли получить доступ к документу. Для этого я использовал модуль auth_request (http://nginx.org/en/docs/http/ngx_http_auth_request_module.html)). Это работает, если я использую стандартную аутентификацию Django, но когда я использую аутентификацию Azure AD, она не работает, так как запрос не имеет пользователей токен включен и т. д.

Как я понимаю, модуль auth_request работает:

  1. Пользователь пытается получить доступ к /app/doco (включая токен пользователя)
  2. Nginx настроен на проверку подлинности пользователя, перейдя к /app/auth_check (пользовательское представление Django), которое возвращает либо 200, либо 404
  3. Если 200, пользователю предоставляется доступ к / app / doco

Такое чувство, что вышеприведенный подход ошибочен, пытаясь пробить квадратный колышек через круглое отверстие? Будет ли работать что-то подобное выше, или есть другой инструмент / подход, который лучше подходит?

1 Ответ

2 голосов
/ 16 июля 2019

Со стороны Azure я не могу говорить об этом, поскольку у нас нет официальной документации по этому вопросу, но, исходя из того, что я видел на Nginx, вы должны иметь возможность использовать JWT и условный доступ для достижения этой цели.

Похоже, вам может понадобиться добавить проверку JWT в вашу конфигурацию NGINX:

auth_jwt "Closed site";
auth_jwt_key_file /etc/nginx/azure.jwk;

enter image description here

Вы уже видели это руководство уже?

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