Прокси в IIS для частного репозитория Prismi c - возможно ли это? - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть Angular (8) решение, которое обращается к publi c Prismi c репо через обратный прокси на том же IIS, что Angular

Теперь я хочу поговорить с приватным Prismi c репо.

Как настроить прокси-сервер для добавления заголовков и еще много чего?
Это вообще возможно или авторизация требует еще шага?

(я не могу заставить его работать в VSCode-rest-client-plugin . Есть. документация о том, как заставить его работать в Почтальон - и это то, что намекает мне, что невозможно просто "прокси" вызов в частном репозитории Prismi c.)

Приложение:

Закрытое хранилище Prismi c имеет секретный ключ, который не должен попасть на клиент.
Я надеюсь добавить секрет в прокси, так как я полностью контролирую прокси.

Ответы [ 2 ]

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

Как я намекал в комментариях, я думаю, что меня немного отвлекло внимание на вещь reverse proxy. Поправьте меня, если я еще далеко.

Глядя на документацию , насколько я понимаю, единственная разница между publi c и частным репозиторием Prismi c заключается в том, что дополнительный уровень безопасности (читай: ключ API), который вы должны передавать вместе с каждым запросом.

Prismi c контент распространяется через API, который можно настроить как частный. В частном режиме API требует, чтобы клиентское приложение аутентифицировало себя для запроса, извлечения и отображения любого содержимого, хранящегося в хранилище Prismi c.

enter image description here

Чтобы доказать, что мой прокси не нужен, я запустил новое частное репо в Prismi c и собрал быстрое кодовое перо , которое делает простой запрос, используя angular -prismico в качестве примера. Обратите внимание на настройку PrismicProvider:

    PrismicProvider.setApiEndpoint('https://my-instance.cdn.prismic.io/api/v2');
    PrismicProvider.setAccessToken('my master key');
    PrismicProvider.setClientId('some client id');
    PrismicProvider.setClientSecret('some_secret');

(ручка имеет рабочие учетные данные, но это отдельный экземпляр, который я открыл для этого ответа, так что он, скорее всего, скоро истечет)

Это подводит нас к моему первому предложению:

использовать клиентскую библиотеку Angular (либо Angular2 + , либо AngularJs как Вы не указали свою версию). Делайте это , только если вас не волнует утечка ключа API в publi c (это может быть вариант для внутреннего веб-сайта, например) .

Предположим, вы хотите сохранить ключ в секрете

, и это, вероятно, ваш случай. В этой ситуации будет иметь смысл поток, аналогичный моему другому SO-ответу . Короче говоря - вы каким-то образом авторизуете клиентов вашего Angular SPA для вашего приложения, размещенного на IIS, и используете библиотеку Prismi c. net client для выполнения запросов от клиентов.

Чтобы ответить на заданный вами c вопрос: да, можно реализовать прокси-сервер, который вызывает SPA из Prismi c. Вы можете начать с этого несколько официального образца и продолжить.

0 голосов
/ 23 февраля 2020

Полностью можно использовать обратный прокси-сервер IIS для подключения к частному репо Prismi c.
Требуется настроить обратный прокси-сервер IIS и предоставить ему секрет, используемый для авторизации в Prismi c.


На момент написания статьи я не нашел способа установить только обратный прокси-сервер IIS, но нужно установить расширение всей фермы, которое называется ARR .

Обратный прокси-сервер имеет сайт, а не сервер, поэтому обновите web.config с данными, соответствующими: -пишите GUI тоже, но, по крайней мере мне, это сложнее понять. И объясните.

Есть кое-что о том, как Prismi c позже обрабатывает секрет авторизации, что меня раздражает, но это другая проблема.

HTTP_AUTHORIZATION необходимо настроить в качестве серверной переменной . IISManager-> URLRewrite-> ViewServerVariables-> Add.
Я не удосужился узнать, где это хранится.

Полезный совет для отладки проблем перезаписи URL.

...