首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查找或获取VMM实体属性映射/属性名称

如何查找或获取VMM实体属性映射/属性名称
EN

Stack Overflow用户
提问于 2021-05-31 07:59:26
回答 1查看 107关注 0票数 0

起点:我有一个具有联邦安全性的WebSphere (它后面有一个)。我试图通过VMM用户的电子邮件地址来获取他/她的uid,但是我不知道它是如何被映射到底层Active实体(person,organizationalPerson objectClass,mail属性)的AD (模式)属性的。

(用一种不同的方式描述它:如果你看一下WAS,在“用户和组”-> "Manage“中有一个表,其中有一个电子邮件列,所以它被映射了)。但是,通过单击(“全局安全”-> )配置按钮“-> (有一个表,您可以选择) LDAP1行,并在”联邦存储库属性名称到LDAP属性映射“中检查表,我不认为‘E’列已经映射到AD属性。也许有一个隐式映射?)

所以,首先的问题是:

如何在WAS控制台上找到这个?或者,也许通过wsadmin (脚本)?

因此,由于这一点,我试图向前迈进,现在我将尝试使用VMM API找到它,但在正式文档中找不到第二个问题的答案:

是否可以以某种方式获取WebSphere VMM实体(虚拟成员管理器)的指定/可用属性?

有很多关于当您知道属性的名称时如何获取它们的例子,但是这一点都没有.

是的,我知道这是一个有点XY的问题,但请指导我一点。在此之前,非常感谢您。

为了提供一些代码示例,我尝试使用以下代码获取用户的uid:

代码语言:javascript
复制
    public String testFetch(String email) throws Exception
    {
     
        String returnAttr = "uid";
        // here in the search expression what should I wrire instead of the 'mail'?
        String vmmSearchExpr = String.format("@xsi:type='PersonAccount' and mail='%s'", email);
        DataObject root = SDOHelper.createRootDataObject();
        DataObject searchCtrl = SDOHelper.createControlDataObject(root, null, SchemaConstants.DO_SEARCH_CONTROL);
        searchCtrl.setString(SchemaConstants.PROP_SEARCH_EXPRESSION, vmmSearchExpr);
        @SuppressWarnings("unchecked")
        List<String> props = searchCtrl.getList(SchemaConstants.PROP_PROPERTIES);
        props.add(returnAttr);
        Service service = new LocalServiceProvider(null);
        DataObject searchRoot = service.search(root);
        String result = "";
        List<?> entities = searchRoot.getList(SchemaConstants.DO_ENTITIES);
        if (entities.size() > 1) throw new RuntimeException("multiple users for an identity:" + vmmSearchExpr);
        if (entities.size() > 0)
        {
            DataObject objdo = (DataObject) entities.get(0);
            result = objdo.getString(returnAttr);
        }else{
            log("Got empty list There is no result.");
        }
        return result;
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-31 09:53:21

一个可能的解决方案是添加一个新的联邦存储库支持的属性(名称: mail,属性名称: mail,实体类型: PersonAccount):

在WAS重新启动之后,我能够使用搜索表达式。

代码语言:javascript
复制
@xsi:type='PersonAccount' and mail='<email address>'

和上面的代码来获取对应的uid到给定的电子邮件地址。在c:\IBM\WebSphere\AppServer\etc\wim\setup\wimdbproperties.xml,中似乎有一些信息,好像“ibm”将是包含电子邮件地址的属性,尽管当我指定这个属性名而不是"mail“属性名时,我无法找到我的uid。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67769900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档