IAM, AM/AMS, IdP, PEP, PIP, PDP и иные аббревиатуры

Вдохновляясь ГОСТ Р 59383-2021

Предлагаю иметь четкие границы между следующими модулями или подсистемами отвечающими за функции безопасности в рамках контроля доступа:

  1. Подсистема занимающаяся:
    1. управлением пользователями, а именно регистрацией, назначением различных атрибутов (группа, роль, scope — это тоже атрибуты), удалением, блокировкой и т.д.

    2. Аутентификацией — проверкой логина и пароля, второго фактора и т.д.

    3. Выдачей токенов доступа, к примеру JWT-токенов

  2. OIDC, OAuth2 клиент, который будет реализовывать, к примеру, Authorization Code Flow

  3. Подсистема хранения, управления политиками доступа. К примеру, в формате JSON Schema, XACML или в любом ином удобном вам.

  4. Подсистема принятия решений на основе политик доступа и входящего запроса

  5. Подсистема исполнения политик доступа на основе результата отданного подсистемой принятия решений по политикам

Плюсы

  1. Все из описанных подсистем уже реализованы: OAuth2 Proxy, Keycloak, ngx_http_auth_request_module, Open Policy Agent, решения от Ory, etc. Это позволит нам заниматься не разработкой, а комплексированием, см. ГОСТ Р 59351-2021. Из этого пункта вытекает много плюсов, но они будут описаны в статье про комплексирование.

  2. Каждая из подсистем может быть протестирована отдельно или вся совокупность подсистем может быть протестирована без одной или нескольких из них.

  3. Интеграция в существующую энтерпрайз-инфраструктуру с высокой вероятностью будет легче, т.к. взаимодействие систем будет происходить по открытым стандартам и известным протоколам: OIDC, OAuth2, LDAP, Kerberos, XACML, JSON Schema, etc.

  4. ПЕРЕИСПОЛЬЗУЕМОСТЬ. Набив руку, выработав лучшие пратики, имея проверенные конфиги, отрисовав диаграммы, сделав нагрузочное тестирование и сайзинг, вы сможете продавать ваши решения в разы эффективнее

  5. Стабильность. Зачастую, решения, которые используются сообществом, стабильнее, нежели сервис, который вы разработали вчера.

  6. При выполнении заданий безопасности для прохождения проверки на соответствие ОУД, вам нужно отдавать на проверку только вышеперечисленные подсистемы или модули