Hej Leon,
"Sikker browseropstart" er en måde at foretage automatisk login i en browserapplikation ud fra et SOSI-idkort som haves enten i en klient applikation eller i en SOSI-Gateway, som klienten anvender.
I praksis skal man "veksle" sit SOSI-idkort til et "SOSIID", som reelt er et system-specifikt Identity Token, som beviser brugeren identitet men kun er gyldigt til brug i et bestemt system (fx FMK-online). Det gøres ved at kalde en separat Identity Token Service (ITS) på STS-serveren. Dette vekslingskald er en normalt DGWS kald, så SOSI-idkortet skal med i headeren, enten fra klienten eller fordi SOSI-Gateway sætter det på. Dette foregår på Sundhedsdatanettet (SDN).
Når man har fået sit SOSIID kan det anvendes ved opstart af FMK-online, som også beskrevet i den refererede tråd:
https://fmk-online.dk/fmk/sosiid?SOSIID=xxxxx#cpr=1234567890Så logges brugeren automatisk ind og hvis #cpr parameteren også er med, vil FMK-online direkte slå op på den ønskede patient.
Et kald til ITS kan fx se således ud, hvis man kalder direkte fra en klient til ITS'en.
Der er nok forskel på angivelsen af idkort, hvis man kalder via SOSI-Gateway, men det kan jeg ikke lige specificere uden at undersøge nærmere først.
Herunder er XML-delen pænt opstillet (hvilket man ikke skal gøre i rigtige requests):
POST /sts/services/IdentityTokenService HTTP/1.1
SOAPAction: http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue
Content-Type: text/xml; encoding=utf-8
User-Agent: Java/1.6.0_31
Host: niab01.nsp-test.netic.dk:8080
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Content-Length: 6439
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wst="http://docs.oasis-open.org/ws-sx/ws-trust/200512" xmlns:wst14="http://docs.oasis-open.org/ws-sx/ws-trust/200802">
<soapenv:Header>
<wsa:Action>http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue</wsa:Action>
<wsa:MessageID>urn:uuid:de8e9776-b074-49fa-9572-b0b8cb8421d1</wsa:MessageID>
<wsa:To>http://niab01.nsp-test.netic.dk:8080/sts/services/IdentityTokenService</wsa:To>
</soapenv:Header>
<soapenv:Body>
<wst:RequestSecurityToken Context="urn:uuid:7d194b03-f9a1-47f3-a11a-ee6cb1424126">
<wst:TokenType>http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0</wst:TokenType>
<wst:RequestType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue</wst:RequestType>
<wst14:ActAs>
<saml:Assertion IssueInstant="2012-05-10T07:35:37Z" Version="2.0" id="IDCard">
<saml:Issuer>TESTSTS</saml:Issuer>
<saml:Subject>
<saml:NameID Format="medcom:cprnumber">2006271866</saml:NameID>
<saml:SubjectConfirmation>
<saml:ConfirmationMethod>urn:oasis:names:tc:SAML:2.0:cm:holder-of-key</saml:ConfirmationMethod>
<saml:SubjectConfirmationData>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:KeyName>OCESSignature</ds:KeyName>
</ds:KeyInfo>
</saml:SubjectConfirmationData>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions NotBefore="2012-05-10T07:35:37Z" NotOnOrAfter="2012-05-11T07:35:37Z"/>
<saml:AttributeStatement id="IDCardData">
<saml:Attribute Name="sosi:IDCardID">
<saml:AttributeValue>QT0q6c2rZms8mnTLO5OlOA==</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="sosi:IDCardVersion">
<saml:AttributeValue>1.0.1</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="sosi:IDCardType">
<saml:AttributeValue>user</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="sosi:AuthenticationLevel">
<saml:AttributeValue>4</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="sosi:OCESCertHash">
<saml:AttributeValue>fWnwGlZ+b73DMkNIb2I7rzx5YJ8=</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
<saml:AttributeStatement id="UserLog">
<saml:Attribute Name="medcom:UserCivilRegistrationNumber">
<saml:AttributeValue>2006271866</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="medcom:UserGivenName">
<saml:AttributeValue>Muhamad</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="medcom:UserSurName">
<saml:AttributeValue>Danielsen</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="medcom:UserEmailAddress">
<saml:AttributeValue>min.email@adatatest.com</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="medcom:UserRole">
<saml:AttributeValue>Doctor</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="medcom:UserAuthorizationCode">
<saml:AttributeValue>19901</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="medcom:UserOccupation">
<saml:AttributeValue>Overtester</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
<saml:AttributeStatement id="SystemLog">
<saml:Attribute Name="medcom:ITSystemName">
<saml:AttributeValue>SOSITEST</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="medcom:CareProviderID" NameFormat="medcom:cvrnumber">
<saml:AttributeValue>25520041</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="medcom:CareProviderName">
<saml:AttributeValue>TRIFORK SERVICES A/S // CVR:25520041</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" id="OCESSignature">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#IDCard">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>QhHn/IAWralrd0Zlg/6RjYyALwA=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>e6cmnFygFtaWo6IMBAxekYFRI56+9szevPDi1mlsN8clDnrPGRRilro1D9ADc3AbeCOIm6ANqxJ3A0XaVA+wwJ8zVK4BZiuBxfAzhZ9gX//cK/ZBCQ9RtIKuzEa3VzsFRwCEUtYCdgMf9G9mINQD7RHtwJx6idFm/cz2BK7+FQk=</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>MIIFBjCCBG+gAwIBAgIEQDfroDANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQGEwJESzEMMAoGA1UEChMDVERDMSIwIAYDVQQDExlUREMgT0NFUyBTeXN0ZW10ZXN0IENBIElJMB4XDTExMDkwMTEzNDAwOFoXDTEzMDkwMTE0MTAwOFowgYMxCzAJBgNVBAYTAkRLMSgwJgYDVQQKEx9EYW5za2UgUmVnaW9uZXIgLy8gQ1ZSOjU1ODMyMjE4MUowIQYDVQQDExpEYW5za2UgUmVnaW9uZXIgLSBTT1NJIFNUUzAlBgNVBAUTHkNWUjo1NTgzMjIxOC1VSUQ6MTE2MzQ0NzM2ODYyNzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAnTc5xPDQBn95WZlY/yKH0vu4L0qOc9/M14bzAJEULYO55vqOYqSgFkOwPGqTwoK9Ajlqmn1zkdLBbwQYXRb+bEOSfJ+FTCvVo9IzKee0yQznJk0HZNTuuznpcoSybde1YXLrHupPxXUl2gNakmf65XczvE3E2J62hMYIM6Pxa9MCAwEAAaOCAsgwggLEMA4GA1UdDwEB/wQEAwIDuDArBgNVHRAEJDAigA8yMDExMDkwMTEzNDAwOFqBDzIwMTMwOTAxMTQxMDA4WjBGBggrBgEFBQcBAQQ6MDgwNgYIKwYBBQUHMAGGKmh0dHA6Ly90ZXN0Lm9jc3AuY2VydGlmaWthdC5kay9vY3NwL3N0YXR1czCCAQMGA1UdIASB+zCB+DCB9QYJKQEBAQEBAQEDMIHnMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmNlcnRpZmlrYXQuZGsvcmVwb3NpdG9yeTCBswYIKwYBBQUHAgIwgaYwChYDVERDMAMCAQEagZdUREMgVGVzdCBDZXJ0aWZpa2F0ZXIgZnJhIGRlbm5lIENBIHVkc3RlZGVzIHVuZGVyIE9JRCAxLjEuMS4xLjEuMS4xLjEuMS4zLiBUREMgVGVzdCBDZXJ0aWZpY2F0ZXMgZnJvbSB0aGlzIENBIGFyZSBpc3N1ZWQgdW5kZXIgT0lEIDEuMS4xLjEuMS4xLjEuMS4xLjMuMBcGCWCGSAGG+EIBDQQKFghvcmdhbldlYjAdBgNVHREEFjAUgRJkcmlmdHZhZ3RAZGFuaWQuZGswgZcGA1UdHwSBjzCBjDBXoFWgU6RRME8xCzAJBgNVBAYTAkRLMQwwCgYDVQQKEwNUREMxIjAgBgNVBAMTGVREQyBPQ0VTIFN5c3RlbXRlc3QgQ0EgSUkxDjAMBgNVBAMTBUNSTDI4MDGgL6AthitodHRwOi8vdGVzdC5jcmwub2Nlcy5jZXJ0aWZpa2F0LmRrL29jZXMuY3JsMB8GA1UdIwQYMBaAFByYCUcaTDi5EMUEKVvx9E6Aasx+MB0GA1UdDgQWBBQLXbSSnyHTIbP7jK5RemgCp28B2zAJBgNVHRMEAjAAMBkGCSqGSIb2fQdBAAQMMAobBFY3LjEDAgOoMA0GCSqGSIb3DQEBBQUAA4GBAIetUxFyQTFl5xNN/21EGk/U8r1/E5X/9oYLOdzOjzH3tV0al56vAovy+R16c4wjUwM3P6LPJeZeU0m5GyIGYdcbdZeNi0Z693XXcWvROfGEzOsTHe2T8j1tDu8DzY6mCVnXb8Q9aeY1G3hFLL70mE8rbtwVHgPdg3riuIbcdTXs</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
</saml:Assertion>
</wst14:ActAs>
<wsp:AppliesTo>
<wsa:EndpointReference>
<wsa:Address>http://fmk-online.dk</wsa:Address>
</wsa:EndpointReference>
</wsp:AppliesTo>
</wst:RequestSecurityToken>
</soapenv:Body>
</soapenv:Envelope>