Почему некоторые поставщики API требуют ключа API?

Мы нашли хорошее решение этой проблемы, которое я собираюсь объяснить шаг за шагом: во-первых, если вы хотите использовать пользовательскую страницу входа, у вас есть два варианта: 1. Изменение существующей темы keycloak, такой как login / registration / passwordupdate, который можно найти через каталог / keycloak / themes / * 2. Это может быть немного сложно - этого можно добиться, изменив AuthenticationProvider в Spring Security в вашем проекте.

override fun configure(http: HttpSecurity?) {
        http
            ?.authorizeRequests()
            ?.antMatchers("/**")?.authenticated()
            ?.and()
            ?.authenticationProvider(myAuthenticationProvider)
            ?.formLogin()
            ?.loginPage("/login")
            ?.successHandler { request, response, authentication ->  redirectStrategy.sendRedirect(request, response, "/main")}
            ?.permitAll()
            ?.usernameParameter("username") //the username parameter in the queryString, default is 'username'
            ?.passwordParameter("password") //the password parameter in the queryString, default is 'password'
            ?.and()
            ?.logout()
            ?.logoutUrl("/logout") //the URL on which the clients should post if they want to logout
            ?.invalidateHttpSession(true)
            ?.and()
            ?.exceptionHandling()
    }

MyAuthenticationProvider Вы должны переопределить этот класс безопасности Spring

Еще одна вещь, которую я задал в предыдущем вопросе, что если я использую rest api для доступа к проекту Spring, в этом случае вам следует реализовать KeycloakWebSecurityConfigurerAdapter вместо WebSecurityConfigurerAdapter

10
задан 2 revs, 2 users 100%awwaiid 26 January 2009 в 22:31
поделиться

6 ответов

Существует два преобладающих варианта использования. Первое должно измерить, отследить и ограничить использование API. Если кто-то создает сервис, который позволяет третьим лицам получать доступ к нему, поставщик услуг может хотеть управлять (или по крайней мере знать), у кого есть доступ так, чтобы они могли попытаться предотвратить вещи как атаки "отказ в обслуживании". На мере и стороне дорожки, интересная информация может быть получена, такие как знание, какие приложения распространены для доступа к сервису или какие люди функций используют большинство.

Другой вариант использования связан с безопасностью и аутентификацией. Неблагоразумно для поставщика услуг сделать приложения сторонних производителей, и сервисы требуют, чтобы пользователи бросили свое имя пользователя и пароль для основного сервиса. Это - огромное воздействие. Именно поэтому многие сервисы стандартизируют на протоколах, таких как OAuth, который обеспечивает делегированный доступ с помощью авторизации к данным пользователя. В то время как не надежный, это определенно предпочтительно для распределения удостоверений пользователя неизвестным, и недоверяемым, сторонам.

6
ответ дан 4 December 2019 в 01:03
поделиться

Обычно это раньше надевало статистику сколько приложения, выполняющего запросы к API. Я думаю, прося, чтобы имя пользователя/пароль с ключом API было ambigious в некоторых случаях, но это - путь, как это реализовано - таким образом, мы не можем сделать чего-то с ним.

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

1
ответ дан 4 December 2019 в 01:03
поделиться

Большую часть времени это должно контролировать, как разработчики используют веб-API. Если они так или иначе не соглашаются с Вашим использованием API, это предоставляет средство им завершить работу его, не причиняя другим пользователям боль. И статистические данные на пользователя/приложение всегда ценны.

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

4
ответ дан 4 December 2019 в 01:03
поделиться

Они могли использовать его для выражения, какую версию API Вы пытаетесь использовать. Возможно, в Версии 1.0, существует метод, который занимает пост на www.UPS.com/search и существует другой в версии 2.0 в том же адресе, но берет другой набор параметра или даже возвращает данные в другом формате / стиль. Ваша программа была основана на V1.0 и ожидает определенный контракт API. Они хотят смочь создать V2.0, не вмешиваясь в продукты их клиента.

Это - просто предположение, но это звучит хорошим мне.

0
ответ дан 4 December 2019 в 01:03
поделиться

Я думаю, что Gracenote делает подобную вещь для cddb. Я забываю детали, но я помню что-то о некотором маркере.

(Они / действительно драконовские правила об использовании их сервиса также.)

Simon напомнил мне, какова gracenote вещь была. Gracenote и FedEx и другие веб-сервисы имеют много разработчиков, пишущих приложения для программного обеспечения. Таким образом, разработчики заставляют маркер помещать в их приложения, но конечные пользователи имеют свое собственное имя пользователя и пароль. Это позволяет сервисам следить за злоупотреблением программами и т.д. Это - вероятно, te основная причина. (как браузер или webbot информирование веб-сервера, кто/какой это),

0
ответ дан 4 December 2019 в 01:03
поделиться

Первоначально Blogger требовал от вас подачи заявки на ключ API (как в Google Maps) и использовал его для ограничения доступа к API. По мере того как Blogger превратился в Metaweblog, требования к API стали менее важными, и Blogger больше не требует от вас подачи заявки на ключ. Как отметили другие, его все еще можно использовать для отслеживания.

0
ответ дан 4 December 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: