Azure Active Directory - установка срока действия токена в java

Я новичок в лазурном, и я пытаюсь установить время истечения срока действия моего токена доступа в java, но я не могу найти никаких примеров, как его установить. Помогите, пожалуйста, как установить срок годности, от 60 минут до 1 дня.

Я хочу увеличить "expires_in": "3600" как минимум до 8 часов или более.

В коде здесь я не могу получить никаких методов, таких как set param или set headers. Пожалуйста, помогите мне, как я могу.

Вот ссылка на параметры:

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-configurable-token-lifetimes#cmdlet-reference

Спасибо.

AuthenticationContext context = null;
        AuthenticationResult result = null;
        ExecutorService service = null;
        try {

              String refreshToken = request.getParameter("refreshToken");
              String currentUri   = request.getRequestURL().toString();  

            service = Executors.newFixedThreadPool(1);
            context = new AuthenticationContext(authority + tenant + "/", true,
                    service);
            Future<AuthenticationResult> future = context
                    .acquireTokenByRefreshToken(refreshToken,
                            new ClientCredential(clientId, clientSecret), null,
                            null);

            result = future.get();

  //////////////////////////////////////////////////////////
  // token values I'm getting

{
 "access_token": "<requested-access-token>",
 "token_type": "<token-type-value>",
 "expires_in": "3600",

"expires_on": "<access-token-expiration-date-time>",
 "resource": "<app-id-uri>",
 "refresh_token": "<oauth2-refresh-token>",
 "scope": "user_impersonation",

 "id_token": "<unsigned-JSON-web-token>"
}

person curious_one    schedule 09.07.2019    source источник


Ответы (1)


Вам нужно будет использовать скрипт Powershell для создания политики. Вот сценарий для справки.

Install-Module -Name AzureADPreview -Force

Connect-AzureAD -confirm

$policy=New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"08:00:00"}}') -DisplayName "tonytestpolicy" -IsOrganizationDefault $false -Type "TokenLifetimePolicy"

Если вы должны сделать это в своем java-коде, вы можете использовать api графа (сценарий powershell также вызывает этот api). Вот пример .

POST https://graph.microsoft.com/beta/policies
Content-Type: application/json

{
  "displayName":"CustomTokenLifetimePolicy",
  "definition":["{\"TokenLifetimePolicy\":{\"Version\":1,\"AccessTokenLifetime\":\"8:00:00\"}}"],
  "type":"TokenLifetimePolicy"
}
person Tony Ju    schedule 10.07.2019
comment
Я выполнил ваш почтовый запрос с сгенерированным токеном доступа, я получаю {error: {code: Authorization_RequestDenied, message: Недостаточно прав для завершения операции., InnerError: {request-id: b29a2d28-41a3-4db0-81fb-394e66df74dc, date : 2019-07-10T05: 36: 01}}} при обновлении токеном на предъявителя, попытался обновить это ... не могли бы вы посоветовать мне ... спасибо, дзю. - person curious_one; 10.07.2019
comment
@curious_one Вы предоставили разрешение Directory.AccessAsUser.All? - person Tony Ju; 10.07.2019
comment
@curious_one Я считаю, что ваш код использует поток учетных данных клиента, который не поддерживает этот API. См. Разрешение, необходимое для вызова API. docs.microsoft.com/ en-us / graph / api / - person Tony Ju; 10.07.2019
comment
@curious_one Вы должны делать это в своем коде? Для этого вы можете использовать PowerShell или графический проводник. Вот обозреватель графиков developer.microsoft.com/en-us/graph/graph -исследователь - person Tony Ju; 10.07.2019
comment
Прошу прощения за то, что не ответил, сейчас мне дали другое задание, поэтому я не проверял это. Так что я проверю через некоторое время. если сработает, я обязательно отмечу это как ответ без промедления. Спасибо, Джу, за твою ценную помощь. - person curious_one; 16.07.2019
comment
Привет .. Я сделал то, что вы сказали, я успешно установил 24-часовое истечение срока действия в url-адресе политик графика, как то, что вы сказали. Но новые сгенерированные токены доступа для новых ресурсов после этого все еще имеют срок действия всего 3600 секунд. Как сделать настройку срока действия токена применимой для следующих генерируемых токенов доступа? - person curious_one; 29.07.2019
comment
@curious_one Вы назначили политику приложению? docs.microsoft.com/en- us / graph / api / - person Tony Ju; 29.07.2019
comment
Я создаю токен доступа, используя этот URL, login.microsoftonline.com/common/oauth2/token, через почтовые запросы, как назначить политику приложения этому запросу - person curious_one; 29.07.2019
comment
@curious_one Чтобы использовать этот URL, вам потребуются параметры, такие как client_id (это идентификатор приложения) - person Tony Ju; 29.07.2019
comment
Я могу установить время истечения срока действия, но они не применимы к последующему созданию токенов доступа. В любом случае спасибо за вашу помощь. - person curious_one; 29.07.2019