Я пытаюсь понять, как использовать OpenId Connect в следующем примере использования. Допустим, у нас есть только следующие 3 компонента:
- Веб-приложение с открытым API (поставщик услуг, также известный как SP).
- Отдельный сервер аутентификации (Identify Provider aka IDP), используемый для SSO с указанным выше SP.
- Собственное клиентское приложение, используемое Конечным пользователем. Это клиентское приложение использует API SP.
Весь трафик будет через HTTPS. Вот как я представляю работу процесса OpenID Connect:
- Собственное приложение запросит «токен» у SP.
- SP увидит, что пользователь не аутентифицирован, и запросит подтверждение у доверенного IDP.
- После того, как учетные данные пользователя будут предоставлены IDP, IDP вернет токен ID и токен доступа SP.
- SP проверит токен идентификатора и предоставит токен доступа собственному клиентскому приложению для использования во всех последующих запросах к API.
Это рекомендуемый способ использования OpenID Connect в данной ситуации? Есть ли очевидные проблемы с безопасностью? Единственное, что я вижу, это то, что собственное клиентское приложение может использовать токен доступа для доступа к конечной точке информации о пользователе в IDP.