点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
SAP Cloud Platform移动服务专家您好,( Michael Jess ,马丁·格拉斯霍夫(),
在从内部部署SAP Mobile Platform迁移到SAP Cloud Platform Mobile Services的SAP客户中,我们具有以下要求:
某些移动应用程序使用不同的后端服务源。 其中一些是SAP系统。 对于他们,定制应用程序将生成SAP系统信任的SAP登录票证以进行身份验证。 但是在同一应用程序中,也使用了使用基本身份验证(针对Windows Active Directory验证)的后端。
在SAP Cloud Platform移动服务I中,可以使用执行基本身份验证的SCIM端点并将应用程序配置为也使用基本身份验证。 通过该身份验证,可以在为主体传播设置目标并且使用属性$ {name}时,使用Cloud Connector生成的X.509证书访问SAP Systems。 也可以通过这种方式访问基本身份验证端点。
但是我们面临的挑战如下:对于大多数用户,电子邮件地址也用作SAM帐户名。 但是有些用户在这里有所不同。 因此,我想到的最简单的解决方案是将Cloud Connector证书配置为使用属性$ {mail}而不是$ {name},但是当我这样做时,我在Postman中测试后端目标时看到以下错误:
无法在系统npl752.virtual:44300上为用户gwolf生成授权令牌。
在云连接器中,我收到以下错误消息:
2019-03-25 14:50:23,374 + 0100#ERROR#com.sap.core.connectivity.protocol.http.handlers.HttpAuthenticationHandler#tunnel-client-4-1#0x0f97e0ad#无法生成授权令牌Java .lang.IllegalStateException:对象CN所需的变量" null"在上下文中不可用。
我的SCIM服务返回此JSON:
{ "地址":[ { " country":" DE", " streetAddress":"街道编号", " postalCode":" 83342", " locality":" Tacherting", " type":"家" } ], " passwordStatus":"已启用", " passwordPolicy":" https://accounts.sap.com/policy/passwords/sap/web/1.1", " passwordSetTime":" 2017-08-12T09:01:10Z", "显示名称": "", " sourceSystem":" 15", " timeZone":"欧洲/柏林", "有效":是, "组":[], " userName":" gregor.wolf@gmail.com", " locale":" de", " passwordLoginTime":" 2017-10-02T11:22:40Z", "电话号码": [ { " type":"工作", "值":" + 49" } ], " urn:ietf:params:scim:schemas:extension:enterprise:2.0:User":{}, " passwordFailedLoginAttempts":" 0", "电子邮件":[ { " value":" gregor.wolf@gmail.com", "主要":正确 } ], " loginTime":" 2017-10-02T11:22:40Z", "元":{ " created":" 2019-03-25T09:00:00Z", " location":" https://xyz.accounts.ondemand.com/service/scim/Users/P000111", " lastModified":" 2017-08-29T16:37:16Z", " version":" 1.0", " resourceType":"用户" }, "方案":[ " urn:ietf:params:scim:schemas:core:2.0:User", " urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", " urn:sap:cloud:scim:schemas:extension:custom:2.0:User" ], "名称": { " givenName":"格雷戈", " familyName":" Wolf", " honorificPrefix":"先生。 }, " id":" P000111", " userType":"公共", " mailVerified":" TRUE" }
是否可以使用SCIM中的属性之一基于该属性创建Cloud Connector X.509证书?
最诚挚的问候
格雷戈尔
当X.509属性映射在原始用户属性(此处为:SCIM或AD)未映射到"名称"或"邮件"的意义上时,我遇到了类似的错误 授权响应中完全缺少(Cloud Connector属性)或原始用户属性。
SAML示例:
(SAML身份验证源属性" signInName"映射到"名称")
(云连接器设置)
在您的情况下,我将尝试像
一样直接在根级别将" mail"和" name"属性添加到SCIM响应中看看在客户端产生了什么。
hth,v。
btw:打开CC的最大跟踪和调试级别-然后,您将看到有效负载到达CC,并可以识别要传输的数据(或 不是:)从$ authSource获取$ name和$ mail。
不确定我是否完全理解该问题,但是如果您要对后端SAP系统进行身份验证并使用SCIAS,则尝试使用LOGIN_NAME字段-然后通过SAP用户ID或 等于ALIAS设置。 这样,我根本不会更改短期证书(这意味着在生成证书时将其保留为Attribute $ {name})-我只是通过Name ID发送其他内容。 我在一个最近的项目上都尝试过并且都成功。 第一个 将用户的ALIAS字段更新为等于P号-在您的情况下为P000111。 在这种情况下,当我加载短期证书(使用CERTRULE)时,我选择ALIAS作为用户设置。 第二个 这更简单了,我将SCIAS中的用户的LOGIN_NAME更新为等于其SAP用户ID。 相同的短期证书,但是这次我选择Userid作为User设置。
还有其他一些问题,以防万一我误解了:
-您是否使用CERTRULE将生成的短期证书(使用属性$ {mail})加载到后端系统,并且 您做了选择的用户设置。
-您是否尝试过更改SAPCP信任设置(用于子帐户)用户ID源,以使用属性代替"主题"选项。 选择属性,然后在其中添加属性名称。 我会试一试。
感谢
Phil
其他更新。 对于针对SAP CP Mobile Service端点的测试,我使用邮递员。 请求CSRF令牌后,我用以下POST请求正文调用Connections端点:
这是我得到的答复:
您会注意到结尾处的属性Email为空。 即使在我已经将SCIM数据调整为直接在第一级上包含mail和Email属性之后。
hm,所以我假设情况是这样的:
-通过针对$ endpoint1的基本身份验证进行身份验证
-通过CC通过CC将主体传播到CC到本地SAP系统中
-凭据来自$ endpoint1
-将$ endpoint1:username映射到CC -cert:$ name打算
-将$ endpoint1:email映射到CC-cert:$ mail目标
-将CC证书(以及来自证书的$ name和$ mail)传递给SCPms
我是在正确的轨道上吗? 还是在某处?-SCPms无法正确识别$ mail
嗨,格雷戈尔,
您是否在IdP下的标签中添加了(e)mail属性?
一周热门 更多>