到年底,每个人都在慢慢盘点。
对我而言,今年在SAP和Windows之间实施单点登录(SSO)的项目给人留下了深刻的印象。 在本文中,我将介绍实施和项目管理的经验,陷阱,发现和结论。

该公司是比利时的一家大型运输公司,结合了地铁,电车和公共汽车。 使用许多工具:公司网站,邮件,应用程序服务,Sharepoint,档案管理员,当然还有SAP,有1万多名员工,其中近2000名是后台办公人员。
SAP无处不在:从簿记和人力资源到运输单位的移动登记,事故记录,分析,采购,仓储等。
问题:
- SAP PC个人计算机用户是一个单独的应用程序,您需要输入密码才能输入该应用程序
- 首先,您需要输入密码,然后记住。 技术支持被迫接听创建和更改密码的电话。
- 从用户的角度来看,额外的密码是一件麻烦事。 人们将密码存储在纸上或使其变得过于简单。 安全人员对严重违规大喊大叫。
- PC密码的最低要求与SAP中的密码设置不匹配。 如果将它们带到一个共同点,最好立即实施SSO。
目标:在Windows和SAP之间实施SSO,以便在登录您的PC帐户时,用户无需输入密码即可登录SAP。
如果您不使用SAP,那么将从项目管理的角度对本文感兴趣,因为将在框中列出这些详细信息的说明。
下切:
- 适用范围
1.1范围人
1.2瞄准镜系统 - 组成部分
2.1更改系统参数
2.2 Windows Active Directory(AD)
2.3 SAP安全登录客户端(SLC)
2.4将SAP用户绑定到其AD
2.5修改SAP logon.ini文件 - 测试中
- SNC是一个安全漏洞
- 团队合作
- 商业资讯
- 翻译困难
- 总结与结论
引言
展望未来,如果您不急于填写标准锥体,请在项目开始时为自己澄清以下问题:
- 项目范围 (系统,用户-我们以什么顺序执行,优先级在哪里,如果出现问题可以丢弃什么,应该访问哪些用户等)
- 受项目影响的主要部门 (即使该项目是切线的,提前告知每个人仍然很重要)
- 您的权力 (在这里逃跑并非易事-在一家欧洲公司中,一切都基于同意和自愿帮助的意愿。如果部门表示他们没有资源,则几乎不可能施加压力并“强迫”。但是例如,您可以致电外部顾问寻求帮助)
- 时间 (针对整个项目的整体和特定部分)
- 批准程序 (官僚制度-在大公司中,这不是最后一个问题)
- 可能的困难 (所有。可能。困难。)
我们已经多次更改了项目的成员身份:最初,它只是SAP中的授权部门和管理员部门(基本组件)。 然后,它们由Windows中负责授权的部门(Active Directory,AD)和更新实施部门(打包),数据库部门和移动应用程序部门等组成。
邀请了一位外部顾问来解决此问题的技术问题,而我作为项目经理(PM)成为了我,作为SAP中的授权人员(因此,本文中有关SAP中授权的更多信息将比其他人更多)。
重要说明:我们在SAP中提供的所有访问都是自定义的。 我们不使用系统提供的标准角色,而是按部门,按职位,按职能创建新角色。 迄今为止,我们还没有SAP和Windows AD用户之间的同步。 例如,如果您的用户在本地网络中具有管理员权限,则并不意味着他也是SAP的管理员。
1.范围
1.1范围人
我们公司中的人员通过个人计算机上的应用程序(瘦客户端-SAP Logon GUI)使用SAP,但不仅如此。 如何计算分配下的用户?
我们以每天通过笔记本电脑通过SAP Logon(SAP用户类型对话)进行连接的所有人为基础。 在此类别中,整个后端办公室-行政人员,bukh,Ichars,开发人员,测试人员,后勤等。
排除在外:
- 那些拥有台式机而不是笔记本电脑的人
- 8,000个从未打开过SAP登录,而是通过网站和应用程序使用SAP的用户(SAP用户类型为Communication)
- 所有外部用户(不是员工,但必须通过VPN登录到系统)
1.2范围系统
在我们公司中,SAP使用六个活动环境( ECC,BI,SRM,Netweaver,PI,解决方案管理器 ),而没有计算沙盒。 他们每个人都有自己的DEV , ACC , PRD-即 实际上,它是6 * 3 = 18个系统。
通过元音投票,决定只拍摄前四个景观。 PI和SM由一小部分管理员使用,并且需要更新系统本身(至少将SAP_BASIS组件更新为740版)。 否则,不支持sncwizard事务,并且手动执行此操作对于10到20个人来说太麻烦了。
2.组件
对这些详细信息感兴趣的人可以在SAP网站上找到分步说明以及各种可用的方法(我们选择基于Kerberos的SSO ,但这并不总是显而易见的选择)。
从(非常简单的)角度来看,SSO是SAP中的一个附加组件,允许您使用Windows帐户登录。 您打开计算机,输入密码,然后只需双击就可以登录SAP。
为使魔术发挥作用,您需要5个组件:

