MSAL (Java) Rest API-аутентификация (авторизация: токен на предъявителя) - PullRequest
1 голос
/ 14 февраля 2020

Я бы хотел защитить Java Rest API от Azure AD B2 C.

Я понимаю, что вызывающая сторона вызывает службу, используя заголовок авторизации со значением, таким как: Bearer xxx-token

Это идентификатор или токен доступа?

Какие действия должна предпринять служба, чтобы убедиться, что это действительный токен? Java код с использованием MSAL4J будет очень признателен.

Ответы [ 2 ]

1 голос
/ 18 февраля 2020

MSAL4J предназначен для получения токенов, чтобы клиенты могли получить доступ к защищенным ресурсам, а не для проверки токенов в вашем API.

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

Microsoft в настоящее время не предоставляет библиотеку Java для этой проверки, но существует много сторонние библиотеки с открытым исходным кодом, которые предоставляют эту функциональность. Например, вы можете использовать jjwt

0 голосов
/ 15 февраля 2020

Вы видели этот MSAL4J B2 C образец , который вызывает защищенный веб-API?

Здесь в образце, где он включает токен доступа с момента, когда пользователь выполнил вход и добавил его в заголовок как токен на предъявителя. Затем библиотека промежуточного программного обеспечения, например Spring Security для java, проверит токен.

private String callB2CApi(String accessToken){
   RestTemplate restTemplate = new RestTemplate();

   HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);

        headers.set("Authorization", "Bearer " + accessToken);

    HttpEntity<String> entity = new HttpEntity<>(null, headers);

    String result = restTemplate.exchange(authHelper.configuration.api, HttpMethod.GET,
                entity, String.class).getBody();

     return new Date() + result;
}

Вот еще информация об использовании MSAL4J для создания сети приложение, которое регистрирует пользователей, а затем вызывает защищенный веб-интерфейс. Дополнительные примеры кода для вызова защищенного веб-API.

Вот краткий обзор типов токенов b2 c . IdToken содержит утверждения о пользователе, а токен доступа предоставляет доступ к вашему веб-интерфейсу.

...