Должен ли Identity Server 4 OpenID Connect Discovery быть общедоступным? - PullRequest
0 голосов
/ 27 ноября 2018

Identity Server 4 предоставляет OpenID Connect Discovery через .well-known/openid-configuration url.Теперь мне не совсем понятно, почему это здесь или кто должен иметь к нему доступ.Насколько я понимаю, все, что делает эта страница, выдает информацию о конечных точках.

Приложениям, которые будут иметь доступ к моему серверу IS4, будут предварительно настроены конечные точки, поскольку все они являются внутренними, поэтому я не вижупричина, по которой эта страница открыта, я считаю более безопасной, чтобы не выдавать эту информацию.

Таким образом, мой вопрос заключается в том, должен ли я ограничить доступ к этой странице, и если да, то как?А если нет, то почему?

1 Ответ

0 голосов
/ 27 ноября 2018

Основным преимуществом сохранения этой конечной точки является автоматическая настройка клиента.Из примера MVC на странице GitHub AspNet.Security.OpenIdConnect.Samples :

// Note: setting the Authority allows the OIDC client middleware to automatically
// retrieve the identity provider's configuration and spare you from setting
// the different endpoints URIs or the token validation parameters explicitly.
Authority = "http://localhost:54540/"

Библиотека сервера может изменять любые пути конечных точек во время запуска, например конечная точка для получения токена .Используя автоматическую настройку, ваши приложения могут автоматически получать эти изменения без необходимости обновлять все клиентские приложения вручную.

Эта функциональность предлагается только для удобства, если вы хотите ее использовать.


Если это приложение доступно только для вашей внутренней сети (или только в пределах вашего собственного компьютера или сети Docker), не оставляйте ничего страшного.

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

Все, что злоумышленник узнает, это то, что приложение является сервером аутентификации, пути к вашим различнымконечные точки, какие типы потоков OAuth2 вы поддерживаете, и, возможно, некоторые другие мелкие детали.Если у вас есть общедоступная документация, это будет просто машиночитаемая версия.

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

From oauth.com (это касается конечной точки самоанализа, но на самом деле принцип применим ко всемконечные точки):

Если конечная точка самоанализа остается открытой и не регулируется, это дает злоумышленнику возможность опросить конечную точку для поиска действительного токена.Чтобы предотвратить это, сервер должен либо потребовать аутентификацию клиентов, использующих конечную точку, либо сделать конечную точку доступной только для внутренних серверов с помощью других средств, таких как брандмауэр.

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