2.1更改系统参数(实例SAP)
在SAP系统( ECC , BI , SRM , Netweaver )中,您需要激活参数snc / enable = 1。 这是通过sncwizard完成的,包括准备工作,系统重新启动和最终激活步骤。

在这些顾问的帮助下,其他部门的帮助下以及反复试验后,我们确定了参数。 这里最困难的事情是重新启动系统。
在生产中始终很难重新启动PRD;工作日以继夜地进行。 在运输公司中,情况变得更加复杂:运输从早上五点移动到早上一点,甚至在周末也是如此。 珠三角的任何困难不仅会影响公司的员工,还会影响整个城市和成千上万人。 换句话说,您需要最小化系统不可用的时间,并在可能的情况下与其他更新结合使用。 同时,官僚机构不应被低估:重新启动是日期,时间,持续时间(如果参数不是第一次保存)和业务通知。
我们有四个SAP PRD系统:ECC,Netweaver,SRM,BI-用于重新启动
ECC是最重要的,所有实时数据和主要传输都与之相关:公交车,电车。
Netweaver系统(事故,移动应用程序)以及ECC系统的数据甚至在凌晨3点都被使用-如果电车不走,那么维修人员就走。
SRM系统-主要用于采购,可在18:00之后的任何一天使用。
使用BI的困难在于,在周末,来自ECC的数据流会流向系统,此外,有时BI的报告会在工作时间之外被高层管理人员使用。
总共花了2周时间重新启动所有PRD。
PS在重新启动每个PRD系统之前,先重新启动所有DEV和ACC,这比较容易协调,但也需要进行计划。
2.2 Windows Active Directory(AD)
Active Directory需要创建一个特殊的技术用户(SAP Kerberos)。 该用户将与Windows联系以获取SAP输入票证的副本。 一个这样的AD服务用户对于所有SAP系统而言就足够了。

这部分完全由我们的外部顾问和Active Directory团队完成,它包括多次迭代以优化参数和配置特殊库,但对我而言,它仍然更像是一个“黑匣子”。
2.3在用户计算机上安装SAP Secure Login Client(SLC)

该程序本身不执行任何操作。 您需要它存储来自AD的票证,该票证可在登录Windows会话时确认您的用户,并在必要时将此票证提交给SAP进行授权。 可以在项目开始时立即为所有用户安装SLC-如果没有其他SSO组件,它将无法正常工作。
2.4将SAP用户绑定到其AD用户
如前所述,在我们公司中没有单一的用户管理,可以从不同的团队获得对不同系统的访问。 在这种情况下,SAP中的用户登录与Windows中的用户名不同,例如,AD中的用户#45011是Ivan Ivanov或IVANOVI 。 需要在SNC中填充此束(通过事务SU01,字段SNC,p:CN = ADname @域)。

我们公司没有SAP身份管理。 因此,有必要解决两个问题:创建新用户和更新现有用户的参数。
建立新用户
在主系统(ECC)中,每个工作日都会创建4-6个新的登录名,每年几乎有1000个新用户。 该过程是自动化的:创建用户时,程序会填写其地址,名称,基本设置。 我们决定该程序还应该在用户创建阶段填写SNC字段,而不管此人之后是否在SAP中需要SSO。
要注意的是,对于每个用户,您需要在AD中填写一个唯一的自己的名称,即 每个人的参数都不一样-即 程序本身必须在AD中查找用户名并将其填充到SAP中。
开发人员迅速更新了程序。 代码和基本测试花了两天时间,但是ACC中用于验证的数据不适合我们(AD未更新),因此我们立即将更改发送给PRD。 事实证明,所有事情都比我们想象的要复杂。 在调查过程中,我们得出以下方案:

