Приложение, над которым я работаю, аутентифицируется с помощью стороннего поставщика удостоверений SAML. Затем я следил за документами netlify и добавил секрет jwt в Управление доступом> Доступ посетителей> Пароль / секрет JWT. Затем, следуя документации, я установил следующие правила перенаправления, чтобы заблокировать доступ к чему-либо на сайте для неавторизованных пользователей.
/ * 200! Role = user
/ * /.netlify/functions/login 401!
Это работает нормально, блокирует доступ для любых неаутентифицированных / неавторизованных пользователей и перенаправляет их в настроенную функцию netlify для аутентификации с помощью idp.
Проблема в том, что теперь любой доступ к маршруту cms завершается с ошибкой 404. В сетевых журналах я вижу, что сетевой вызов / cms-admin / завершается успешно, а затем сразу после этого происходит вызов /netlify-identity.js, который не работает с 404, и все после этого также не работает с 404.
сетевые звонки
Я использую бэкэнд github и аутентификацию github для конфигурации cms. Все это сработало и отлично работает, если я удалю перенаправления на основе ролей. Поскольку cms в любом случае будет использовать аутентификацию github, мне точно не нужно, чтобы маршрут cms-admin охранялся перенаправлением на основе ролей, поэтому я попытался отменить доступ на основе ролей, добавив правило выше других, как это, но оно все равно дает те же ошибки 404 (это может быть ошибкой, извините, если так):
/ netlify-identity. js /netlify-identity.js 200!
/ react.production. мин. js /react.production.min.js 200!
/ response-dom.production.min. js /react-dom.production.min.js 200!
/ netlify-cms-app. js /netlify-cms-app.js 200!
/ cms. js /cms.js 200!
/ cms-admin / * / cms-admin /: splat 200!
Я новичок в netlify и экосистеме, поэтому я могу делать что-то не так в перенаправлениях или где-то еще. Есть ли у кого-нибудь идеи, почему это не работает и как заставить его работать? Если возможно, как добавить исключение для перенаправления, чтобы доступ к базе ролей не запускался для маршрута / cms-admin, поскольку это, вероятно, был бы самым простым путем. А если нет, как решить эту проблему иначе?
Любая помощь приветствуется, спасибо.