У меня проблема с дизайном следующей бизнес-логики.
У меня был сервер (S), действующий как CA с некоторыми службами, и много клиентов (A, B, ...), которые зарегистрированы на сервере. У каждого клиента есть свой сертификат. Каждый клиент может подписать свое сообщение, чтобы сервер мог его авторизовать, т.е. запрос (псевдокод):
A -> { from: A, message: ..., signiture: A signiture} -> S
Но мне нужен другой уровень авторизации: иногда клиент A должен отправлять сообщения от имени B, поэтому сообщение будет выглядеть так:
A -> { from: B, message: ..., signiture: A signiture} -> S
Таким образом, сервер каким-то образом должен проверить, разрешено ли A действовать как B. Можно ли создать такую логику на уровне сертификата с помощью bouncycastle? Мне нужна идея без реализации.