- 首先,在HR系统中创建用户(在SAP中可以在PA20中看到它们 )
- 然后将它们以及有关部门,职位,职位,是否为主要链接等数据复制到Z表中。
- 然后将用户数据发送到AD,系统在Windows中创建一个用户,并在AD和邮件中给他一个名字
- 此图中的PI流程仅是为了了解它是第三系统的第三方过程
- 数据被复制回SAP(在新的Z表中),这次只是AD名称和邮件地址
- 在最后一个阶段,启动了Z程序,该程序在SAP( SU01 )中创建用户。 并非所有在HR系统中创建的用户都将稍后在SAP中创建,而是有许多最终不使用SAP的用户
搜索,协调更改,商定更新和加载/卸载表的时间表花了将近两个星期的时间。 这是一个同步问题-用户创建程序(第6点)应在所有其他程序都已经制定出来并将数据复制到表之后严格启动。 结果,我们跟踪了两个星期,哪个程序结束,什么时候结束,并调试了该方案。
使用填充的SNC字段创建用户,但没有必需的AD名称时,在SU01中,您可以看到所有不幸的用户-关联到一个不存在的AD用户的关联。

更新现有的用户设置
正是因为我们的登录SAP和Windows不匹配,所以我们无法使用标准SAP解决方案在SNC字段(通过SNC1 程序进行 RSUSR300 )中进行批量填充。
结果,我使用一个临时脚本( SAP eCATT )更新了1万名现有用户的数据,手动上传用户数据并创建一个变体。 为了获得成功,我不得不对珠三角和ACC中的eCATT系统都开放开放,并承诺向开发人员提供数百万个cookie。
2.5修改SAP logon.ini文件
从技术上讲,这是1分钟。 只需要在文件属性中指出可以通过SNC进行连接。

困难在于该文件位于用户PC的本地位置,并且有两千个用户需要对其进行更改。
实际上,对我们来说,最终的实现是在用户之间分发新的sap.logon.ini文件,而不是更改PRD参数的时刻。 因为即使前四个组件已经完成,而后五个组件尚未完成,魔术也不会发生。
最后一段出现了一个小事件。 我向管理层报告说,我们有2,000位用户将安装此更新,当需要实施此更新时,他们给我发送了一个状态,其中有3500个,对此我感到不安。 这是因为就我而言,我仅看到活跃的SAP用户,但实际上更新已发送给所有个人笔记本电脑,而公司的笔记本电脑数量更多。 感谢上帝,没有出现技术错误。
3.测试
如何测试SSO? 它是否有效。 我们的开发人员哼了一声,并说您不需要测试任何东西,只要一切在沙盒中正常运行,就需要将其发送到生产环境。 当然可以 没有人会说他用错误编写代码。
您需要检查:
- 重新启动后SAP登录是否立即与SSO一起使用
- 用户与VPN连接时可以使用SSO吗
- 其他系统修改SAP登录的开发人员遇到的困难
SSO不是一个程序;很难始终如一地实现它-DEV-ACC-PRD。 但是,必须进行初始测试才能发现所有可能出错的地方。 这种情况下的测试是在所有组件都已运行时分发新的SAP logon.ini。 我们与开发人员一起测试了DEV和ACC,对PRD进行了新的SAP logon.ini测试,并选择了一些商业用户。
他们发现了什么:
- 有时(每500个案例1个案例),您需要完全重新安装SAP登录或SLC
- 有权更改其他用户的关键用户 (在下一段中有更多说明)
4. SNC是一个安全漏洞
修改SNC字段怎么办?
事实是,通过将另一个用户(在SU01中)的SNC字段更改为您自己的用户,您可以在其他人的帐户下进行连接,而无需更改密码。 系统将简单地询问您选择哪个用户,您的还是其他用户。 但是,如果您这样做,明天就不会有人注意到,因为密码保持不变。

