我正在使用 Microsoft 信息保护 (MIP) SDK 从文件中删除敏感度标签:
我已使用相同的令牌在同一租户内成功创建了两个标签。
现在我尝试删除使用相同令牌在同一租户中创建的标签:
这是我在尝试删除标签 B时收到的错误:
System.AggregateException: One or more errors occurred. (The service didn't accept the
auth token. Challenge:['Bearer resource="https://aadrm.com", realm="",
authorization="https://login.windows.net/common/oauth2/authorize"']
HttpRequest.Id=545b6654-31a7-4016-8d49-875e6678aab8,
CorrelationId=b373b0c3-1495-4461-84f8-5f34404299f0,
CorrelationId.Description=ProtectionEngine,
CorrelationId=7d063033-43c3-4971-900c-2ac3eefe29be,
CorrelationId.Description=FileEngine)
这是我的代码。当设置
fileHandler
时出现错误,如下所示,使用 Label B:
fileEngine = MIPHelper.GetFileEngine();
fileHandler = fileEngine.CreateFileHandlerAsync(fileFullPath, fileFullPath, true).Result;
public static IFileEngine GetFileEngine()
{
MIP.Initialize(MipComponent.File);
ApplicationInfo appInfo = new ApplicationInfo()
{
ApplicationId = "AppId",
ApplicationName = "MIPTest",
ApplicationVersion = "1.0.0"
};
AuthDelegateImplementation authDelegate = new AuthDelegateImplementation(appInfo);
MipConfiguration mipConfiguration = new MipConfiguration(
appInfo, "mip_data", Microsoft.InformationProtection.LogLevel.Trace, false
);
mipConfiguration.LoggerConfigurationOverride = new LoggerConfiguration(10, 40, false);
var mipContext = MIP.CreateMipContext(mipConfiguration);
var profileSettings = new FileProfileSettings(
mipContext, CacheStorageType.OnDiskEncrypted, new ConsentDelegateImplementation()
);
profile = Task.Run(async () => await MIP.LoadFileProfileAsync(profileSettings)).Result;
var engineSettings = new FileEngineSettings(userName, authDelegate, "", "ko-kr");
engineSettings.Identity = new Identity(userName);
engine = Task.Run(async () => await profile.AddEngineAsync(engineSettings)).Result;
return engine;
}
我已经确定了问题并解决了它。最初,我通过设置
AuthDelegateImplementation
来配置该流程以获取身份验证令牌,并通过每小时运行的调度程序将其存储在数据库中。然后令牌被检索并重新使用。 (作为参考,我将此逻辑基于此处的示例:AuthDelegateImplementation.cs。在此示例中,AcquireToken
参数authority
和resource
被硬编码以获取令牌。)
使用这种方法,我成功地从文件中删除了敏感度标签,而没有访问控制限制。但是,对于具有访问控制设置的标签,会出现前面描述的错误。
为了解决这个问题,我改用了另一种方法,每次使用该功能时都会获取新的身份验证令牌。这解决了问题,并且我验证了敏感度标签(包括具有访问控制设置的敏感度标签)已成功从文件中删除。
我已经确定了问题并解决了它。最初,我通过设置 AuthDelegateImplementation 来配置该流程,以获取身份验证令牌,并通过每小时运行的调度程序将其存储在数据库中。然后令牌被检索并重新使用。 (作为参考,我的逻辑基于此处的示例:AuthDelegateImplementation.cs。在此示例中,AcquireToken 参数authority 和resource 被硬编码以获取令牌。)
使用这种方法,我成功地从文件中删除了敏感度标签,而没有访问控制限制。但是,对于具有访问控制设置的标签,会出现前面描述的错误。
为了解决这个问题,我改用了另一种方法,每次使用该功能时都会获取新的身份验证令牌。这解决了问题,并且我验证了敏感度标签(包括具有访问控制设置的敏感度标签)已成功从文件中删除。