IDM分配

2020-08-25 18:30发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

晚上好

我们在这里阅读了一些与我的查询相关的信息,但我正在寻找有关...的更多详细信息

1)是否有任何方法在IDM业务角色/特权分配屏幕中分配特权,例如通过记事本或excel或任何类似的解决方案将所有特权分配给用户的特权,将所有特权上载到特定系统?

2)我在专家讨论有关MXREF_MX_PRIVILEGE之类的一些参数的过程中看到了一些答案(不确定我上面的查询是否与此对象相关),但在分析人员看来,我们不提供对任何开发人员Studio的访问权限,并且 我们只提供访问IDM角色分配屏幕,如何实现批量分配?

或者还有其他简单的建议来实现这种理解,即我们将不提供对临时表更改/开发人员sutios的任何访问。 请告知步骤。

谢谢。

idm.jpg (28.4 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

晚上好

我们在这里阅读了一些与我的查询相关的信息,但我正在寻找有关...的更多详细信息

1)是否有任何方法在IDM业务角色/特权分配屏幕中分配特权,例如通过记事本或excel或任何类似的解决方案将所有特权分配给用户的特权,将所有特权上载到特定系统?

2)我在专家讨论有关MXREF_MX_PRIVILEGE之类的一些参数的过程中看到了一些答案(不确定我上面的查询是否与此对象相关),但在分析人员看来,我们不提供对任何开发人员Studio的访问权限,并且 我们只提供访问IDM角色分配屏幕,如何实现批量分配?

或者还有其他简单的建议来实现这种理解,即我们将不提供对临时表更改/开发人员sutios的任何访问。 请告知步骤。

谢谢。

idm.jpg (28.4 kB)
付费偷看设置
发送
5条回答
太Q了
1楼-- · 2020-08-25 19:29

您好,

问题是,使用常规的"更改用户"任务,您只能更改所选的用户,而不能进行批量处理。 在我的用例中,用户管理部门希望为一个或多个用户分配各种特权。

所以,我要做的是:
1)创建一个具有文件上载属性的自助服务表单,另一个人 选择要处理的存储库的属性,我还添加了一个名为JOB_ID的属性,在其中设置了触发的作业的名称(步骤3)


2)为此表单创建一个后期处理,其中包含两个处理步骤; 第一个将上传的文件复制到预定义的文件夹中(并将备份复制到另一个文件中); 第二个流程触发一个处理请求的作业



该作业触发过程创建了一个临时 使用函数uSetGlobalVar的全局变量,该函数保存执行该过程的用户的ID。 这是因为UI表单的属性值是临时存储在此ID上的,以后我需要在工作中使用这些值。

3)创建一个处理必要动作的工作; 在我的情况下,从上传文件中填充了一个z表,完成了特权分配,然后再次清除了z表以及全局变量



要获取所需的信息(由用户在UI表单中填写),我将使用函数uGetGlobalVar再次获取全局变量值。 再次拥有userID时,我可以使用函数uIS_GetValue从UI表单获取Z属性的输入值。

通过这种配置,我不仅涵盖了大量处理(例如大规模处理,例如 大量锁定/解锁用户,权限替换,属性维护等)。

问候,Richard

空代码
2楼-- · 2020-08-25 19:05

Hi Steffi,
文件 上传的内容作为属性值存储在执行用户的MSKEY上。 因此,我将一个简单的文件复制到服务器路径并删除了临时文件。 之后的属性。 复制过程是具有一些输入属性的To Generic传递:

在脚本中包含一个修复文件 根据所选的作业活动设置名称(该名称由预定义的作业请求); 一个副本存储在"处理"文件夹中,另一个带有时间戳的副本存储在备份文件夹中(用于在处理过程中出现任何错误的情况下,随后对其进行检查)。 在这里,我使用诸如uFromHex和uToFile之类的内部函数。

