Skip to Content
Author's profile photo Cristiano Hansen

Como configurar SSO baseado em Certificados X.509 no WAS ABAP

Decidi compartilhar alguns documentos que criei para colegas do suporte da SAP. Espero que sejam úteis. Este é o primeiro. Nos próximos dias devo publicar mais alguns.


Introdução


Existem diversas formas de SSO. A nota SAP número 1257108 fala sobre elas. A opção de usar certificados cliente X.509 como forma de SSO no Web Application Server ABAP é apresentada aqui neste documento. Um pré-requisito para utilizar essa abordagem é a existência da configuração de SSL no servidor.

Primeiro passo: cadastrar a Autoridade Certificadora (AC)

Os certificados cliente são assinados por uma AC. O WAS ABAP precisa ter uma relação de confiança com esses certificados, então cabe ao administrador do sistema importar o certificado raiz da AC na lista de certificados do PSE SSL Servidor:

X509 - 01.jpg

A “Certificate List” está vazia.

Utiliza-se o botão “Import Certificate” da seção “Certificate” para carregar o certificado da AC:

X509 - 02.jpg

Uma vez carregado o certificado, basta clicar no botão “Add to Certificate List”:

X509 - 03.jpg

Basta salvar o PSE e, caso o release do WAS ABAP seja menor que 7.02, reiniciar o processo do ICM:

X509 - 04.jpg

Nos releases 7.02 e superiores, o ICM é automaticamente notificado, como pode ser visto no log dev_icm:

“…

[Thr 2120] IcmSSLPseChanged: SSL Certificate SAPSSLS.pse was changed – refresh

[Thr 2120]   Reload OK for SSL cred “C:\usr\sap\SID\DVEBMGS00\sec\SAPSSLS.pse”

…”

Resultado final na STRUST:

X509 - 05.jpg

O parâmetro icm/HTTPS/verify_client deve ter valor 1:

X509 - 06.jpg


Segundo passo: Mapear o Usuário

Agora resta mapear os usuários ABAP (SU01) aos respectivos certificados cliente X.509. Para isso será usada a transação SM30, utilizando a View VUSREXTID:

X509 - 07.jpg

Utiliza-se o botão “Maintain” para efetuar o mapeamento. Como “External ID type” utiliza-se o valor “DN”:

X509 - 08.jpg

A primeira visão que se tem é a lista existente de entradas:

X509 - 09.jpg

Para inserir um novo certificado cliente e usuário, utiliza-se o botão “New Entries”.

X509 - 10.jpg

Devemos informar o “External ID”, ou seja, o “Distinguished Name” (DN) do certificado cliente que o usuário ABAP estará mapeado. Os campos “Seq. No.” e “Min. date” não precisam ser preenchidos. O campo “User” deverá conter o usuário ABAP, tal qual cadastrado via transação SU01. O item “Activated” deve ser marcado:

 
X509 - 11.jpg

Basta salvar a entrada e verificar os dados gerados:

X509 - 12.jpg

Terceiro passo: Testar a Solução!

Utiliza-se do “logon trace” da nota SAP número 495911 (apenas o item da transação SM50):

X509 - 13.jpg

Menu “Administration”, items “Trace” e “Active Components”:

X509 - 14.jpg

O “Trace level” sugerido é 2, com “WpType” = DIA. Apenas o item “Security” deve estar marcado:

X509 - 15.jpg 

Faz-se necessário verificar se o certificado cliente X.509 está instalado no IE:

X509 - 16.jpg

Agora acessa-se uma URL do WAS ABAP via HTTPS, onde não espera-se por autenticação baseada em usuário e senha:

X509 - 17.jpg

O resultado no IE é:

X509 - 18.jpg

O serviço WEBGUI (SAPGUI for HTML) foi carregado com sucesso, onde não houve a solicitação de usuário e senha (não foi apresentada uma tela para autenticação).

O resultado do “logon trace” foi:

“…

N Wed Mar 13 19:16:45 2013

N  dy_signi_ext: X.509 client certificate logon with ticket request

N  CertGetInfo: Subject-Name >CN=xyz, O=empresa, C=BR<

N  CertGetInfo: Issuer-Name >CN=CA_empresa, O=empresa, C=BR<

N  lookup USREXTID for certificate mapping information

N  GetUsrExtId: search for <DN, “CN=xyz, O=empresa…”> in client nnn for user “”

N  GetUsrExtId: found matching user >xyz< in client nnn

N CheckX509CertIssuer: check skipped

N  GetUsrExtId: 1 matching USREXTID entries found

N iSignSncServerLogin: client/user/lang/access/auth :nnn/xyz     /E/H/X

N iSignSncServerLogin: check for SSL requirement not required – done by ICman

N  DyISigni: client=nnn, user=xyz     , lang=E, access=H, auth=X

N  usrexist: effective authentification method: X.509 client certificate

N  Get_RefUser(nnn,xyz) =>

N  password logon is generally enabled (default)

N  productive password is still valid (expiration period=0 / days gone=0)

N  password change not required (expiration period=0 / days gone=583)

N  usrexist: update logon timestamp (M)

N  save user time zone = >BRAZIL< into spa

N  DyISignR: return code=0 (see note 320991)

…”

Observa-se que houve uma tentativa de logon baseada em certificado cliente X.509 com solicitação de ticket (para SSO baseado em “logon tickets”/cookie MYSAPSSO2).

Tanto o Subject-Name como o Issuer-Name são conhecidos. Houve o mapeamento do certificado com o usuário ABAP (graças ao segundo passo).

O método efetivo de autenticação foi o certificado cliente X.509. Como resultado final tem-se “return code=0”, ou seja, sucesso na autenticação.

Documentação relevante (em inglês):


Using X.509 Client Certificates on the AS ABAP

Nota SAP número 1257108

Nota SAP número 495911

Assigned Tags

      Be the first to leave a comment
      You must be Logged on to comment or reply to a post.