Skip to Content

Background :

I came across the situation where I need to implement SSO for Fiori launchpad. First thing came in my mind was to do through SAP NW portal since you can very easily achieve this by doing SSO between portal and Fiori. You need to configure SPNEGO on portal to make this entire thing work.

User open portal URL which redirected to Fiori launchpad. Issue with this you will have an additional portal page open which you don’t want any other users to see if you have published Fiori launchpad through your company portal or some other web page.

What tools required?

ADFS system in your organization

Fiori Gateway system

Certificate Signing Authority

How to achieve SSO through SAML?

  • Activation of SICF

First thing you need to login to SAP ABAP system/Gateway system where your Fiori Launchpad is opening from.

 

Go to transaction SICF and Activate SAML2 web service

 

Once you have this Service activated you will able to run SAP TCode: SAML2

  • HTTPS configuration on ABAP system

Before we run in to configuration make sure you have HTTPs enabled for your gateway systemand certificates are signed as below.

Create profile parameter for HTTPS as below

icm/server_port_X PROT=HTTPS,PORT=1443,TIMEOUT=600,PROCTIMEOUT=3600

Restart ICM and check you see HTTPS is enable for your system in SMICM Tcode

  • SAML configuration on ABAP/Gateway system

 

Local Provider

Simply run TCode : SAML2 and you will see screen below on your browser, what you need to do is –> Enable SAML 2.0 Support –>Create SAML 2.0 Local Provider.

Add Provider name and click next

Note: I prefer to put FQHN as provider name

 

Continue with default option on General settings screen

 

Press Finish on Service Provider Setting

 

Final Configuration of your service provider will be looking like this

Under:Identity Provider Discovery: Common Domain Cookie (CDC)

Selection Mode can be change to Automatic

This will be auto generated in TCODE: STRUST

 

      Trusted Provider

First download Metadata file from your ADFS

Link is : https://fqdn of ADFS/FederationMetadata/2007-06/FederationMetadata.xml

Note: ADFS server always access through HTTPS:// and NOT HTTP://

 

Go to Trusted Providers TAB and upload Metadata File

Click Next on screen

Provide signing certificate and click next

Note getting certificate.

Create new blank file with file type .cer

Edit file with Notepad.

 

 

Open your FederationMetadata.xml

and Copy certificate content in TXT file.

 

You can find this at the beginning of the file

Open ADFS website and export certificate and opening with notepad and copy content to text file you created

 

Final file is ready

 

Click Next and provide Alias name

Click Next on this screen

Click Next

Click Next

Click Next

Select Comparison Method: Better and click Finish

You have trusted provider setup almost ready as below

 

Click edit and add Supported NameID Formats

I have selected option as below

 

Final Screens of Trusted Providers are as below

 

Now Save changes and enable configuration

Click OK

Configuration is enabled now

 

     Configure ADFS

Go to TAB Local Provider and download MetaData

Select All option and download

 

Save the file.

 

Login to your ADFS server through remote desktop session and copy metadata.xml to desktop of server

 

Open AD FS Management tool from – Control Panel\System and Security\Administrative Tools

 

Navigate to Trusted Relationship >> Relying Party Trusts

and

Add Relying Party Trust

 

Click Start

Provide metadata file

 

Click OK

 

Provide name

Note: I prefer SAP SID name

For now I am going with defaults on next screen and you can select accordingly

 

Permit all users

 

Click Next

Check TABs inside you have information below

Identifiers
Encryption
 Signature
 Endpoints
 Advanced

 

Click Close

Note: Make sure you have checkbox selected

Add Rule

 

Click Next

 

Provide information what you previously selected under “Supported NameID formats”

 

Click Apply and OK

 

Edit newly created Relying Party Trust prperties

 

Go to Advanced TAB and change Secure hash algorithm to SHA-1

Note: Match this with what you selected on your ABAP system

 

Testing

 

Open URL of your SAP WEBGUI

https://HOST:PORT/sap/bc/gui/sap/its/webgui/

 

Error as below

 

Apply SAP Note : 2447142 – Error in ST program DECOMPRESS_TEXT

 

Test URL again and you will able to login without password.

 

Thank you for reading.

Yogesh

To report this post you need to login first.

42 Comments

