2018-11-18 // SAP Cloud Connector - Configuring Multiple Local Administrative Users
Out of the box, the SAP Cloud Connector does not support the creation of multiple local users for administration purposes through its WebUI. The standard and documented way provides only the use of LDAP in conjunction with an external user directory in case multiple administrative users are necessary. This in turn introduces an unnecessary overhead and external dependency. It also has rather strict limitations on the names of the groups (admin
or sccadmin
) that can used to authorize users for administrative tasks in the SAP Cloud Connector. There is a simple workaround for this limitation, which will be described in this blog post.
Since the SAP Cloud Connector uses an embedded Tomcat servlet container as an application server, it also uses some of the infrastructure provided by Tomcat. This includes the local file-based user directory. In order to use multiple, distinctly named administrative users, they simply need to be manually added to this local file-based user directory.
The first step though, is to create a password hash that is compatible with the Tomcat servlet container. This can be accomplished with the use of the Tomcat command line tool digest.sh
or digest.bat
. Depending on your operating system this tool might have other names, e.g. /usr/bin/tomcat-digest
on RedHat Enterprise Linux. On any system that has said command line tool available (e.g. on a RHEL 7 system with the RPM tomcat
installed), run the following command:
user@host:$ /usr/bin/tomcat-digest -a sha-256 '<PASSWORD>'
Substitute the placeholder <PASSWORD>
with the actual passwort that will be used for the new administrative user. The output of the above command will be in the form of <PASSWORD>:<HASH>
. For the following step, only the <HASH>
part of the output will be necessary.
The next step is to manually add the new adminstrative user to the local file-based user directory of the embedded Tomcat. This is achieved by editing the file config/users.xml
in your SAP Cloud Connector installation. In this example the installation was performed in the standard path for Linux systems, which is /opt/sap/scc
. Open the file config/users.xml
in an editor of your choice:
root@host:# vi /opt/sap/scc/config/users.xml
Alter its contents by adding a new line, like shown in the following example:
- /opt/sap/scc/config/users.xml
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="admin"/> <group groupname="initial"/> <user username="Administrator" password="********" roles="admin"/> <user username="<USERNAME>" password="<HASH>" roles="admin"/> [...] </tomcat-users>
Substitute the placeholder <USERNAME>
with the desired username of the new administrative user and substitute the placeholder <HASH>
with the password hash generated above.
Restart the SAP Cloud Connector.
The newly created user should now be able to log in via the WebUI of the SAP Cloud Connector.
This kind of local file-based user directory is fairly simple to manage and to understand. I keep wondering why SAP would not document or even integrate this kind of user management in the WebUI of the SAP Cloud Connector. Another issue is the use of only one authorization role (admin
or sccadmin
), which is independent of the particular user directory used. This authorization role grants full administrative rights to the SAP Cloud Connector for a given user. A slightly more differentiated authorization scheme with roles for e.g. operations (connector restart and monitoring, no configuration changes) or monitoring (only monitoring, no connector restart, no configuration changes) purposes would be much more suitable for purposes in an enterprise environment.
Leave a comment…
- E-Mail address will not be published.
- Formatting:
//italic// __underlined__
**bold**''preformatted''
- Links:
[[http://example.com]]
[[http://example.com|Link Text]] - Quotation:
> This is a quote. Don't forget the space in front of the text: "> "
- Code:
<code>This is unspecific source code</code>
<code [lang]>This is specifc [lang] code</code>
<code php><?php echo 'example'; ?></code>
Available: html, css, javascript, bash, cpp, … - Lists:
Indent your text by two spaces and use a * for
each unordered list item or a - for ordered ones.