Какой oauth или openid-connect мне нужно выбрать для создания публичного sdk? - PullRequest
0 голосов
/ 29 июня 2018

Я собираюсь создать SDK для разработчиков, чтобы получить доступ к моим внутренним ресурсам отдыха. Например, я определил ниже restful apis:

get     GET  /changes/changeId  
list    GET  /changes   
getStartPageToken   GET  /changes/startPageToken

Мне нужно защитить свой apis, и я сталкиваюсь с openid-connect, auth1 и auth2, но я не уверен, какой из них мне нужно использовать. Насколько я знаю, auth2 больше используется для сторонней аутентификации, такой как вход в систему как учетная запись google, facebook и т. Д. Это правильно?

В некоторых других открытых интерфейсах API разработчику необходимо зарегистрировать учетную запись разработчика и получить ключ и секретный ключ приложения. Они могут использовать ключ и секрет, чтобы использовать свои API. Какой это тип аутентификации?

Какой из них больше подходит для моего варианта использования?

1 Ответ

0 голосов
/ 02 июля 2018

OAuth 1.0 устарел на OAuth 2.0 . Таким образом, вы можете удалить OAuth 1.0 из своего инвентаря.

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

Теперь эти протоколы позволяют вам завершать поток протоколов и получать токены с сервера авторизации (иногда называемого провайдером идентификации или сервером идентификации). В отличие от поддержки пользователей для каждого приложения, реестр пользователей поддерживается службой авторизации, которая может использоваться несколькими приложениями. Также сервер авторизации будет выдавать и поддерживать токены. Кроме того, он предоставит механизмы проверки токенов, которые будут использоваться потребителями токенов (например: - OAuth 2.0 Интроспекция токена ).

Насколько я знаю, auth2 больше используется для сторонней аутентификации

Не обязательно. Как отмечалось выше, этот подход позволяет централизованно вести учетные записи пользователей. И предоставить способы получения токенов против пользователей для внутренних приложений. Разрешение сторонней аутентификации является бонусом.

В некоторых других открытых API-интерфейсах разработчику необходимо зарегистрировать учетную запись разработчика и получить ключ и секретный ключ приложения. Они могут использовать ключ и секрет для использования своих API.

OAuth 2.0 (OpenID Connect) также требует регистрации приложения на сервере авторизации. Но в отличие от ключа приложения, подхода, основанного на секрете (или подхода на основе ключа API), OAuth 2.0 предоставляет вам возможность автоматизировать процесс получения и обновления токенов. Это делается путем следования определенному потоку (например: - поток кода авторизации ). Токены с более коротким сроком службы и способностью отзывать их также полезны для безопасности.

Какой из них больше подходит для моего варианта использования?

Я предпочитаю использовать OAuth 2.0 или OpenID Connect. С их помощью вы можете защитить свои API с помощью токенов доступа. Пользователи вашего SDK должны отправлять токен доступа, как определено в Использование маркера носителя

Теперь, что выбрать между OAuth 2.0 и OpenID Connect?

Ну, это зависит от того, какой конец клиента требуется от SDK. Если клиентским приложениям необходимо идентифицировать конечного пользователя и аутентифицировать его, вам следует выбрать OpenID Connect. Но если клиентскому приложению нужно только использовать API, вы можете использовать OAuth 2.0. В любом случае ваш API должен вызываться с допустимым токеном доступа. И ваш API должен проверять токен доступа перед предоставлением доступа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...