Journey to publish on-premises SAP Fiori apps to the Internet
Recently I was asked to investigate publishing our SAP Fiori launchpad over the internet. Our main purpose was to allow mobile access from anywhere in the world. (Of course, security is a big concern when are you about to publish ESS/MSS)
Well, this was quite challenging to me as it required to make sure no unauthorized users get into our SAP Fiori environment.
I like to share my journey of how I made this possible…
First, I thought that this will be simple and easy. SAP always talks about publishing SAP Gateway server in DMZ!!! In a very novice way, it as simple as providing a public IP and making FIORI accessible over internet and secure using credentials.
However, I know many will just laugh at even putting the above thought. There are many concerns around security which needs to be addressed. After all we don’t want someone piggybacks Fiori gateway system and hacked into our network and SAP landscape.
I thought to put SAP Web dispatcher server in front of all this which makes the system more secure anyway it is a reverse proxy product…
My Game Plan…
Use Microsoft Active Directory Federation service to the authenticated user into SAP Fiori application with SAML. Microsoft Active directory federation service also supports Multi-factor authentication which is the way to go. So I got the first part to make it more secure. MFA you can not beat this! Some banks already using this…
So now what my architecture will look like? (High Level)
Let me talk to one by one component on this diagram.
Users:
A user can be anywhere in the world who is making a request to access SAP Fiori through their personal devices or shared devices and it can be Mobile or PC
Internet:
Well, Nowadays internet playing the major role in our day to day life.(Ask me how I feel when I move to a new home and no internet for 15 days)
Let me tell you in simple words… We have an entry point is through the internet for any Fiori request coming in and going out.
ADFS:
This service is allowing a user to authenticate and making sure if a request is coming from outside its prompt you to perform MFA.
Firewall:
We have only one port open on the firewall which is HTTPS and only allowing particular port and HTTPS types of the request through on internet facing firewall.
Web dispatcher:
Web Dispatcher server is a standalone server and not joined to the domain. This server has live IP address and associated with internet address for example www.wesitename.com
This web dispatcher HTTPS URL is signed with certificate signing authority so whenever you access the website it will we HTTPS and nothing else is served by it.
This web dispatcher is connected to the SAP gateway system.
This system fave filter rules and it will point to Fiori launchpad as soon as you hit enty point web URL
#requests coming from www.mywebsite.com are append with sap/bc/ui5_ui5/ui2/ushell/shells/abap/Fiorilaunchpad.html if %{SERVER_ADDR} stricmp "xxx.xxx.xxx.xxx" RegIRedirectURL ^/$ sap/bc/ui5_ui5/ui2/ushell/shells/abap/Fiorilaunchpad.html
Do not forget to add Profile parameter in your Web Dispatcher as below and change them according to your requirements.
#----------------------------------------------------------------------- # ICM Logging Parameter #----------------------------------------------------------------------- icm/HTTP/logging_0 = PREFIX=/, LOGFILE=httpaccess.log, LOGFORMAT=SAPMSG, MAXSIZEKB=10240, SWITCHTF=month, FILEWRAP=on #----------------------------------------------------------------------- # Cipher Suites Parameter #----------------------------------------------------------------------- ssl/ciphersuites = 801:PFS:HIGH::EC_P256:EC_HIGH ssl/client_ciphersuites = 816:PFS:HIGH::EC_P256:EC_HIGH
Firewall:
This is an internal firewall and only allowing Message server and https port connection to Fiori server any other type of requests are blocked.
Fiori Server:
There is HTTPS configuration done between SAP web Dispatcher and Fiori server.
So final in simple process diagram how MFA will work is as below
Hope you enjoy reading my journey document and feel free to leave comments.
Thank you for reading
Yogesh
PS: Don’t forget to change your workflow URL if you make any changes to your entry point URL
Hi Yogesh Patel,
Nice documents.
Can you pls provide HTTPS configuration with d Fiori server..
Regards,
SAM
Hello sam jon
Thank you for your feedback.
In order to configure HTTPS in Fiori you need to enable HTTPS port on your server and once you done it sign certificate with certificate authority. In our case we have it signed by internal signing authority.
Hope this helps if not let me know we can continue discussion.
Best,
Yogesh
Hi Yogesh,
Thanks for your reply.
I have enabled HTTPS port in SAP gateway server.
pls help for sign certificate with certificate authority.what is internal signing authority.
Thanks yogesh that hope you will help me.
Regards,
SAM
Hi Sam,
You can talk to your infrastructure team to get help with signing authorities.
-Yogesh
Hi,
Do you have the same Fiori apps available for both internal and external users?
Or do you you only expose certain apps to the externals?
Wonder if it's possible and secure enough to separate that only with roles, or if a separate Gateway/Launchpad for external access is required.
BR
Sveinung