V13.4.2 GraphQL
Requirement:#
Verify that GraphQL or other data layer authorization logic should be implemented at the business logic layer instead of the GraphQL layer.
Explanation:#
Это требование введено для обеспечения того, чтобы надлежащие средства контроля доступа и проверки авторизации последовательно применялись во всем приложении, независимо от используемого метода доступа к данным.
Уровень бизнес-логики отвечает за реализацию основных функций и обработку приложения. Он должен обрабатывать все бизнес-правила, проверки и операции, связанные с безопасностью, включая контроль доступа и авторизацию. Реализуя логику авторизации на этом уровне, вы централизуете и консолидируете элементы управления безопасностью, упрощая их применение и управление.
С другой стороны, уровень GraphQL служит интерфейсом для запросов и управления данными. Он должен в первую очередь сосредоточиться на поиске и изменении данных, а не на обеспечении безопасности. Размещение логики авторизации исключительно на уровне GraphQL может привести к несоответствиям, поскольку разные запросы или мутации могут иметь свои собственные проверки авторизации, что усложняет поддержание последовательного и надежного состояния безопасности.
Remediation:#
Для выполнения этого требования могут быть предприняты следующие шаги:
1 Определите требования авторизации для доступа к различным типам данных в вашем приложении. 1 Реализуйте централизованный механизм авторизации на уровне бизнес-логики. Это может включать управление доступом на основе ролей (RBAC), управление доступом на основе атрибутов (ABAC) или любую другую подходящую модель авторизации. 1 Убедитесь, что все пути доступа к данным, включая запросы и изменения GraphQL, проходят через уровень бизнес-логики. 1 Внедрите соответствующие проверки авторизации на уровне бизнес-логики, чтобы обеспечить контроль доступа на основе выявленных требований. 1 Регулярно проверяйте и тестируйте реализованную логику авторизации, чтобы убедиться, что она работает должным образом и эффективно предотвращает несанкционированный доступ к конфиденциальным данным. 1 Документируйте и сообщайте модель авторизации и реализованные элементы управления команде разработчиков, подчеркивая важность принудительной авторизации на уровне бизнес-логики вместо того, чтобы полагаться на уровень GraphQL.
Внедряя логику авторизации на уровне бизнес-логики, вы создаете унифицированный и последовательный подход к управлению доступом, снижая риск неправильных конфигураций или обходов, которые могут возникнуть, если логика авторизации будет разбросана по разным уровням приложения.