Когда API, разработанный с securityDefinition, как показано ниже, неясно, как должна выполняться проверка.
Допустим, есть ресурс API со следующим настроенным потоком безопасности oauth2_client_credentials. Тогда, если эти ресурсы API, вызванные токеном Oauth2, который был взят из предоставления пароля, должны быть отвергнуты шлюзом, не так ли?
Если это так, шлюз должен знать, как этот токен был взят либо из предоставления пароля, либо клиентский грант. Чтобы узнать, что у нас есть API интроспекции Oauth2, но он не предоставляет информацию о типе гранта.
Как можно выполнить эту проверку? Какой рекомендуемый подход?
Пожалуйста, совет.
securityDefinitions:
oauth2_authorization_code:
type: oauth2
flow: accessCode
tokenUrl: 'https://authserver.example/token'
authorizationUrl: 'https://authserver.example/authorization'
scopes:
accounts: read accounts
oauth2_client_credentials:
type: oauth2
flow: application
tokenUrl: 'https://authserver.example/token'
scopes:
accounts: read accounts