You must be Logged on to comment or reply to a post.

  1. Matt Fraser

    Hi Yogesh,

    Thanks for providing all these steps; this looks fairly complex! More so than SPNEGO configuration for the Portal, anyway.

    One question I have is with regard to licensing (yeah, yeah, I know, we’re not supposed to discuss licensing, blah blah blah, but I think that applies more to details of individual contracts, not generic questions). My understanding has been that to provide Single Sign-On for ABAP systems, a license for NWSSO is required, which is different from the case of using SPNEGO in Java systems (where it’s “built in”). If I understood your blog correctly, you aren’t using the NWSSO product at all here; you’re demonstrating a native capability for SSO within the ABAP system. Is that correct? If so, what does that imply for NWSSO licensing requirements?

    Cheers,
    Matt

    (0) 
    1. Yogesh Patel
      Post author

      Hello Matt,

      You are right. We looked in to buying SAP NW SSO 2.0 product but it was quite expensive. We do not wanted to buy that and achieve SSO on ABAP/JAVA systems.

      Since we are big shop of Microsoft we decided to go with FREE version of SSO and this is what it is. SSO with ADFS. Soon I am going to publish blog for JAVA.

      Cheers,

      Yogesh

       

      (1) 
  2. Roy Brasse

    The SAML option is great, but only supports the Fiori Launchpad or other browser based sessions.

    How are you addressing SAP GUI, Business Client, etc. SSO?

    I agree that SAP should include the SSO license in their existing licensing model (per user) as this is a basic feature that most other vendors provide at no cost.  That’s my $0.02.

    Thanks,

    Roy

     

    (1) 
      1. Conrad Thonger

        In ADFS, the signing and encryption certificates are good for a year.  Sixty days before it expires, ADFS generates a new set of certificates and sets them as secondary. Ten days before the certificate expires, ADFS will do a certificate flip where it makes the new certificate the primary and moves the old one down to secondary.

        In a number of other systems, they will have automatically have pulled down that new certificate from ADFS and when the flip happens, it’s ready to use it.

        What the original poster was asking is, does SAP have the capability to pull down the new certificate and start using it automatically in advance of the old one expiring, or do you have to manually update the certificate at least 20 days before it expires to prevent your SSO from breaking due to ADFS’ certificate switch?

        This was the very issue that happened to me today which crippled our Fiori environment for two hours until we sorted it out.

        -Conrad

        (0) 
  3. Shantanu Bansal

    Hi Yogesh,

    Our Fiori and S/4HANA systems are on Red Hat Linux platform. With respect to client wishes, we are researching our options for SSO.

    SAP support has informed us that due to Linux being our OS, we cannot use Kerberos based SSO for ABAP and Fiori (via SPNego or SAML2.0). In other words, out of box SSO options for SAP systems on Linux are unavailable.

    Do you think otherwise? Are you SAP application running on Windows?

    Thanks, Shantanu

    (0) 
  4. Kumar Subramaniam

    Hi Yogesh,

    I followed your document as well to configure the SSO with ADFS and it is a great article. Thanks for  it.

    Quick question, Whenever I launch the fiori URL, it is always prompting me to enter the Windows AD user and password? I thought it should be password free when you are in the network?  Any settings that you need to make that password free?

    Thanks

    (0) 
    1. Yogesh Patel
      Post author

      Its doing the way it should be. We have it published on our Share point web portal so its seamless for us but you are right it is taking windows username password to login because its going through AD authentication.

      -Yogesh

       

      (0) 
  5. S. van Gemert

     

    Hi Yogesh

     

    Nice job on detailing all the steps.

     

    We have setup S/4 with separate Fiori fontend server.

    For FLP I now setup saml2 and for sapgui we are using spnego.  During the setup of Enterprise Search the S/4 system is requesting spnego tokens, which are not in the request header. We are going to fix that.

     

    But what I am wondering is why not replace saml2 with spnego also for the web access? We do not have an SAP Portal that the customers access, so will probably not get that popup.

     

    Was that extra screen the only reason not to choose spnego/Kerberos?

     

    Thanks for your time and effort

     

    gr

    Sander van Gemert

    (0) 
  6. zhihua Zuo

    Hi Yogesh,

    Great work and very detailed.

    Really appreciate it.

    I have a question, does this solution support Fiori use scenario with SAP Fiori Client, which is a mobile app delivered by SAP itself.

    Many thanks.

    zhihua

    (0) 
    1. Yogesh Patel
      Post author

      Hi zhihua,

      Sorry but I have not tested it so I do not know its going to work or not. You can give it try and share results with community.

      -Yogesh

      (0) 
  7. Former Member

    Hi Yogesh,

    First off, thanks for the well documented steps for both JAVA and Fiori Launchpad SAML2 configuration with ADFS.
    I have a scenario to configure SSO for Fiori and EP where the AD user IDs are completely different from the SAP user ids. Also the AD users are from three different domains.
    And after going through various documents and your blog, what I understood is that the basic configuration remains same, but the claim configuration at ADFS side and SAP side will need to be configured accordingly. Could you please confirm if my understanding is correct and also what attributes I can use to attain SSO for EP and Fiori.

    Regards,
    Harsh

    (0) 
  8. Michael Walker

    How can I let a user deactivate the SSO on the launchpad so that they can log in as someone else?  For security role testing for instance?

    (0) 
  9. Module EAI

    Hi Yogesh,

    This is really nice.

    Can I have a question?

    You said “First download Metadata file from your ADFS”.

    Is the Metadata file has SAP’s login ID?

     

    Many thanks.

     

    Dong Woo

    (0) 
      1. Module EAI

        Thank you for replying.

        One more question, when we call https://host:port/sap/bc/gui/sap/its/webgui, we need to put AD’s ID/PW.

        Could you give me more help?

         

        Many thanks.

        (0) 
    1. B. Wiegers

      Hi,

      There is an mapping table USREXTID for that.

      See: https://help.sap.com/saphelp_nw73/helpdata/en/b3/56e39da6e1a3438b42c29c6b2da17b/frameset.htm

      For this to work you need also change the User ID Mapping Mode to: ‘Mapping in USREXTID table, type SA’

      The User ID Mapping Mode is under Trusted Providers – Identity Federation.

      I have succesfully implemented this at our site.

      Succes

      Bart

       

      (0) 
  10. Sreekanth S

    Hi Yogesh,

     

    We have configured sap Fiori SSO with adfs.

     

    When we try to open sap fiori url , it is prompting to enter ad/adfs credentials after that again it is prompting to enter sap Fiori system credentials.

    Could you please let me know where we are missing.

     

    Regards

    Sreekanth

     

    (0) 
  11. Renan Ceguinato

    Yogesh Patel I understood your blog. I have a question about handling redirection login, in this case, How can i reach redirect login AD and SU01? Example: SU01 (until 12 characters: RCRR) > AD (renan.ceguinato) through SAML 2.0?

    (0) 
  12. Saba Sheikh

    Hello Yogesh,

     

    Your blog’s super helpful ! Thanks 🙂

     

    We’ve setup stuff as described here…however, we see one anomaly:

    The first attempt prompts us for Windows (AD) credentials.

    After entering these, it goes in an infinite loop & ends up with a redirect error.

    The second time when the URL is used in the same browser, SSO works fine (without a prompt for Windows credentials).

    It picks up credentials from the cache & everything’s Ok.

     

    Any idea what could be amiss ?

    Please advise…

     

    Thanks a lot !

    saba.

    (0) 
      1. Saba Sheikh

        Hi Yogesh,

         

        Yes, I’m logged in with the same AD creds.

        Attempt 1: There is a SAML Outgoing Authentication Request without a Response 

        Attempt 2: SAML Outgoing Authentication Request with an Incoming Response

        We’re not sure why the ADFS does not respond the first time…

         

        With a populated cache, (second attempt) everything’s fine.

         

        Thanks a lot !

        saba.

        (0) 
  13. Asif Pasha Shaik

    Hi Yogesh,

    Thank you for the article. We have ADFS with our client as idP. So we can implement SSO for gateway server.

     

    Can we do SSO for mobile access as well same away. Could you please help.

     

    (0) 
  14. Javier Iribarne

    Hi Yogesh

    Thanks for this post.

    I have doubts regarding to manipulating file cert steps.

     

    Is not clear for me how do you créate ADFS_Cert.cer file. You say:

     

    Step 1 – créate a blank file named ADFS_Cert.cer.

    Here you wrote “file type .crt”. So, that’s wrong?  The correct will be  .cer  right?

     

    Step2 .- Opening FederationMetadata.xml

    The interesting piece of this file is the certificate , I mean, the characters between “<X509Certificate>” and “</X509Certificate>“.   Right?

    So this piece, we have to copy into blank file created before, right?

     

    Step 3 Open ebsite and export certificate

    Here we have to go into ADFS, export the certificate, into another temporal file??

    And then we have to append this temporal content to file of last step?

     

    Step 4- Final file

     

    so, the final file, named ADFS_Cert.cer Will be composend of two contents parts? firt one, the certificate extracted from metadata, and second one the certificate exported from ADFS website?

     

    Thanks and regards

    Javier

     

     

    (0) 

Leave a Reply