配置 SCIM 以进行用户和组成员管理
可在 server.xml 文件中配置 scim-1.0 功能部件以启用用户和组成员管理。跨域身份管理系统 (SCIM) 定义 REST API 以创建、检索、更新及删除 (CRUD) 用户和组。调用是通过系统管理 REST WAB 进行的。本地调用将是基于本地主机的 HTTP(仅通过 Web API);本地调用不使用 Java API。
过程
在 server.xml 文件中添加 scim-1.0 功能部件将启用 SCIM 功能。但是,为完成配置,还必须执行以下配置步骤:
- SSL 配置:REST 服务受保护并且只能在 HTTPS 端口上访问。有关如何完成 SSL 配置的更多信息,请参阅在 Liberty 中启用 SSL 通信。
- 联合注册表的配置:仅联合注册表支持 SCIM 功能。要使用 LDAP 快速设置联合注册表,请参阅在 Liberty 中配置 LDAP 用户注册表。
- 管理员角色的配置:只有管理员可访问 REST 服务,所以需要配置具有管理员角色的用户。有关将管理员角色映射至 Liberty 的更多信息,请参阅映射 Liberty 的管理员角色。注: 要对 SCIM 配置管理员角色,不能使用快速启动注册表。
- HTTPS 端口的配置(可选):必须配置 HTTP 端点。有关 httpEndpoint 功能部件元素配置的更多信息,请参阅 Admin Center 中的 httpEndpoint 部分。
<server description="server1">
<!-- Enable features -->
<featureManager>
<feature>appSecurity-2.0</feature>
<feature>servlet-3.0</feature>
<feature>ldapRegistry-3.0</feature>
<feature>scim-1.0</feature>
<feature>ssl-1.0</feature>
</featureManager>
<httpEndpoint id="defaultHttpEndpoint" httpPort="9080" httpsPort="9090">
<tcpOptions soReuseAddr="true" />
</httpEndpoint>
<ldapRegistry id="LDAP1" realm="SampleLdapIDSRealm" host="9.127.1.90" port="1389" ignoreCase="true"
baseDN="o=ibm,c=us" ldapType="IBM Tivoli Directory Server" searchTimeout="8m" recursiveSearch="true"
bindDN="cn=xxxx" bindPassword="xxxxxx">
<ldapEntityType name="PersonAccount">
<rdnProperty name="uid" objectClass="inetOrgPerson"/>
<objectClass>inetOrgPerson</objectClass>
</ldapEntityType>
<ldapEntityType name="Group">
<objectClass>groupofnames</objectClass>
<objectClass>ibm-nestedGroup</objectClass>
<rdnProperty name="cn" objectClass="groupofnames"/>
</ldapEntityType>
<attributeConfiguration>
<attribute name="title" propertyName="honorificPrefix" syntax="String" entityType="PersonAccount">
</attribute>
<attribute name="initials" propertyName="middleName" syntax="String" entityType="PersonAccount">
</attribute>
<attribute name="st" propertyName="honorificSuffix" syntax="String" entityType="PersonAccount">
</attribute>
<attribute name="l" propertyName="homeStateOrProvinceName" syntax="String" entityType="PersonAccount">
</attribute>
<attribute name="street" propertyName="homeStreet" syntax="String" entityType="PersonAccount">
</attribute>
<attribute name="postalAddress" propertyName="homeCity" syntax="String" entityType="PersonAccount">
</attribute>
<attribute name="postalCode" propertyName="homePostalCode" syntax="String" entityType="PersonAccount">
</attribute>
<attribute name="postOfficeBox" propertyName="homeCountryName" syntax="String" entityType="PersonAccount">
</attribute>
<attribute name="departmentNumber" propertyName="photoURLThumbnail" syntax="String" entityType="PersonAccount">
</attribute>
<attribute name="description" propertyName="photoURL" syntax="String" entityType="PersonAccount">
</attribute>
</attributeConfiguration>
<groupProperties>
<memberAttribute name="member" dummyMember="uid=dummy" objectClass="groupOfNames" scope="direct"/>
<memberAttribute name="ibm-memberGroup" objectClass="ibm-nestedGroup" scope="direct"/>
</groupProperties>
</ldapRegistry>
<ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore" />
<keyStore id="defaultKeyStore" password="Liberty"/>
<administrator-role>
<user>wasadmin</user>
</administrator-role>
<federatedRepository>
<primaryRealm name="WIMRegistry">
<participatingBaseEntry name="o=ibm,c=us"/>
</primaryRealm>
</federatedRepository>
</server>