You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何生成适用于Microsoft Information Protection Java SDK的AccessToken

生成Microsoft Information Protection SDK兼容令牌的正确方式

MIP SDK不兼容普通Graph API令牌的核心原因是资源/受众不匹配——Graph令牌的受众是https://graph.microsoft.com,而MIP需要针对特定信息保护服务的令牌。以下是具体实现步骤:

1. 明确MIP所需的资源与范围

根据你使用的信息保护服务版本,选择对应的目标资源和请求范围:

  • 传统Azure信息保护(AIP)服务:
    • 目标资源ID:https://aadrm.com
    • 请求范围:https://aadrm.com/user_impersonation
  • 新版Microsoft Purview信息保护服务:
    • 目标资源ID:https://api.security.microsoft.com
    • 用户上下文流程范围:https://api.security.microsoft.com/user_impersonation
    • 客户端凭证流程范围:https://api.security.microsoft.com/.default

2. 通过SSO/OAuth流程获取合规令牌

无论采用授权码流、设备码流还是其他OAuth2标准流程,只要在请求令牌时指定上述正确的资源或范围,就能生成MIP可识别的令牌。

示例:授权码流获取令牌(Java)

// 构建请求时指定MIP专属范围
String mipScope = "https://aadrm.com/user_impersonation offline_access";
AuthorizationCodeParameters authParams = AuthorizationCodeParameters.builder()
    .authorizationCode(authorizationCode)
    .redirectUri(new URI("your-redirect-uri"))
    .scope(Collections.singleton(mipScope))
    .build();

// 使用MSAL客户端获取令牌
IAuthenticationResult authResult = msalPublicClientApp.acquireToken(authParams).join();
String mipValidToken = authResult.accessToken();

3. 修改AuthDelegate使用预生成令牌

不需要再在AuthDelegate内部做令牌请求,直接返回预生成的合规令牌即可:

public class PreTokenAuthDelegate implements IAuthDelegate {
    private final String validMipToken;

    public PreTokenAuthDelegate(String token) {
        this.validMipToken = token;
    }

    @Override
    public String acquireToken(String authority, String resource, String scope) {
        // 直接返回预先生成的MIP兼容令牌
        return validMipToken;
    }
}

然后将这个委托传入FileEngineSettings:

FileEngineSettings engineSettings = new FileEngineSettings();
engineSettings.setAuthDelegate(new PreTokenAuthDelegate(mipValidToken));
// 补充其他必要设置(如租户ID、客户端ID等)

关键注意点

  • 必须验证令牌的aud(受众)声明是否匹配对应的资源ID,可以用jwt.ms解码查看
  • 如果令牌过期,需要在AuthDelegate中实现刷新逻辑,确保操作时始终有有效令牌
  • 多租户场景下,要确保令牌是针对目标租户颁发的,避免跨租户权限问题

内容的提问来源于stack exchange,提问作者Onkar Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 15:52:23