Additional Blogs by SAP
cancel
Showing results for 
Search instead for 
Did you mean: 
cris_hansen
Advisor
Advisor

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:

A “Certificate List” está vazia.

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

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

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

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:

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


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:

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

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

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

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:

 

Basta salvar a entrada e verificar os dados gerados:

Terceiro passo: Testar a Solução!

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

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

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

 

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

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

O resultado no IE é:

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