//主要功能:custom_copyFileToShare
//脚本将上传的文件存储在进程目录中
//根据活动以及在
//带有时间戳的备份目录

 函数custom_copyFileToShare(Par){

     var userMskey = Par.get(" MSKEY");
     var activity = Par.get(" Z_JOB_ACTIVITY");
     var fileAttribute = Par.get(" FILE_ATTRIBUTE");
     var DirectoryProcess = Par.get(" FILE_DIRECTORY_PROCESS");
     var DirectoryBackup = Par.get(" FILE_DIRECTORY_BACKUP");

    //转变成 "\\"
    //**********************************
     DirectoryProcess = uReplaceString(DirectoryProcess," \\"," \\\\");
     DirectoryBackup = uReplaceString(DirectoryBackup," \\"," \\\\");

    //从二进制文件获取文件名
    //**********************************
     var fileArray = fileAttribute.split(":");
     var filefullname = fileArray [0];
     var binary = fileArray [1];
     var filePlain = uFromHex(binary);

    //根据活动设置进程文件名
    //****************************************************  *
     var processfilename ="";
     if(活动=="锁定用户"){
         processfilename =" UserLockList.csv";
     } else if(活动=="解锁用户"){
         processfilename =" UserUnlockList.csv";
     } else if(活动=="更改有效性"){
         processfilename =" UserValidity.csv";
     } else if(活动=="角色分配"){
         processfilename =" UserRoleAssignment.csv";
     }否则,如果(活动=="更新公司列表"){
         processfilename =" CompanyList.csv";
     }否则,如果(活动=="更新公司任务"){
         processfilename =" CompanyAssignmentList.csv";
     } else if(活动=="角色替换"){
         processfilename =" RoleReplacementList.csv";
     }其他{
         uSkip(2);
     }

    //将时间戳添加到文件名
    //**********************************
     var file = processfilename.split("。");
     var desc = file [0];
     var ext = file [1];
     var timestamp = custom_getTimestamp();
     var backupfilename = desc +" _" +时间戳+"。  +分机;

    //设置文件路径
    //**********************************
     var path_process = DirectoryProcess +" \\" + processfilename;
     var path_backup = DirectoryBackup +" \\" +备份文件名;

    //将文件存储在目录中
    //**********************************
     uToFile(path_process,filePlain," FALSE");
     uWarning("当前文件已下载到Share [" + path_process +"]"));
     uToFile(path_backup,filePlain," FALSE");
     uWarning("备份文件已下载到Share [" + path_backup +"]"));

     返回面值
 }
 
ZJXianG
3楼-- · 2020-08-25 19:21

您好,

由于存在一些潜在的安全问题,因此我将强烈考虑您按照所考虑的方式进行此操作。 Steffi使用的方法将更加安全。

如果您具有仅从文件上传的UI进程,则可以使用更少的控件来确保文件内容正确。 如果您是从工作中运行此文件,则可以从UI上查看文件的内容,也可以进行导航。

现在,您很可能在UI进程和文件位置上具有一些访问控制。 上传文件已存储(以及如何生成),但对我而言并不十分安全。

所以我想将其用作另一种观点,记住这些观点就像鼻子一样,我们所有人都有! :)

祝你好运!

马特

wang628962
4楼-- · 2020-08-25 19:19

@Matt:我认为我的过程没有那么安全,因为我也只是读入了具有某些预期内容的文件内容(工作的第一步是将"从ASCII"转换为临时文件)

我唯一看到的区别是,我为此创建了一个全新的存储库,因此用户可以通过存储库常量提供其参数(文件名,存储库等) 然后我将其用于开始的工作中。

在这方面,我的方式可能更不安全,因为对于具有输入参数的作业,我需要授予他们访问admin UI的"系统配置"选项卡的权限。 可能会在存储库中造成各种破坏。

这就是为什么我喜欢Richards的方法,因为我可以更好地控制它们在UI遮罩上实际看到的内容 只能创建一个,而不是给他们访问预定义的文件。

致谢,

Steffi。

bbpeas
5楼-- · 2020-08-25 19:22

感谢 您所有的答复。

请问我是否可以在IDM屏幕上或通过webdynpro模式找到任何方式,是否可以看到像上传文件的按钮一样,IDM可以大规模读取和上传特权。

谁的议程是在不访问Eclipse或其他工具的情况下使用特权的大规模分配。

一周热门 更多>