Hola,
Les hago una consulta por un problema que estamos teniendo con la configuración sso en mgap.
Tenemos un aplicación asp.net que basicamente es un sitio en donde estan registradas todas las aplicaciones dentro del ministerio que usan sso como metodo de validación.
Muy resumido, una aplicación cualquiera se registra en dicho sitio y antes de acceder a la misma se debera verificar la identidad de la persona contra el sitio de agesic.
Pero estamos teniendo un problema con el Logging Out.
Concretamente una vez deslogueado de agesic nos muestra el mensaje "Cannot navigate back to Service Provider." (adjunto archivo con captura de pantalla)
La ventana de network del explorador muestra lo siguiente:
Request URL: https://dgrn.mgap.gub.uy/PlanesDeUso/sso/sll?SAMLResponse=fZJfa4MwFMW%2FiuRdjWmsGqplrBQKHYz1z8NeRjRXJ2gi3jjWbz%2Fb1a2M0Yc8JPec3HN%2FyWL52TbOB%2FRYG52SwKPEAV0YVesqJYf92o3JMlugbBvWia2pzGBfADujEZzRqlF811Iy9FoYiTUKLVtAYQuxe3jaCuZR0fXGmsI0xFkB2lpLe2n3bm2HwvdV1WuvrWTnVUPuDSf%2FuZEacAUHND6eVzNaN6uUvLEo4CyYsTwso5gXZRwwXgZsXoZJKVkUjjI9BdyblNSqkHw2VyqkVJWcqnkskxISGF2Q54yPA28QB9hotFLblDAaxC7lLgv3jIowEgHzEs5fiXOcMI0jkSsUcTH3tyzuo5CI0J%2FHJ87a9K209%2BXnk1q55UUqQNvankg2gRtLXmd6K5uJXK26hX%2Bb7OfxdlbaAf9sH40C5yibAe7HwIta7IaiAETiZ9cmv9f6%2F%2F6R7As%3D&SigAlg=http%3A%2F%2Fwww.w3.org%2F2001%2F04%2Fxmldsig-more%23rsa-sha256&Signature=YrXUPF4ri6DfxRyT1A0qwu4V89xX7ob1rTleCU9Y1KTAD4q%2BsRPtYnJzaTTyxmlT2Fkm7os4SSFNi3wtFJRkr2DJHyxAnvgEMYlqF47pqLtaRbefzTikOQgVNpLipFR8p%2FYxDHXKhljSjAlw5iFPFEtlq6gNLpgodKHXZrg8pN%2Br9cX4chJrgv6F%2BQdlwhzacq%2FUEG2XWBEQ7WvUxy%2BV3CEMToCqxMHUPbh4BfK6dvFmbIKZpJ%2FpuY%2Fm5pqmWHMS1l2Z%2BxGb5lXdSKwwt47b3oSh2dqqbl7lsAOSGOc%2FGCGgBeacCWKOH%2BT4kZMOvl93j9A%2B91pxoP4%2BIOpCGg9Y9A%3D%3D
Request Method: GET
Status Code: 500 Internal Server Error
Remote Address: 200.40.133.162:443
Referrer Policy: no-referrer-when-downgrade
Cache-Control: private
Content-Length: 4012
Content-Type: text/html; charset=utf-8
Date: Wed, 25 Apr 2018 20:57:14 GMT
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Cookie: ASP.NET_SessionId=oucpv1im5kgnsopejepxh5kf; .ASPXAUTH=DE014D30B0E8E8032DD5B06BCA7F242BE87706B8319BCEAE99A28801EC64AD1D0531D8414283A4724B843D4812351F9608D1D7EA337C7F12862F6BD4958DF332284D593E89AA66E59693BD4FEB2D35AB0F9E0AD8DD8B7F0775C542FFB7E64C69F22CC27C25E3D36A4F33C6AC257B12FAB47698327CF126C66EC067163C28995D935F70D3E6BB5FFCB7101E52B3063ED5
DNT: 1
Host: dgrn.mgap.gub.uy
Referer: https://eid.portal.gub.uy/v1.1/idp/profile/SAML2/Redirect/SLO?SAMLRequest=fVLBitswFLwX%2Bg9G99iSLNmySLwUQsGQtpCUHnpZZOkpa7Bl15KX7d9XdrPsUkquo3kzb0Zv%2F%2FAy9MkzzL4b3QGRFKOH%2BuOHvVdDP8nTeB2XcIZfC%2FiQRKbzcn05oGV2clS%2B89KpAbwMWl4%2BfTlJmmKpvIc5RD2U%2FHgVjjhKjlGlcypsyFMIk5dZBp1Jp3EOqk%2BvS5suv7NnkpKsM1M2zaPteshWZZqdwXQz6JBdTt9Q0hwPqDNasbwwhmNsLMOmEKqyUAGzBNqWsujZeL9A43xQLsQ1MBE7zHaUf6dY8lISklacVkzwnyg5g%2FLravfC9VslcokR0btGpvtTMUkY9dij2G2SbO3KbbO5fu3BXGeXDlc13WrYZ%2B9Zb2Nfo3hzTD6P86DCfdcV6czOblQZZuV8By6g%2BrFlqsW2Ym3JBCtJpbloC4vzytiWAGc3879eb%2BaTvIBfP7RxBl5qTEHnnGphqjYHyypRMkyZxpYJCgXFjEBBDGcgItVqwbWyoqCi1Llh5Obyj2g8vuw%2F11f%2FAQ%3D%3D&SigAlg=http%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1&Signature=M8DhEHLGV3TvukC%2fTc%2fPlYZJT2I0IShg0MhQsyMnWEBRUGrmH52mENY4TYCAgZ%2bPgCtgVzK0fbBaPprX4mJ7vvQld4LDHswt%2b7GY%2bGrp9KZ8j5vlbfJ7jltK6qmbJjz%2fweROP05jyuQqQDnU92%2f3JxW%2fWK7gQR3WyoZvjU5fL24T5aMNlInab6mu06egcgZy2XI%2bx6U4tCu4Tycr%2fR%2bKfpOcVNw7TQTmYJpw%2bw02nFcOwfX5b%2bHHjIJfadapTK8v5hJ%2biJjelXou2CPKhLDeii0dOIJN3ayPszmWtCsbSv4cxF%2bh40mq%2fRxG%2bnFEka4FSIe2QnghvwNnTwrAJnubjg%3d%3d
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36
SAMLResponse: fZJfa4MwFMW/iuRdjWmsGqplrBQKHYz1z8NeRjRXJ2gi3jjWbz/b1a2M0Yc8JPec3HN/yWL52TbOB/RYG52SwKPEAV0YVesqJYf92o3JMlugbBvWia2pzGBfADujEZzRqlF811Iy9FoYiTUKLVtAYQuxe3jaCuZR0fXGmsI0xFkB2lpLe2n3bm2HwvdV1WuvrWTnVUPuDSf/uZEacAUHND6eVzNaN6uUvLEo4CyYsTwso5gXZRwwXgZsXoZJKVkUjjI9BdyblNSqkHw2VyqkVJWcqnkskxISGF2Q54yPA28QB9hotFLblDAaxC7lLgv3jIowEgHzEs5fiXOcMI0jkSsUcTH3tyzuo5CI0J/HJ87a9K209+Xnk1q55UUqQNvankg2gRtLXmd6K5uJXK26hX+b7OfxdlbaAf9sH40C5yibAe7HwIta7IaiAETiZ9cmv9f6//6R7As=
SigAlg: http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
Signature: YrXUPF4ri6DfxRyT1A0qwu4V89xX7ob1rTleCU9Y1KTAD4q+sRPtYnJzaTTyxmlT2Fkm7os4SSFNi3wtFJRkr2DJHyxAnvgEMYlqF47pqLtaRbefzTikOQgVNpLipFR8p/YxDHXKhljSjAlw5iFPFEtlq6gNLpgodKHXZrg8pN+r9cX4chJrgv6F+Qdlwhzacq/UEG2XWBEQ7WvUxy+V3CEMToCqxMHUPbh4BfK6dvFmbIKZpJ/puY/m5pqmWHMS1l2Z+xGb5lXdSKwwt47b3oSh2dqqbl7lsAOSGOc/GCGgBeacCWKOH+T4kZMOvl93j9A+91pxoP4+IOpCGg9Y9A==
En el web.config esta configurado de la siguiente manera:
<system.webServer>
<validation validateIntegratedModeConfiguration="true"/>
<handlers>
<remove name="SAML2.Protocol.Saml20SignonHandler"/>
<remove name="SAML2.Protocol.Saml20LogoutHandler"/>
<remove name="SAML2.Protocol.Saml20MetadataHandler"/>
<add name="SAML2.Protocol.Saml20SignonHandler" verb="*" path="acsl" type="SAML2.Protocol.Saml20SignonHandler, SAML2"/>
<add name="SAML2.Protocol.Saml20LogoutHandler" verb="*" path="sll" type="SAML2.Protocol.Saml20LogoutHandler, SAML2"/>
</handlers>
<modules>
<remove name="ApplicationInsightsWebTracking"/>
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler"/>
</modules>
</system.webServer>
<saml2>
<allowedAudienceUris>
<audience uri="https://dgrn.mgap.gub.uy"/>
</allowedAudienceUris>
<serviceProvider id="https://dgrn.mgap.gub.uy" server="https://dgrn.mgap.gub.uy">
<signingCertificate storeName="My" storeLocation="LocalMachine" findValue="59c823648234994982b517cdf876987894d" x509FindType="FindBySubjectKeyIdentifier"/>
<endpoints>
<endpoint localPath="https://dgrn.mgap.gub.uy/planesdeuso/sso/acsl" type="SignOn" redirectUrl="~/"/>
<endpoint localPath="https://dgrn.mgap.gub.uy/planesdeuso/sso/sll" type="Logout" redirectUrl="~/"/>
</endpoints>
<nameIdFormats allowCreate="true">
<add format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
</nameIdFormats>
</serviceProvider>
<identityProviders metadata="Metadata">
<add id="https://eid.portal.gub.uy/idp" default="true" omitAssertionSignatureCheck="true">
<endpoints>
<endpoint type="Logout" url="https://eid.portal.gub.uy/v1.1/idp/profile/SAML2/Redirect/SLO" binding="Redirect"/>
</endpoints>
</add>
</identityProviders>
<metadata>
<contacts>
<contact type="Administrative" company="Direccion General de Recursos Naturales" givenName="Alejandro" surName="Ferreira" email="aferreira@mgap.gub.uy" phone="+598 2309 7025"/>
</contacts>
</metadata>
<actions>
<clear/>
<action name="SetSamlPrincipal" type="SAML2.Actions.SamlPrincipalAction, SAML2"/>
<action name="UIDParserAction" type="SSOPortal.UIDParserAction, SSOPortal"/>
<action name="Redirect" type="SAML2.Actions.RedirectAction, SAML2"/>
</actions>
<logging loggingFactory="SSOPortal.EventLoggerFactory, SSOPortal"/>
</saml2>
Otro detalle es que el handler UIDParserAction solo dispara el metodo SignOnAction nunca llama al metodo LogoutAction a pesar de que la configuración para SigOn y Logout es similar y ambos métodos estan implementados.
Bueno les hize una intro superficial como para comenzar la conversación les voy agregando detalles a medida que los vayan necesitando.
Desde ya, muchas gracias!
Saludos,
Walter
archivos adjuntos: