如何通过B1 Service Layer获取SSO登录对应的SAP内部用户?
解决SAP Business One Service Layer中AD账号关联内部用户的查询问题
在通过AD账号成功登录Service Layer后,默认的Users接口返回字段不包含AD关联信息,可通过以下几种方式获取对应SAP内部用户:
指定返回AD关联字段
调用Users接口时,使用$select参数明确指定需要返回的AD相关字段(如AdUser、InternalKey),请求示例:GET https://hana:50000/b1s/v1/Users?$select=InternalKey,UserName,AdUser,FirstName,LastName过滤当前登录的AD用户
结合$filter参数,根据已登录的AD账号(rz-nag\\02939106)精准过滤,直接定位对应的内部用户,请求示例:GET https://hana:50000/b1s/v1/Users?$select=InternalKey,AdUser,UserName&$filter=UserName eq 'rz-nag\\02939106'注意:过滤条件中的反斜杠需要转义,确保匹配正确。
检查用户扩展字段
若系统将AD关联信息存储在用户扩展字段(如自定义的U_ADUserID),可通过$select包含该字段,请求示例:GET https://hana:50000/b1s/v1/Users?$select=InternalKey,UserName,U_ADUserID通过SessionInfo获取当前用户信息
登录后调用SessionInfo接口,返回结果中会包含当前登录用户的InternalKey(SAP内部用户主键)及基本信息,请求示例:GET https://hana:50000/b1s/v1/SessionInfo
内容的提问来源于stack exchange,提问作者Leotardo
相关产品推荐
相关产品推荐

