Безопасность. Как ограничить вход пользователям по IP, порту или домену

Задача - ограничить доступ некоторой группе пользователей вход на сайт по домену или IP. 

Для этого используем процедуру falcon_afterLogin в ней в @parameters есть параметры domain, userIP, userPort. Процедура выполняется после ввода правильных логина и пароля на странице входа (но до авторизации). 

На основе них решаем есть ли доступ у пользователя и возвращаем правильный доступ (Result 0 или 1).

ALTER PROCEDURE [dbo].[falcon_afterLogin]
	@parameters ExtendedDictionaryParameter READONLY,  -- userGuid, langID, domain, userIP, userPort
	@username nvarchar(32)
AS
BEGIN
	declare @port int
	select @port = try_cast(value as int) from @parameters where [key]='userPort'
	-- здесь также можно проверить на принадлежность к определенной роли
	-- например, пусть админов только с определенных IP или портов

	if(@port=12344) begin
		select 1 Result, '' Msg, '/' redirectUrl
	end else begin
		select 0 Result, 'No access' Msg, '' redirectUrl
	end

  -- SELECT 2 Outer commands
  select '' type
END

Аналогичным образом можно сделать ограничение доступа к некоторым критичным таблицам или формам (у них также есть параметр @parameters со сходными элементами). 

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Получить оценку проекта
Создайте концепцию проекта на основе нашего шаблона и получите оценку проекта в виде КП.
Демо-сайт решений
Базисные решения, которые можно гибко адаптировать под себя: менять внешний вид, бизнес-логику и даже структуру базы данных.
Сайт использует Cookie. Правила конфиденциальности OK