DM Security Guide Cloud
DM Security Guide Cloud
1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
8 Session Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Caution
This document is not included as part of the Installation Guides, Administration Guides, or Upgrade Guides.
Such guides are only relevant for a certain phase of the software life cycle, whereas the Security Guides
provide information that is relevant for all life cycle phases.
Target Audience
• Technology consultants
• System administrators
With the increasing use of distributed systems and the Internet for managing business data, the demands
on security are also on the rise. When using a distributed system, you need to be sure that your data and
processes support your business needs without allowing unauthorized access to critical information. User
errors, negligence, or attempted manipulation on your system should not result in loss of information or
processing time. These demands on security apply likewise to SAP Disclosure Management. To assist you in
securing SAP Disclosure Management , we provide this Security Guide.
The Security Guide provides an overview of the security-relevant information that applies to SAP Disclosure
Management.
Security Guides
You find the Security Guide of a specific product on the corresponding product page on SAP Help Porta at
https://help.sap.com.
The most important SAP Notes that apply to the security of SAP Disclosure Management are shown in the
table below.
In addition, you can find a list of security-relevant SAP Hot News and SAP Notes on the SAP Service
Marketplace at http://service.sap.com/securitynotes.
Additional Information
For more information about specific topics, see the Quick Links as shown in the table below.
Security http://sdn.sap.com/irj/sdn/security
The figure below shows an overview of the technical system landscape for SAP Disclosure Management:
For more information about the technical system landscape, see the resources listed in the following table:
Note
For a list of the software and hardware requirements for SAP Disclosure Management 10.1 and SAP
Disclosure Management XBRL reporting add-ons 1.0, see the SAP Disclosure Management 10.1 Product
Availability Matrix (PAM). The Product Availability Essentials presentation also contains information for
getting started, and can be found under General Information Details and Dates Essentials .
Every version of Net Framework has security issues that you can resolve by installing the relevant security
updates.
You can find a list of these security issues, for example, at https://www.cvedetails.com/vulnerability-list/
vendor_id-26/product_id-2002/version_id-190346/Microsoft-.net-Framework-4.6.1.html . You can install
security updates using the Windows Update function or you can install them manually. From DM Stack 11xx
and higher SAP Disclosure Management uses Net Framework Version 4.6.1..
For more information on data protection and privacy see the Data Protection and Privacy chapter in the
Administration Guide.
We include information about user administration and authentication that specifically applies to the SAP
Disclosure Management in the following topic:
SAP Disclosure Management has its own user management mechanisms. For an overview of how these
mechanisms apply, see the sections below. In addition, we provide a list of the standard users required for
operating SAP Disclosure Management.
The table below shows the tools to use for user management and user administration in SAP Disclosure
Management.
User administration in SAP Disclosure Management You can manage users on the Administration tab in the SAP
Disclosure Management application.
Standard Users
The table below shows the standard users that are necessary for operating SAP Disclosure Management.
Internet Information Server (IIS) Windows Domain Account with read The Windows Domain Account is re-
quired to authenticate SAP Disclosure
permission for Active Directory
Management users against Active Di-
rectory when using Single Sign-On
(SSO).
Note
The login screen of SAP Disclosure Management prompts the user for a user name and password. For
security reasons the user name field does not provide an autocomplete function. The autocomplete
function is provided by modern browsers but is switched off for the login screen.
5.1.1 Authorizations
Standard Roles
The table below shows the standard roles that are used by SAP Disclosure Management:
Role Description
• Globally
If you assign a role to a user in User Administration, this user gets the corresponding permissions in all
reports and chapters.
• Locally
If you assign a role to a user on the Permissions tab in a report or chapter, this user get the corresponding
permissions for this report or chapter only.
Note
To ensure data protection and prevent unauthorized access to reports or chapters, we recommend that you
use local authorizations rather than global authorizations.
Note
To check user permissions on chapter and report level, you can use the Access Analyzer
app. For more information, see https://help.sap.com/viewer/6fda503523d6413597f5cd81be59fa8a/
DM%20Stack%2013xx/en-US/e684751c5e8b4cd9bd3301277a779716.html.
In SAP Disclosure Management, you can create customized roles. When creating a role, you can assign it any
combination of the authorization objects described below.
The table below shows the security-relevant authorization objects that are used on the SAP Disclosure
Management server:
If you want to use an SAP Business Information Warehouse (SAP BW) system as a data source, you must have
a user in the SAP BW system. To retrieve data from an SAP BW system, you must log on to the SAP BW system
using credentials for this system.
When users create briefing books in the SAP Disclosure Management Microsoft Office add-in, the system
stores these briefing books in the SAP Disclosure Management BW Connector.
The table below shows the security-relevant authorization object that is used in the SAP BW system:
This authorization object is available in the SAP BW system after you have installed the SAP Disclosure
Management BW Connector.
You can use this authorization object in an authorization profile, which can be assigned to a role. You can then
assign the role to users. For more information, see the SAP NetWeaver Security Guide.
To assign SAP BW queries to a briefing book, users must also have authorizations for the queries in the SAP
BW system.
To access the replicated data from the SAP BW system in SAP Disclosure Management, users must have view
authorization for chapters.
Your network infrastructure is extremely important in protecting your system. Your network needs to support
the communication necessary for your business needs without allowing unauthorized access. A well-defined
network topology can eliminate many security threats based on software flaws (at both the operating system
and application level) or network attacks such as eavesdropping. If users cannot log on to your application or
database servers at the operating system or database layer, then there is no way for intruders to compromise
the machines and gain access to the backend system's database or files. Additionally, if users are not able
to connect to the server LAN (local area network), they cannot exploit well-known bugs and security holes in
network services on the server machines.
The following table describes the communication paths and protocols used between different components of
the application:
Frontend client using FREC HTTP(S) / SOAP Report content and chapter Report content and chapter
client to application server content content
Frontend client using Micro- HTTP(S) / SOAP Report content and chapter Report content and chapter
soft Office add-in to applica- content content
tion server (via ASP.NET Web
services)
Application server to Micro- TCP/IP All application data Passwords, report content
soft SQL Server database and chapter content
Note
To ensure data protection and privacy, we recommend that you use HTTPS rather than HTTP for the
communication between the frontend client and the application server. In order to use HTTPS, you have to
activate HTTPS on the Microsoft Internet Information Services Server (IIS). For more information about the
activation of HTTPS on IIS, see the information in the Microsoft Knowledge Base.
The following figure shows the communication paths used to get data from different data sources :
Microsoft Office add-in to RFC Financial report data Financial report data
SAP ERP data source
Microsoft Office add-in to TCP/IP (MDX / XMLA) Financial report data Financial report data
Microsoft Analysis Services
data source
Microsoft Office add-in to File system Financial report data Financial report data
XML or Microsoft Excel data
source
Microsoft Office add-in to TCP/IP (SQL) Financial report data Financial report data
ODBC or OLEDB data source
Microsoft Office add-in or ap- HTTP(S) / SOAP Financial report data Financial report data
plication server to SAP Busi-
ness Information Warehouse
(BW) data source with the
SAP Disclosure Management
BW Connector
Microsoft Office add-in or ap- TCP/IP (SQL) Financial report data Financial report data
plication server to Microsoft
SQL Server data source
HTTPS protocol is used to encrypt and authenticate communication between Web server and client in the
World Wide Web (WWW).
The steps that are required to secure your communication in SAP Disclosure Management (SAP DM) are
described below.
Caution
Note
Please make sure that any http bindings, certificate issuing, etc. point to the same IP address or Fully
Qualified Domain Name (FQDN). Don't use, for example, localhost in config and 127.0.0.1 for certificate/
binding. We recommend that you use the FQDN for everything.
Note
3. To use integrated security with SQL Server, you need a user with read access to the LDAP for App Pool. For
more information, see How to: Configure an IIS-hosted WCF service with SSL .
Follow the procedure described in How to: Enable Encrypted Connections to the Database Engine (SQL Server
Configuration Manager) .
Note
To have access to the certificate store for SQL Server service, you need a user with read access. To use a
(self-signed) certificate, an Admin user may be required.
Follow the procedure described in How to Configure the TaskEngine Service for HTTPS [page 19].
• IP Address
Use the following command: netsh http add sslcert ipport=123.123.123.123:2605
certhash=abcdefgh appid={anyGUID} clientcertnegotiation=enable.
• FQDN
Use the following command: netsh http add sslcert hostnameport=<hostname>:2605
certhash=abcdefgh appid={anyGUID} clientcertnegotiation=enable certstorename=MY.
For more information, see How to: Configure a Port with an SSL Certificate .
To enable SAP DM for encrypted connections, you must modify the Application Server and TaskEngine
connection strings by using the Encrypt=True command.
1. Start Microsoft Windows Internet Explorer and go to the installation folder of SAP DM Application Server,
which is generally c:\inetpub\wwwroot\SAP\Disclosure Management.
2. Go to the bin folder and open the file cundus.enterpriseReporting.Services.dll.Config.
3. Find the connection string with the name enterpriseReporting and add Encrypt=True;.
Example
1. Start Microsoft Windows Internet Explorer and go to the installation folder of SAP DM TaskEngine
C:\Program Files (x86)\SAP\SAP Disclosure Management TaskEngine.
2. Open the file SAP.DM.TaskEngine.WinService.dll.config.
3. Find the connection string with the name taskEngine and add Encrypt=True; to it.
Example
Example
Note
Re-uploading the plugin with updated configuration files does not work as long as the file version stays the
same. In this case, you have to manually edit the configuration files in the extracted plugin folder for any
TaskEngine installation.
Configuring Plugins
Update the URIs to XBRLService in the configuration files SAP.DM.XBRL.Services.dll.config and add
the certificate entry for the following plugins (if the scenario is used):
• SAP.DM.XBRL.Preview.Plugin
• SAP.DM.XBRL.PreviewExcel.Plugin
• SAP.DM.XBRL.USSECCalculationTrace.Plugin
• SAP.DM.XBRL.USSECValidation.Plugin
• SAP.DM.XBRL.Validation.Plugin
Proceed as follows:
1. Follow the instructions described under Configuring TaskEngine (Netsh Command) to apply the same
settings to the SAP.DM.PublicAPI.Import elements in the <system.serviceModel> section of the
AppServer web.config file:
• Remove the endpoint for "mex".
• Set httpsGetEnabled to "false".
• Replace basicHttpBindbing with basicHttpsBinding. This sets the security mode by default to
"transport".
2. Update the service definition in DMBatchTool.exe.config, similar to the settings for TaskEngine.
Context
To configure the task engine to work with HTTPS, you have to install a certificate on the server and client
machine. Official certificates are issued by the Certificate Authority (CA).
1. Enter Start Run and enter MMC. This opens the management console.
2. Choose File Add/Remove Snap-in Add...
3. Double-click Certificates
4. Select Computer Account.
5. Choose Next Finish Close OK .
Add a new SSL server certificate binding and the corresponding client certificate policies for the task engine
host name and port. To do this, you must copy the thumbprint of the certificate, as described below:
1. Select the certificate you want to use, open the details tab, and scroll down to the Thumbprint option.
2. Select the thumbprint and copy it.
3. Paste it into Microsoft Notepad or any other text editor, and remove the spaces between the characters.
Example
Once the spaces between the characters have been removed, it should look like this:
d714fdded29a4b58c5ed30f26642d7112af9f8d6
4. To link the certificate to the task engine URL, run the following command in an admin command prompt:
netsh http add sslcert hostnameport=<FQDN>:2605 certhash=<thumbprint>
appid={<GUID>} clientcertnegotiation=enable certstorename=MY
Note
A GUID is a universally unique identifier that can be generated by online generators. It is used to
identify the application for which this mapping is created.
You have configured the task engine to use SSL with HTTP.
Related Information
http://msdn.microsoft.com/en-us/library/ms733791.aspx
https://learn.microsoft.com/en-us/dotnet/framework/wcf/feature-details/transport-security
6.2 Disabling Old Protocols (SSL2, SSL3, TLS 1.0, TLS 1.1)
Follow the procedure Update to enable TLS 1.1 and TLS 1.2 as default secure protocols in WinHTTP in
Windows .
Note
For SQL Server 2008 R2 (SP3), a patch is need to support TLS1.2 (KB 3144114). For more information, see
TLS 1.2 support for Microsoft SQL Server .
For Windows Server 2012 R2, a patch is needed to support TLS1.2 (KB 3099842). For more information,
see Hotfix rollup 3099842 for the .NET Framework 4.5.2 and the .NET Framework 4.5.1 on Windows .
Note
For running the registry script for SChannel ciphers (both fixes for 64/64 and 32/64 bit), see Microsoft
Security Advisory 2960358 .
SAP Disclosure Management connection strings can pose a security problem as the login and password are
defined in clear text. Although this information is only visible to the system administrator, this person may not
be the database administrator and therefore should not be allowed to see the database connection login and
password. There is potential for a severe misuse of sensitive data.
The clear text connection strings are currently only used by the application server and task engine service in
the files listed below:
Encryption API
Encryption Schedule
The encryption runs automatically when the SAP Disclosure Management application or task engine starts.
The connection string encryption method is called from the global.asax method Application_Start(),
where the encryption process will also be logged. When the method is called after an IISReset, the connection
string is encrypted automatically. If the administrator needs to reset the application, the connection string
information can be changed beforehand. You also have the option to change it if the server, login, or password
changes during productive use of SAP Disclosure Management.
The connection string encryption method is called from the program.cs method OnStart(), where the
encryption process will also be logged. The method is called when the service starts or restarts. The
connection string information can be changed before this is done; you can also change it if the server, login, or
password changes during productive use of SAP Disclosure Management. The same encryption occurs when
the task engine console is started.
Context
If the connection string server or password information has changed, proceed as follows:
Procedure
1. Open the file cundus.enterpriseReporting.Services.dll.config from the \bin folder below the
installation folder of DM SERVER – APPLICATION SERVER 10.1 with a text editor.
2. Replace the tag <connectionStrings> which includes an encrypted section with clear text according to
the example below.
3. Do the same for the file SAP.DM.TaskEngine.WinService.exe.config from the installation folder of
DM SERVER - TASK ENGINE 10.1.
4. Alternatively, you can find a template <connectionStrings> section in both configuration files; copy
them and paste them over the existing encrypted section.
5. Reset or restart the application.
6. The new connection string is encrypted again.
Context
The SAP Disclosure Management application server does not prevent cross-origin requests, as these are
required to be able to operate within the entire network without being limited to a specific domain. However, if
you do want to limit cross-origin resource sharing, follow the steps below:
Procedure
SAP Disclosure Management provides and uses many RESTful APIs. These APIs are secured with a signed
access token, which is created during the login procedure or by using an authentication request. The signing is
done with a certificate. By default, a self-signed certificate with the issuer ApiDisclosureManagement is used,
which is delivered with SAP Disclosure Management and imported to the server's certificate store during the
installation of SAP Disclosure Management.
Note
It is strongly recommended to use an officially signed certificate in your productive system. For more
information, see Changing the Signing Certificate [page 37].
You can use RESTful API with AD Authentication. When using this function, it is necessary to extend the
Web.config file which is located in the SAP Disclosure Management server root folder. Paste the content
below within the section <configuration> to your Web.config file:
Sample Code
<configuration>
<!-- Disable Forms Authentication for this URL -->
<location path="api/AuthenticateAD">
<!-- Disable Forms Authentication -->
<FormsAuthenticationWrapper enabled="false" />
<system.webServer>
<security>
<!-- Enable IIS Windows authentication for the login page -->
<authentication>
<windowsAuthentication enabled="true" />
<anonymousAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
</location>
</configuration>
Note
Anonymous RESTful API calls are not allowed. In order to get an access token by using AD authentication,
use the parameter UseDefaultCredentials for the command Invoke-WebRequest.
Example
Context
The figure below describes the process for RESTful API calls within SAP Disclosure Management:
• RESTful API Calls Within SAP Disclosure Management (SAP DM) [page 26]
• RESTful API Calls Within SAP Disclosure Management (SAP DM) [page 26]
• RESTful API Calls Within SAP Disclosure Management (SAP DM) [page 26]
• RESTful API Calls Within SAP Disclosure Management (SAP DM) [page 26]
• RESTful API Calls Within SAP Disclosure Management (SAP DM) [page 26]
• RESTful API Calls Within SAP Disclosure Management (SAP DM) [page 26]
• RESTful API Calls Within SAP Disclosure Management (SAP DM) [page 26]
• RESTful API Calls Within SAP Disclosure Management (SAP DM) [page 26]
• RESTful API Calls Within SAP Disclosure Management (SAP DM) [page 26]
• RESTful API Calls Within SAP Disclosure Management (SAP DM) [page 26]
• RESTful API Calls Within SAP Disclosure Management (SAP DM) [page 26]
Context
SAP DM provides RESTful APIs for external clients that are not logged in to SAP DM. This procedure is shown in
the figure below:
• RESTful API Calls from Outside SAP Disclosure Management (SAP DM) [page 28]
• RESTful API Calls from Outside SAP Disclosure Management (SAP DM) [page 28]
• RESTful API Calls from Outside SAP Disclosure Management (SAP DM) [page 28]
• RESTful API Calls from Outside SAP Disclosure Management (SAP DM) [page 28]
• RESTful API Calls from Outside SAP Disclosure Management (SAP DM) [page 28]
• RESTful API Calls from Outside SAP Disclosure Management (SAP DM) [page 28]
• RESTful API Calls from Outside SAP Disclosure Management (SAP DM) [page 28]
• RESTful API Calls from Outside SAP Disclosure Management (SAP DM) [page 28]
• RESTful API Calls from Outside SAP Disclosure Management (SAP DM) [page 28]
• RESTful API Calls from Outside SAP Disclosure Management (SAP DM) [page 28]
Procedure
1. 1. The client authenticates itself against SAP DM by using an Authenticate API which allows anonymous
calls.
2. The application server creates an access token, which is used for each RESTful API call. This access token
contains client-specific information and an expiration date.
3. A certificate is needed to encrypt and sign the above-mentioned data. SAP DM requests the certificate
from the certificate store of the Windows server.
4. SAP DM receives the certificate from the personal certificate store of the Windows server.
5. SAP DM encrypts and signs the client's access token and stores it in the client's session.
6. The client receives an encrypted and signed access token.
7. The client consumes a RESTful API and sends the access token from step 6 in the request header.
8. SAP DM reads the access token from the client's request header.
9. A certificate is needed to decrypt and validate the access token. SAP DM requests the certificate from the
certificate store of the Windows server.
10. SAP DM receives the certificate from the certificate store of the Windows server.
11. SAP DM decrypts and validates the client's access token.
12. SAP DM sends the response to the client if the access token is valid.
Prerequisites
• The global permission object Report Edit or object Chapter Edit must be assigned to the
authenticated user. The first API call first checks the permission of the user, then validates the three
parameters, and finally triggers the task creation API call.
• After the method has run successfully and the task is created the second API call can be started to save
the document created by the first API call.
Run the MS PowerShell script without any arguments set as illustrated below:
Sample Code
$system = 'http://localhost:1600/'
$user = 'User'
$pw = 'Password'
$params = @{username=$user;password=$pw} | ConvertTo-Json
$response = Invoke-WebRequest $system/api/Authenticate -method Post -body
$params
if($response.statuscode -ne 200){
"Error: $($response.statuscode)"
exit;
} else {
$at = $response.headers.access_token
"authorization token obtained"
}
$response = ""
$params1 = @{"access_token" = $at;"Content-type" = "application/json";"Accept-
Language" = "en-EN" }
$params2 = @{AdHocLevel='1';ID='30';PluginName='XBRL - Template -
Validate'; } | ConvertTo-Json
$response = Invoke-WebRequest $system/api/CreateAdhocResult -headers $params1
-method Post -body $params2
if($response.statuscode -ne 200){
"Error: $($response.statuscode)"
exit;
} else {
"task has been created"
}
The script first authenticates the user. If this succeeds, the generated access token is used to call the method
using the AdhocLevel parameter. Possible values are 1 (Report ) and 2 (Chapter). The ID parameter specifies
the report or chapter that should be used and the PluginName parameter defines the task to be triggered. It
can be any tak that is visible for the user on the General tab under the Adhoc Actions area. The PluginName
should be copied from this view into the API call or enter exactly as such.
API 2 GetAdhocResult
Run the MS PowerShell script without any arguments set as illustrated below:
Sample Code
$system = 'http://localhost:1600/'
$user = 'User'
$pw = 'Password'
$params = @{username=$user;password=$pw} | ConvertTo-Json
$response = Invoke-WebRequest $system/api/Authenticate -method Post -body
$params
if($response.statuscode -ne 200){
"Error: $($response.statuscode)"
exit;
} else {
$at = $response.headers.access_token
"authorization token obtained. Waiting for task completion"
The script first authenticates the user. If this succeeds, the generated access token is used to call the method
using the AdhocLevel parameter. Possible values are 1 (Report ) and 2 (Chapter) . The ID parameter specifies
the report or chapter to be used and the FileExtension parameter defines one of the file types downloaded
to the path $output = "validateTest.xlsx" created by any task triggered by the logged in user.
Note
The file extension must match the parameter here otherwise the file won't be dowloaded. You can trigger
an ad hoc action on the UI once to check the file extension for your case.
Note
Only the last created file is downloaded. Both API calls are meant to be triggered in a single powershell
script. You can even start the second API call first. It will wait for a user task to finish.
Prerequisites
• The global permission object Report Edit or object Chapter Edit must be assigned to the
authenticated user. The first API call first checks the permission of the user, then validates the three
parameters, and finally triggers the task creation API call.
• After the method has run successfully and the task is created the second API call can be started to save
the document created by the first API call.
Run the MS PowerShell script without any arguments set as illustrated below:
Sample Code
$system = 'http://localhost:1600'
$user = 'testuser'
$pw = 't'
$params = @{username=$user;password=$pw} | ConvertTo-Json
$response = Invoke-WebRequest $system/api/Authenticate -method Post -body
$params
if($response.statuscode -ne 200){
"Error: $($response.statuscode)"
exit;
} else {
$at = $response.headers.access_token
"authorization token obtained"
}
$response = ""
$params1 = @{"access_token" = $at;"Content-type" = "application/json";"Accept-
Language" = "en-EN" }
$params2 = @{ReportID='263';Action='RolloutTemplates'; } | ConvertTo-Json
$response = Invoke-WebRequest $system/api/ReverseReportRevision -headers
$params1 -method Post -body $params2
if($response.statuscode -ne 200){
"Error: $($response.statuscode)"
exit;
} else {
"last chapter revisions have been reverted"
}
The script first authenticates the user. If this succeeds, the generated access token is used to call the method
using the ReportID parameter. A possible value is Report ID, which can be viewed on the General tab.
The second parameter Action specifies the last report-triggered action. If it is one of the following options
ContenRefresh, WriteBack, or RolloutTemplates, every chapter of the report may have this last action
run by the buisness user, which can be checked on the Chapter Revision tab. The last revision should be
displayed. If this was done by mystake, this will be reverted to the previous last revision in the revision list.
Restoring all report chapters manually is not required anymore.
Context
To disable the documentation protocol for ASP.NET Web services apply the settings from the official Microsoft
Documentation, as described in HOW TO: Disable the Documentation Protocol for ASP.NET Web Services .
Context
This setting is used to prevent the web server from sending version information with every http response. To
prevent the web server from sending the Asp.Net Version header in SAP Disclosure Management (SAP
DM), the administrator must manually set this setting as follows:
Procedure
Note
Example
For installations of SAP Discclsoure Management 10.1 with version SP10 or higher, this setting is
automatically set. No further actions are necessary for the administrator.
Context
• You can install and configure a tool such as Microsoft IIS URL Rewrite.
• You can set the server header to a static value, not exposing information, for example, "-", via IIS.
Proceed as follows:
Procedure
Context
We recommend that you add specific security headers to each HTML response. This prevents typical attacks,
such as cross-site scripting and clickjacking.
Procedure
To enable SSL client certificate negotiation only for the DM metering API, you must change the IIS
configuration file applicationhost.config (default location: %windir%\system32\inetsrv\config\)
as follows:
In the SAP Disclosure Management installation folder, you must change the web.config file to enable the SSL
client certificate negotiation only for the metering API path.
Certificate Requirements
To enable SSL certificate negotiation between the SAP S/4HANA metering feature and the SAP Disclosure
Management metering API, the following X.509 certificates must be in place:
Context
The shipped self-sign certificate is used by default to encrypt and sign access tokens. If you want to use a
certificate other than the default one, we strongly recommend that you use a certificate signed by a Trusted
Root Certification Authority. Follow the steps below:
Procedure
1. Using the Microsoft Management Console, import a certificate into the Microsoft Windows Certificate
Manager, to your personal folder on your local computer.
2. Assuming that the issuer of the imported certificate is ‘CN=SAPDisclosureManagement’, it is necessary to
extend the <applicationSettings> in the Web.config file, which is located in the SAP DM root folder
as shown below:
Sample Code
<applicationSettings>
<cundus.enterpriseReporting.Web.Properties.Settings>
</cundus.enterpriseReporting.Web.Properties.Settings>
</applicationSettings>
Log-In/Log-Out Behavior
SAP Disclosure Management and SAP Disclosure Management Fiori Launchpad are both authenticated using
the same user log-in data. This means that when you log out from one application, you’re automatically logged
out from the other one.
Session ID Behavior
The session for all users is handled by the .NET standard mechanism. One session ID is used for both apps
when you switch from the SAP Disclosure Management Web UI to the SAP Disclosure Management Fiori
Launchpad.
Session ID Regeneration
The session ID is generated again after a specific time duration when you change the web.config file via a .NET
standard configuration.
Administrators should change this entry to set the session regeneration timeout to the shortest and most
secure possible value (one minute):
Furthermore, the session ID is renewed if you log in from the SAP Disclosure Management Web UI to the SAP
Disclosure Management Fiori Launchpad.
Note
In SAP Disclosure Management, a regular triggering notification mechanism is used to check for completed
Disclosure Management Task Engine jobs, which automatically renews the session. Therefore, the session
never ends due to user inactivity.
The data for the SAP Disclosure Management server is stored in a Microsoft SQL server database. This data is
not encrypted - except the users' passwords, which are encrypted. The data is stored at every transaction.
Chapter documents that are uploaded to SAP Disclosure Management are also stored in a Microsoft SQL
server database. These documents are not encrypted. The documents are stored when a chapter document is
uploaded.
• When users use the Upload function on the server, the documents are stored on the file system on the
server machine during the upload process. You can configure the path to the folder under Administration
System Configuration Upload .
• When users use the Compare function on the server, the documents to be compared are stored on the file
system on the server machine. You can configure the path to the folder under Administration System
Configuration Upload .
• When users use the Edit or View function on the server, the requested document is temporarily stored in
the %TEMP% folder on the client machine.
SAP Disclosure Management requires a Web browser as the user interface. The application stores session
cookies on the front end. The session cookies contain a session ID. The cookies are valid until the end of the
session.
It is possible to set the cookies to secure by using a flag . The secure flag is an option that the application
server can set when sending a new cookie to the user within an HTTP response. It is used to prevent cookies
from being observed by unauthorized parties due to the transmission of the cookie in clear text. To accomplish
this goal, browsers that support the secure flag will only send cookies with the secure flag when the request is
going to an HTTPS page.
In other words, the browser will not send a cookie with a secure flag over an unencrypted HTTP request. By
setting the secure flag, the browser prevents the transmission of a cookie over an unencrypted channel.
Note
Note
If you have activated single-sign on (SSO), for example, using the authentication mode forms, you must
also add the attribute requireSSL with the value "true" in the <forms> tag, as illustrated below:
<system.web>
<authentication>
</authentication>
Logging during debugging is switched off by default. For information about how to switch it on, see 2292975 .
Log rotation allows you to prevent denial-of-service (DoS) attacks. Daily logs are split into up to five separate
files if they exceed the size of 20 MB each. Any subsequently created file triggers the deletion of the last of the
five files..
Note
If you have switched logging on, please keep in mind that it could possibly be used for a denial-of-service
(DoS) attack.
Context
By default, the Internet Information Services (IIS) is configured to log the authenticated user name for each
HTTP request. To prevent user information from being logged, follow the steps below:
Procedure
1. Follow the link to Default Log File Settings for Web Sites <logFile> to find information on log file settings.
2. Navigate to the How To section.
3. Follow steps 1 to 5 in the How To section. In step 5, disable the <User Name (cs-username)>field.
4. Apply the settings.
Results
Server Security
Technical information about the server that can be received by protocol standards should be adjustable and
suppressible.
The delivery of the server information within the HTTP header can be minimized by editing the file
web.config. For more information, see http://msdn.microsoft.com/en-us/library/e1f13641.aspx.
SAP Disclosure Management exposes Web services based on ASP.NET. These Web services are used for the
communication between the application server and the Microsoft Office add-in.
The services offered by the application use their own mechanism enabling generation of an authenticated user
at the service consumer user:
SAP Disclosure Management automatically displays help pages for its Web Services. For security reasons,
you can disable this feature. To do so you have to modify the webServices section of the Web.config file to
explicitly remove the documentation protocol:
Source Code
<webServices>
<protocols>
<remove name="Documentation" />
</protocols>
</webServices>
If you install the SAP BW adapter provided by SAP Disclosure Management, Web services for communication
with the SAP Disclosure Management server are installed on the SAP BW server. Make sure that the settings
for communication security and channel authentication are identical for all these Web services.
For more information on secure configuration of these Web services, see the section “Installing the SAP BW
Adapter” in the SAP Disclosure Management Installation Guide.
Javascript
When accessing the application in a Web browser, JavaScript code is executed in the frontend.
In the Administration/System Configuration/Misc dialog, you can enable or disable enforcement of file type
validations:
• If you enable this setting, uploaded files are checked before they are saved in SAP Disclosure Management.
No files are uploaded if this check fails. The file content is checked against the allowed file types of the
upload target. These file types can be, for example, XML configuration files, Microsoft Word files for report
templates, or defined file types of a report type.
• If you disable this setting, the file type is still checked against but upload restrictions are deactivated.
Instead, an INFO log entry is generated.
Note
Note
Changes to this setting are logged in the audit trail events log.
In the Administration/System Configuration/Misc dialog box, you can enable or disable enforcement of virus
scans:
• If you enable this setting, uploaded files are checked before they are saved in SAP Disclosure Management.
No files are uploaded if the scan is positive. The file content is scanned for viruses with the locally installed
antivirus software.
• If you disable this setting, the files are not scanned.
Note
Note
Changes to this setting are logged in the audit trail events log.
• It prevents the service host from being overrun by a large number of requests.
• It enables the load on the service, as well as the server on which the service is running, to be smoothed out.
In both cases, the intent is to place a limit on the number of incoming requests so that the service is able to
handle them in a timely manner.
The settings in the service behavior control the number of requests the service host is allowed to process
simultaneously. These settings are defined in the ServiceThrottlingBehavior section of the TaskEngine
configuration file:
• MaxConcurrentCalls
The MaxConcurrentCalls value specifies the number of simultaneous calls the service accepts. The
default value is 16 calls. Of the three settings, this is the only one that covers all the types of incoming
requests.
• MaxConcurrentSessions
The MaxConcurrentSessions value determines the maximum number of channels requiring sessions that
the service supports. The default value for this setting is 5 session-aware channels. Any attempt to create a
channel beyond this maximum limit triggers a time-out exception. This setting only handles session-aware
channels. if the binding is not session-aware, for example, the basicHttpBinding, this setting has no impact
on the number of requests that can be processed.
• MaxConcurrentInstances
The MaxConcurrentInstances setting defines the maximum number of instances of the service
implementation object that is created. The default value for this setting is 10 but is currently not used.
In the Administration/System Configuration/Misc dialog, you can enable or disable enforcement of plugin
validations:
• If you enable this setting, uploaded plugins are validated before they are saved in SAP Disclosure
Management. No plugins are uploaded if this validation fails. The plugin content is validated if it is signed
correctly.
Note
Note
Changes to this setting are logged in the audit trail events log.
In the Administration/System Configuration/Misc dialog, you can enable or disable the parameter Restrict
User Editing. If you enable it, it is not possible for other users to edit a user account that does not belong to
an entity yet. You can only deactivate the account.
Note
To enforce a global password policy, you have to set the Enforce Password Policy parameter to Yes on the
Password Policy tab. Choose Administration System configuration Password Policy . This parameter is
set to No, by default, after you have installed the SAP Disclosure Management. If the parameter is set to Yes,
you can define the following policy parameters:
Lifecycle of Passwords
Password Lifecycle Definition Default Value
Number of days for password expiration Number of days before actual pass- 7
warning word expiration that a warning message
should appear after successful logon to
the SAP Disclosure Management server
To deactivate any of the above-mentioned parameters, insert the value 0. The specific requirement will then be
ignored during the password policy validation process. Once you have completed the policy definition, choose
Save to implement all settings. Once the parameters have been set and saved, a pop-up is displayed, where
you can define whether all users should be prompted to change their passwords after their next logon. If you
choose Yes, every user will be redirected to a Change User Information form the next time they log on to SAP
Disclosure Management. On this form, users can change the password according to the enforced password
policy.
If a user's password has expired, they are automatically redirected to the Change User Information form the
next time they log on to the SAP Disclosure Management server. Here, they can change their password, as
required.
Character Specification
Character Type Character Definition
Special Characters All characters that are neither a letter nor a number (^, °, !, ",
§, $, %, &, /, (, ), =, ?, [, ], )
You can define the password hash algorithm used to generate password hashes. You have the following options:
• SHA-1 (HMACSHA1)
• SHA-2 algorithms :HMACSHA256 and HMACSHA512
• PBKDF2
The PBKDF2 Password Storage Scheme provides a mechanism for encoding user passwords using the
PBKDF2 message digest algorithm. PBKDF2 is the short name for PBKDF2-HMAC-SHA512.
Note
A change of the hash algorithm results in a reset of all user passwords to the default password defined
under Administration System configuration Misc Default Initial Password . Make sure that you edit
this parameter before you change the algorithm.
Password Hashes
Password Hash Algorithm Select the hash algorithm used for gen- PBKDF2
erating user password hashes.
Passwords are stored using a strong hash. The password hash is designed as follows:
• The application server stores a secret “MachineSalt” on disc. The MachineSalt is a high-quality random
number.
• Every password is salted with a UserSalt (a high-quality random number).
• The salted password is hashed using a user-defined hash algorithm, where MachineSalt is the secret key.
For more information, see the chapter Password Policy [page 45], under Password Hash Algorithm in the
Security Guide.
The MachineSalt is stored in the web.config file. The install.exe tool automatically generates the MachineSalt
and adds it to the web.config file.
Sample Code
<configuration>
<appSettings>
<add Key = "MachineSecret" value = "1231231243443"/>
</appSettings>
<configuration>
Note
If you have multiple application servers, the MachineSalt needs to be identical on all servers.
When you upgrade to SAP Disclosure Management 10.1 SP08, passwords are secured as shown in the graphic
below:
You can use single sign-on (SSO) authentication with SAP Disclosure Management. When a web browser or a
SAP Disclosure Management Client sends a login request to SAP Disclosure Management Application Server
the system follows the authentication steps as shown in the figure below:
1. The client sends a request to the application server. The application sever obtains the Windows Identity
which consists of the domain and the user name of the current connected user to Microsoft Internet
Information Server(IIS).
2. The application server tries to authenticate the obtained Windows Identity in the SAP Disclosure
Management database. This is an internal authentication. The internal authentication is considered as
successful if:
• The Windows Identity is a valid user in the SAP Disclosure Management database.
• The user account of the Windows Identity is active.
You can use Security Assertion Markup Language 2.0 authentication (SAML 2.0 authentication) as a global
setting for authentication in SAP Disclosure Management. When a Web browser or an SAP Disclosure
Management client sends an authentication request to the SAP Disclosure Management application server,
the system follows the authentication steps as shown below:
Note
Context
You can prevent anonymous access to the help files of SAP Disclosure Management such as http://
mo-8fe9d2668.mo.sap.corp:10170/Content/Help/101/EN/frameset.htm by adding the section
below to the web.config file:
Source Code
<location path="Content/Help">
<system.web>
<authorization>
<deny users="?" />
<allow users="*"></allow>
</authorization>
</system.web>
</location>
After you have added the section above to the web.config file, users can only access the help files if they are
logged into SAP Disclosure Management.
Note
If this is the initial installation of SAP Disclosure Management, then this option is already activated. For
existing installations, you have to modify this option manually
To disable debugging in SAP Disclosure Management, refer to the following Microsoft article Disable Debugging
for ASP.NET Applications .
Context
By default, the session timeout is set to 100 minutes in SAP Disclosure Management (SAP DM). To change this
setting, you can edit the web.config file by following the steps below:
Procedure
Context
By default, the Fiori session timeout is set to 240 minutes in SAP Disclosure Management (SAP DM). To change
this setting, you can edit the web.config file by following the steps below:
Procedure
• Data Connector
No special security settings are required for the Data Connector.
• Microsoft Office Add-In
In order to interact with the SAP Disclosure Management application, the user name and password need to
be set.
• Taxonomy Designer
• SAP Disclosure Management XBRL Mapper.
For information about current improvements or security patches for these applications, see the Taxonomy
Designer Help at http://help.sap.com/bodm100.
If XBRL features are not needed, SAP Disclosure Management can be run without SAP Disclosure Management
XBRL Mapper and Taxonomy Designer.
Hyperlinks
Some links are classified by an icon and/or a mouseover text. These links provide additional information.
About the icons:
• Links with the icon : You are entering a Web site that is not hosted by SAP. By using such links, you agree (unless expressly stated otherwise in your
agreements with SAP) to this:
• The content of the linked-to site is not SAP documentation. You may not infer any product claims against SAP based on this information.
• SAP does not agree or disagree with the content on the linked-to site, nor does SAP warrant the availability and correctness. SAP shall not be liable for any
damages caused by the use of such content unless damages have been caused by SAP's gross negligence or willful misconduct.
• Links with the icon : You are leaving the documentation for that particular SAP product or service and are entering an SAP-hosted Web site. By using
such links, you agree that (unless expressly stated otherwise in your agreements with SAP) you may not infer any product claims against SAP based on this
information.
Example Code
Any software coding and/or code snippets are examples. They are not for productive use. The example code is only intended to better explain and visualize the syntax
and phrasing rules. SAP does not warrant the correctness and completeness of the example code. SAP shall not be liable for errors or damages caused by the use of
example code unless damages have been caused by SAP's gross negligence or willful misconduct.
Bias-Free Language
SAP supports a culture of diversity and inclusion. Whenever possible, we use unbiased language in our documentation to refer to people of all cultures, ethnicities,
genders, and abilities.
SAP and other SAP products and services mentioned herein as well as
their respective logos are trademarks or registered trademarks of SAP
SE (or an SAP affiliate company) in Germany and other countries. All
other product and service names mentioned are the trademarks of their
respective companies.