Я разрабатываю API, который будет использоваться другим приложением, и использую платформу Microsoft Identify. API предоставляет несколько конечных точек, и одно приложение будет использовать все конечные точки, а другое — их подмножество. Для этого при регистрации приложения я создаю две роли приложения (скажем, чтение и чтение/запись).
Теперь клиентские приложения будут использовать для аутентификации либо секрет пользователя, либо сертификат, но я не могу найти способ назначить конкретный секрет/сертификат пользователя одной или обеим созданным ролям. Похоже, что если клиентское приложение использует секрет/сертификат пользователя, оно получает доступ ко всем конечным точкам.
Я что-то упускаю или смотрю на это не с той точки зрения?


Роли приложения не связаны с методами аутентификации. В этом сценарии вам потребуется три регистрации приложения. Один для вашего API, который определяет роли приложения. И по одному для каждого клиентского приложения. Каждому клиентскому приложению будут предоставлены разрешения API для вашего приложения API с соответствующей ролью.
Например
Регистрация приложения MyAPIApp, имеет роль 1 и роль 2.
Регистрация приложения ClientApp1 имеет разрешение API для MyAPIApp с ролью Role1.
Регистрация приложения ClientApp2 имеет разрешение API для MyAPIApp с ролью Role2.
Каждое из ClientApp1 и ClientApp2 будет использовать для аутентификации либо сертификат, либо секрет клиента.
Спасибо. Итак, чтобы соединить все вместе, мне нужно настроить сертификат в «клиентском приложении регистрации приложения1» и использовать этот сертификат из «клиентского приложения 1», верно?