首页 > 解决方案 > Azure Active Directory - 在 java 中设置令牌到期

问题描述

我是 azure 的新手,我正在尝试在 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>"
}

标签: azureactive-directoryazure-active-directoryskype-for-businessucwa

解决方案


您将需要使用 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 代码中执行此操作,您可以使用 graph 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"
}

推荐阅读