SAP HANA 获取已登陆用户的详细信息

我们在浏览器上访问我们在 SAP HANA 上面部署的应用的时候,总会先跳转到一个 SAP ID Service 的页面并要求我们注册和登陆。在成功登陆 ID Service 后,这个用户身份就会作为我们在 Application 上的用户。

这是由于 SAP HANA Cloud Platform 采用了 single sign-on (SSO) 和身份绑定的方式,使开发者能无缝的将身份管理设施集成到 HANA Cloud Application 上。
这样做的好处是开发者无需开发单独的用户管理系统,用户信息由 identity providers (IdP) 提供并统一进行管理。
同时对于用户来说,使用统一的身份进行登陆,可以省去很多个人信息注册和更新的麻烦,并保证整个 HANA 平台上的应用间的身份信息一致。
这种做法应用开发者不需要再本地存储用户验证数据,能很好的避免信息丢失或泄露,对用户更有保障。

SAP-Cloud-IdP

当我们需要获取用户的信息来做相关的应用开发时(大部分时候是需要的),这种方式就给我们带来了极大的便利。我们只需要从 IdP 提供的接口就能很方便的获取到用户的信息。

SAP HANA 默认的 IdP 就是前面提到的 SAP ID Service,这是每个 HANA Application 的默认 IdP,维护了一整套的 SAP 体系内的用户信息。无论你是内部员工,还是外部客户,或者是 SCN 注册用户,都会由这个 Service 来进行维护。

SAP-ID-Service

我下面介绍下几种不同的获取用户信息的方式:

1.$.session.getUsername()

这是 SAP HANA Web-based Development Workbench 中提供的一个 template (/sap/hana/xs/ide/editor/templates/hellohanaxs/logic.xsjs)

代码很简单,就是返回你这个 request session 中使用的 User Name。
在开发模式下会返回你在 SAP HANA Web-based Development Workbench 中的 DEV_ID, 在浏览器访问时会返回从 ID Service 获取的 UserID。(根据身份分为Ixxx,Cxxx,Pxxx…例如我是内部员工,所以返回的是我的 Inumber)

2.User API Service

在 HTML5 Application 中,我们可以用另一种方式获取更详细的用户信息,方法就是在 neo-app.json 中添加 userapi service 的 routes:

save & deploy 之后,访问 http:///services/userapi/currentUser 会返回一个 json,包含了一下信息:

·Name
·First name
·Last name
·Display name
·E-mail address

另外还有通过获取 samlUserInfo 的方式,但这个做法在现在的 HANA 版本中存在一些问题,具体做法我们改天再来补充。

更多关于 SAP HANA 的用户管理,请访问: Identity and Access Management – SAP HANA Cloud Documentation

如无注明,均为原创。转载请注明: 转载自MITGAI`S THINKING
本文链接地址: SAP HANA 获取已登陆用户的详细信息

知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

如果本文对您生活或工作产生了积极影响,那我非常高兴。
如果您愿意为文章的内容或想法提供支持,欢迎点击下边的捐赠按钮,资助作者创作更多高价值高品质的内容。
支付宝捐赠
anyShare分享到:

发表回复