Получить токены от лазурного логина - PullRequest
0 голосов
/ 28 сентября 2018

Я использую Azure AD для входа в приложение весенней загрузки.Хотя я могу войти, мне нужно увидеть информацию о пользователе, которая пришла бы с токеном на предъявителя.Как я могу получить этот токен, когда пользователь перенаправлен обратно с лазурного логина (https://login.microsoftonline.com/{{adId}}/oauth2/token) обратно в приложение?

@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Autowired
    private OAuth2UserService<OidcUserRequest, OidcUser> oidcUserService;


    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .anyRequest().authenticated()
                .and()
                .oauth2Login()
                .userInfoEndpoint()
                .oidcUserService(oidcUserService);
    }


}

1 Ответ

0 голосов
/ 30 сентября 2018

Как сказал Амог, логика получения информации о пользователе из токена доступа одинакова на разных языках.Существует хорошо документированный пример Azure, который делает то, что вы пытаетесь достичь в Java.Пожалуйста, посетите и клонируйте этот образец , чтобы получить токен на предъявителя.

Обратите внимание на раздел AAD Controller , а именно:

    URL url = new URL("https://graph.microsoft.com/v1.0/users");
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();

    conn.setRequestMethod("GET");
    conn.setRequestProperty("Authorization", "Bearer " + accessToken);
    conn.setRequestProperty("Accept","application/json");
    int httpResponseCode = conn.getResponseCode();

    String goodRespStr = HttpClientHelper.getResponseStringFromConn(conn, true);
    // logger.info("goodRespStr ->" + goodRespStr);
    int responseCode = conn.getResponseCode();
    JSONObject response = HttpClientHelper.processGoodRespStr(responseCode, goodRespStr);
    JSONArray users;

    users = JSONHelper.fetchDirectoryObjectJSONArray(response);

    StringBuilder builder = new StringBuilder();
    User user;
    for (int i = 0; i < users.length(); i++) {
        JSONObject thisUserJSONObject = users.optJSONObject(i);
        user = new User();
        JSONHelper.convertJSONObjectToDirectoryObject(thisUserJSONObject, user);
        builder.append(user.getUserPrincipalName() + "<br/>");
    }
    return builder.toString();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...