Skip to Content

Instead of using the user ID and password to access a service from the Web Application Server ABAP via HTTPS, it is possible to use a client certificate for authentication purposes.


Import the CA certificate into the SSL server Standard

As a given user ID holds a certificate from a trusted CA, the certificate from the CA must be imported into the SSL server Standard PSE via STRUST. Just click on the button highlighted by the red rectangle:

SSO-X509a.png


Once the certificate is loaded, just click in the “Add to Certificate List” button (see “1” in red); the certificate will be displayed in the “Certificate List” section (see “2” in red):

SSO-X509b.png


Maintain the client certificate

It is necessary to map the client certificate with the actual user ID in the ABAP system. It is time to use transaction code SM30, loading maintenance view “VUSREXTID“:

SSO-X509c.png


The “External ID type” is “DN”:

SSO-X509d.png


Click on the “New Entries” button to add the client certificate (DN) and map to the existent user ID in the ABAP side:

SSO-X509e.png


Inform the External ID (the DN field of the client certificate), the user ID (as created in transaction code SU01), then mark the “Activated” checkbox and save the entry. The information presented is:

SSO-X509f.png


There are cases where the DN length from the user ID exceeds the length of column EXTID in table USREXTID. This is not a problem: just use the button highlighted (red square) above to load the actual certificate. The system is able to store the entire subject name in the database table or calculates a hash value (and store the original subject name in a second database table).

At last, but not least, profile parameter icm/HTTPS/verify_client must be set to 1 (if the system should accept the client certificate) or 2 (the use of client certificates is mandatory).


Test if the SSO is working

For testing purposes, I used the WEBGUI internet service (via HTTPS) to test if the SSO works (assuming that the WEBGUI was correctly setup in the system): https://<FQDN>:<HTTPS port>/sap/bc/gui/sap/its/webgui

The SM50 logon trace (SAP note 495911) shows the following:

SSO-X509g.png


You can read more about the use of X.509 certificates in AS ABAP in the SAP Help page.


To report this post you need to login first.

6 Comments

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

  1. Juan Lee

    Christiano.

    I followed your steps but I am not having any success. I am using a .cer fie that I import from my browser but I do not believe this right CA certificate.

    how can I get the CA certificate?. Should I be asking our active directory person to create the CA certificate from active directory so I am loaded it into strust?

    thanks

    (0) 
    1. Cristiano Hansen Post author

      Hello Juan,

      You need to import into the certificate list of STRUST the certificate from that CA that signs the X.509 client certificates you intend to use.

      Example: I have a certificate with DN= CN=cristiano.hansen,OU=… and it is signed by a CA. This CA has a certificate with DN= CN=myCA.com,OU=…

      The certificate from the CA needs to appear in the certificate list of your SSL server Standard PSE.

      A SM50 logon trace should help you finding more information about what might be missing.

      Kind regards,

      Cris

      (0) 
      1. Juan Lee

        Thanks for the reply.

        Today, I was given  a x.509(Digicert) from my security team. They said they added this digicert into my AD account.

        Below isX.509 into Strust. Is the correct .cer file I need ? I don’t see any reference to my account name .

        thanks

        strust.JPG

        (0) 
        1. Cristiano Hansen Post author

          Hello Juan,

          Is this certificate the one used to sign your X.509 client certificate? Have you already mapped (SM30) your client certificate with your user ID?

          Regards,

          Cris

          (0) 
          1. Juan Lee

            I got to to work.

            The problem was that the Root cerfiticate and usercertificate were alittle different so it wasn’t communicating.

            Once I uploaded the correct Root certificate into STRUST, everything worked well.

            (0) 

Leave a Reply