在任何公司中,都有从事用户管理的人员 。 通常,这些人监视用户创建( SU01 )和对其的访问( PFCG )以及密码更新。 逻辑上他们也可以填写SNC字段。
当公司需要将用户管理和关键用户分开时,就会出现问题。 管理员创建用户,关键用户(如有必要)更改其数据:用户参数,他的语言,他的位置等。
在SAP中,没有用于更改SNC字段的单独控制步骤。 有权更改用户的每个人(对象S_USER_GRP,ACTVT 02 )也可以更改SNC字段(而更改密码需要相同的对象,但使用ACTVT 05 )。

可能有几种解决方案:
- 剥夺关键用户对SU01的访问权限,作为回应,将SU2和SU3分配给所有人,用户可以在其中更改自己的参数
- 取消对SU01的访问权限,并进行Z事务处理,其中不会显示SNC选项卡
- 离开SU01,但通过特殊控制保护SNC字段
结果,我们通过创建自定义授权对象并在其上绑定SU01程序来选择后一种选项。 但是,正如后来发现的那样,SAP有一个类似的解决方案-您可以为单个SU01字段激活扩展维护 ( 注释1882254 )。
5.团队合作
在项目期间,我遇到了团队合作的所有困难,并发现了许多基本真理:
- 从来没有太多时间 。 时间余量是PM可以提供的最佳时间。
- 应该有一个基本的项目计划 ,但是需要每周进行审查,以留出很大的灵活性。 我们走得更快的某个地方,当场遭到践踏。
- IT部门的成年叔叔有时在会计方面与女孩没有什么不同 :他们只是不喜欢对方,所以拒绝彼此合作。 再次有必要解决从属问题。
- 部门经常会阻碍项目的批准 ,因为不清楚谁负责实施以及谁的预算增加了时间。 让经理们直接讨论一切很重要。
- 不可预见的情况时有发生 。 最好的办法是及时与所有相关人员进行通信,写信,打电话,发送短信。
- 没有什么比召开个人会议更好的了 。 与通过邮件讨论相比,解决问题的速度快了很多倍。 另一方面,所有个人安排都应在其后立即附上一封后续信件(以解决问题且不要忘记)
- IT项目中的项目经理只能信任人 。 实际上,您不知道将执行此操作或执行该操作需要多少时间:例如,在AD中为Kerberos创建用户是10分钟还是3天? 而且没有办法检查测试是否真的停止或有人在鬼混。 它仍然只是为了信任。
另外,很大程度上取决于顾问的毅力。 一个人,或者一个发展顾问或项目经理,应该像一颗子弹般刺穿官僚机构的墙。 在这种情况下,我有些幸运,我们邀请的顾问很烦人,有时甚至难以忍受(很难让他听到一些东西),但他知道自己的事:他报告了任何问题并立即停下来,直到问题解决后才冷静下来。
在大型公司中,影响最终用户的变更必须及时发布,并应提前宣布。
在我们的案例中,有必要通知所有用户,现在他们不需要密码即可进入SAP。 另外,有必要提供第一条支持热线的技术文档,以及在实施后可能出现的所有可能的错误。
我必须承认,沟通可能会出错。
首先 ,我们在公司网站上向用户发布了有关SSO的信息,而不是通过信函形式。 您多久阅读一次公司网站? SAP .
- , , , , , , , ( - ?) , .
- , Go Live, , ( 2 ), . .
7. fuck-up
5- SSO SAP, , .
: . , — . . 2- , 500 -. .

. “use a default language SAP logon” — , , ( SU01 , Defaults ). « SAP» .
, -, .

- .
8.
SSO — , . , 1-2 , 3- .
. . , , , .
关于SSO的许多事情可能已经很久了,至少是Google。例如,关于服务器对AD的请求或SNC字段。但是,存在着永恒的时间匮乏之类的事情。作为专家,您必须先谷歌搜索,然后作为项目经理(尤其是如果您无法在前半小时解决问题,并且没有接受专门的教育),则应该找到解决问题的最捷径。
, , .
固体:
- 3个月中的主要时间用于协调和协调行动
- 参与此项目的部门开始更好地了解彼此的工作。
- 在测试期间,您需要在最终用户的位置进行自我介绍-因此,您希望在信息消息中以及基本设置中看到它。
- SAP的SSO已实现。 用户很高兴,并且已经忘记了需要记住SAP密码的时候了。 给技术支持打电话的频率较低,欢呼。