使用 Microsoft CDS Web 设置 PrivilegeDepth API
Set PrivilegeDepth with Microsoft CDS Web API
我正在尝试为仅使用 Web API 的 Common Data Service 环境创建一个应用程序用户及其安全角色。我已经成功地创建了用户、角色并将一些权限关联到角色。我唯一不能做的就是设置 RolePrivilege 关联的 PrivilegeDepth。
这是我用来创建具有一些权限的角色的请求负载:
{
"businessunitid@odata.bind": "/businessunits(6efad0b7-160b-eb11-a812-000d3ab2a6be)",
"name": "Security Role Test",
"iscustomizable": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "iscustomizableanddeletable"
},
"canbedeleted": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canbedeleted"
},
"roleprivileges_association@odata.bind": [
"/privileges(2493b394-f9d7-4604-a6cb-13e1f240450d)",
"/privileges(707e9700-19ed-4cba-be06-9d7f6e845383)",
"/privileges(e62439f6-3666-4c0a-a732-bde205d8e938)",
"/privileges(e3f45b8e-4872-4bb5-8b84-01ee8f9c9da1)",
"/privileges(f36ff7e9-72b9-4882-afb6-f947de984f72)",
"/privileges(886b280c-6396-4d56-a0a3-2c1b0a50ceb0)"
]
}
RolePrivileges 都是以最低深度(用户)创建的。谁知道如何设置不同的深度?
另外,有没有更好的方式给角色分配权限?比如,将具有所需权限的 XML 上传到将其与角色相关联的端点?有没有更好的方法来指定权限而无需知道它们的 GUID?
如果你能帮助我,我将不胜感激。谢谢!
这应该是用于设置用户、本地等深度的负载。一定要测试这个,我现在没有机会测试它。 Read more
"roleprivileges_association@odata.bind": [
{
"privilegeid@odata.bind" : "/privileges(2493b394-f9d7-4604-a6cb-13e1f240450d)",
"depth" : 1
},
]
关于动态 guid 值而不是硬编码,只需进行另一个服务调用以拉取所有权限并迭代它们。 Read more
所以我找到了设置权限深度的解决方案。有一个动作,AddPrivelegesRole。
示例:
POST https://org12345.crm4.dynamics.com/api/data/v9.0/roles(1b3df93a-070f-eb11-a813-000d3a666701)/Microsoft.Dynamics.CRM.AddPrivilegesRole
{
"Privileges": [
{
"Depth": "0",
"PrivilegeId": "886b280c-6396-4d56-a0a3-2c1b0a50ceb0",
"BusinessUnitId": "6efad0b7-160b-eb11-a812-000d3ab2a6be"
},
{
"Depth": "1",
"PrivilegeId": "7863e80f-0ab2-4d67-a641-37d9f342c7e3",
"BusinessUnitId": "6efad0b7-160b-eb11-a812-000d3ab2a6be"
},
{
"Depth": "2",
"PrivilegeId": "d26fe964-230b-42dd-ad93-5cc879de411e",
"BusinessUnitId": "6efad0b7-160b-eb11-a812-000d3ab2a6be"
},
{
"Depth": "3",
"PrivilegeId": "ca6c7690-c935-46b3-bfd2-abb306c2acc0",
"BusinessUnitId": "6efad0b7-160b-eb11-a812-000d3ab2a6be"
}
]
}
我正在尝试为仅使用 Web API 的 Common Data Service 环境创建一个应用程序用户及其安全角色。我已经成功地创建了用户、角色并将一些权限关联到角色。我唯一不能做的就是设置 RolePrivilege 关联的 PrivilegeDepth。 这是我用来创建具有一些权限的角色的请求负载:
{
"businessunitid@odata.bind": "/businessunits(6efad0b7-160b-eb11-a812-000d3ab2a6be)",
"name": "Security Role Test",
"iscustomizable": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "iscustomizableanddeletable"
},
"canbedeleted": {
"Value": true,
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canbedeleted"
},
"roleprivileges_association@odata.bind": [
"/privileges(2493b394-f9d7-4604-a6cb-13e1f240450d)",
"/privileges(707e9700-19ed-4cba-be06-9d7f6e845383)",
"/privileges(e62439f6-3666-4c0a-a732-bde205d8e938)",
"/privileges(e3f45b8e-4872-4bb5-8b84-01ee8f9c9da1)",
"/privileges(f36ff7e9-72b9-4882-afb6-f947de984f72)",
"/privileges(886b280c-6396-4d56-a0a3-2c1b0a50ceb0)"
]
}
RolePrivileges 都是以最低深度(用户)创建的。谁知道如何设置不同的深度?
另外,有没有更好的方式给角色分配权限?比如,将具有所需权限的 XML 上传到将其与角色相关联的端点?有没有更好的方法来指定权限而无需知道它们的 GUID?
如果你能帮助我,我将不胜感激。谢谢!
这应该是用于设置用户、本地等深度的负载。一定要测试这个,我现在没有机会测试它。 Read more
"roleprivileges_association@odata.bind": [
{
"privilegeid@odata.bind" : "/privileges(2493b394-f9d7-4604-a6cb-13e1f240450d)",
"depth" : 1
},
]
关于动态 guid 值而不是硬编码,只需进行另一个服务调用以拉取所有权限并迭代它们。 Read more
所以我找到了设置权限深度的解决方案。有一个动作,AddPrivelegesRole。
示例:
POST https://org12345.crm4.dynamics.com/api/data/v9.0/roles(1b3df93a-070f-eb11-a813-000d3a666701)/Microsoft.Dynamics.CRM.AddPrivilegesRole
{
"Privileges": [
{
"Depth": "0",
"PrivilegeId": "886b280c-6396-4d56-a0a3-2c1b0a50ceb0",
"BusinessUnitId": "6efad0b7-160b-eb11-a812-000d3ab2a6be"
},
{
"Depth": "1",
"PrivilegeId": "7863e80f-0ab2-4d67-a641-37d9f342c7e3",
"BusinessUnitId": "6efad0b7-160b-eb11-a812-000d3ab2a6be"
},
{
"Depth": "2",
"PrivilegeId": "d26fe964-230b-42dd-ad93-5cc879de411e",
"BusinessUnitId": "6efad0b7-160b-eb11-a812-000d3ab2a6be"
},
{
"Depth": "3",
"PrivilegeId": "ca6c7690-c935-46b3-bfd2-abb306c2acc0",
"BusinessUnitId": "6efad0b7-160b-eb11-a812-000d3ab2a6be"
}
]
}