使用Graph API为应用分配第二个tokenLifetimePolicy失败,能否分配多个?
无法为单个应用分配多个tokenLifetimePolicy的问题
使用Graph API的POST /applications/{id}/tokenLifetimePolicies/$ref端点为应用分配第二个tokenLifetimePolicy时失败,调用的请求如下:
POST https://graph.microsoft.com/v1.0/applications/{myAPPiD}/tokenLifetimePolicies/$ref Content-Type: application/json { "@odata.id":"https://graph.microsoft.com/v1.0/policies/tokenLifetimePolicies/{2ndPolicyiD}" }
重现步骤
- 创建tokenLifetimePolicies:调用
POST policies/tokenLifetimePolicies接口 - 通过
/applications/{id}/tokenLifetimePolicies/$ref端点将一个tokenLifetimePolicy分配给应用 - 尝试用同一端点分配另一个不同策略ID时,出现错误:
- HTTP状态码:409
- 错误代码:
Request_MultipleObjectsWithSameKeyValue
问题咨询
是否无法为单个目标应用分配多个tokenLifetimePolicy?
回答
是的,单个Azure AD应用只能关联一个tokenLifetimePolicy。
当你尝试为同一应用分配第二个策略时,Graph API会返回409冲突错误(Request_MultipleObjectsWithSameKeyValue),这是因为应用与tokenLifetimePolicy的关联是一对一的关系,不支持多策略绑定。
如果需要应用使用不同的令牌生命周期规则,有两种可行方案:
- 先移除已关联的策略(调用
DELETE /applications/{id}/tokenLifetimePolicies/{policyId}/$ref),再分配新的策略; - 根据实际需求,将多个策略的规则合并到单个tokenLifetimePolicy中。
内容的提问来源于stack exchange,提问作者Somit Mitra
相关产品推荐
相关产品推荐

