Использовать случаи OAuth2.0

Я muli-tenant saas(software as a service) architecture. Я должен создать систему authentication system для системы.

Из того, что я изучил, я думаю, мне нужно построить систему аутентификации на основе OAuth2.0 и токена-носителя с JWT tokens.

Прочитав много о OAuth2.0 о том, как построить сервер OAuth2.0, я до сих пор didn't understand full concept of OAuth а также путаю в том, нужна ли мне это или нет, или мне нужна другая система аутентификации.

То, что нужно моей системе, мы предоставим SDK всем нашим клиентам, и каждый клиент будет иметь Application Id а a secret key с использованием клиента SDK подключится к его приложению, присутствующему в нашей системе.

Идентификатор application ID сопоставляет клиента с его приложением, присутствующим в нашей системе, и client secret key будет аутентифицировать клиента внутри приложения. Мне все еще нужно создать систему проверки подлинности на основе OAuth2.0 или я могу создать свою собственную систему аутентификации по нашей потребности?

Каковы варианты использования OAUTH2.0 и когда нам это не понадобится?

+1
источник поделиться
1 ответ

Во-первых, как ясно указано в аутентификации OAuth

OAuth 2.0 не является протоколом проверки подлинности.

Аутентификация в контексте пользователя, получающего доступ к приложению, указывает приложение, которое является текущим пользователем, и независимо от того, присутствуют ли они. Полный протокол проверки подлинности, вероятно, также расскажет вам о нескольких атрибутах об этом пользователе, таких как уникальный идентификатор, адрес электронной почты и о том, как их назвать, когда приложение говорит "Доброе утро".

Тем не менее, OAuth ничего не сообщает об этом приложению.
OAuth абсолютно ничего не говорит о пользователе, и не говорит, как пользователь доказал свое присутствие или даже если они все еще там.
Что касается клиента OAuth, он попросил токен, получил токен и в конечном итоге использовал этот токен для доступа к некоторому API. Он ничего не знает о том, кто разрешил приложение, или вообще был там пользователь.

Существует стандарт аутентификации пользователя с использованием OAuth: OpenID Connect, совместимый с OAuth2.

Идентификатор идентификатора OpenID Connect - это подписанный JSON- токен (JWT), который предоставляется клиентскому приложению вместе с обычным токеном доступа OAuth.
Идентификатор ID содержит набор утверждений об сеансе аутентификации, включая идентификатор для пользователя (под), идентификатор поставщика удостоверений, который выдал токен (iss), и идентификатор клиента, для которого был создан этот токен ( ауд).

В Go вы можете посмотреть на coreos/dex, OpenID Connect Identity (OIDC) и OAuth 2.0 Provider с подключаемым коннектором.

+9
источник

Посмотрите другие вопросы по меткам или Задайте вопрос