azure - Azure Active Directory - 在 java 中设置令牌到期
问题描述
我是 azure 的新手,我正在尝试在 java 中为我的访问令牌设置到期时间,但我找不到任何示例来设置它。请帮助如何设置到期时间,从 60 分钟到 1 天。
我想将“expires_in”:“3600”增加到至少 8 小时或更长。
在代码中,我无法获得任何方法,如 set param 或 set headers。请帮助我怎么做。
这是参数的链接:
谢谢你。
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>"
}
解决方案
您将需要使用 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"
}
推荐阅读
- azure - 我们如何在 Azure Key Vault 中配置临近到期事件时间?
- angular - 在角度 9 中单击按钮时自动聚焦在输入字段上
- dependency-management - 在 Debian 5.8.14 中安装旧版本的 CodeLite (v13)
- java - 更改遗留代码中的不可变类
- python - 如果存在打印,如何使 pytest 失败?
- c++ - 将函数模板原型作为参数传递
- r - 正则表达式,匹配一对单词的第一次,第二次,第三次等出现
- perl - 如何在 Mojo 中显示当前用户的信息 :: Log
- python - os.system 调用像串行执行多线程一样运行
- windows - 通过 Windows API 更改轻松访问设置:SystemParametersInfo