Oauth 2.0 - один ресурсный сервер, но несколько клиентских приложений - PullRequest
0 голосов
/ 11 декабря 2018

Приветствие,

Я хотел бы спросить, является ли следующий вариант допустимым для Oauth 2.0:

  1. Сервер авторизации (отдельный)
  2. Один (или несколько) серверы ресурсов
  3. Несколько клиентских приложений, обращающихся к одному и тому же серверу ресурсов.

Diagram for scenario in question

Если это допустимый вариант использования, какмы можем настроить несколько клиентов с сервером авторизации.Не удается настроить с помощью application.properties (application.yml).

security.oauth2.client.client-id=dummy
security.oauth2.client.client-secret=password

или

security:
  oauth2:
    resource:
      token-info-uri: http://localhost:8080/oauth/check_token
    client:
      client-id: dummy
      client-secret: password

Какая правильная конфигурация для приложения с несколькими клиентами в таких сценариях?

1 Ответ

0 голосов
/ 11 декабря 2018

, поэтому, если у вас несколько клиентов, вы можете зарегистрировать детали клиента в AuthorizationServer по расширению AuthorizationServerConfigurerAdapter

Ниже приведен пример, как зарегистрировать детали клиента в памяти:

@EnableAuthorizationServer
@Configuration
public class AuthServerConfig extends AuthorizationServerConfigurerAdapter {
    private final AuthenticationManager authenticationManager;

    @Autowired
    public AuthServerConfig(AuthenticationManager authenticationManager) {
        this.authenticationManager = authenticationManager;
    }

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.inMemory()
                .withClient("egen")
                .secret("{noop}egensecret")
                .authorizedGrantTypes("authorization_code","refresh_token","password")
                .scopes("food_read","food_write")
            .and()
                .withClient("oauthclient")
                .secret("{noop}oauthclient-secret")
                .authorizedGrantTypes("client_credentials", "refresh_token")
                .authorities("ROLE_USER", "ROLE_OPERATOR")
                .scopes("food_read");
    }
///more code
}

для более подробной информации, вы можете взглянуть на мой репозиторий github:

https://github.com/Dovchiproeng/spring-cloud-security-oauth2-poc/blob/master/spring-cloud-secure-auth-server/src/main/java/com/egen/springcloudsecureauthserver/config/AuthServerConfig.java

...