Page History
...
Efterfølgende kode viser hvordan en NemidLogin Saml2Assertion konverteres til en DGWSAssertion. For herefter at oprette en Security instans der indeholder denne Assertion og kalde en FMK service.
| Code Block | ||
|---|---|---|
| ||
var callingSystem = new CallingSystem( |
...
systemName: "Seal.Net.Fmk.Demo", |
...
careProviderId: "30808460", |
...
careProviderName: "TRIFORK SERVICES A/S", |
...
careProviderIdFormat: |
...
dk.nsi.seal.dgwstypes.SubjectIdentifierType.medcomcvrnumber, |
...
certificate: new X509Certificate2("Resources/certificates/Statens_Serum_Institut_FOCES.p12", "Test1234")); |
...
var user = new User( |
...
cpr: "1802602810", |
...
givenName: "Stine", |
...
surName: "Svendsen", |
...
email: "stineSvendsen@example.com", |
...
role: "læge", |
...
authCode: "ZXCVB", |
...
occupation: "Overlæge", |
...
certificate: |
...
new X509Certificate2("Resources/certificates/MOCES_cpr_gyldig.p12", "Test1234")); |
...
ICredentialVault userVault |
...
userVault.SetSystemCredentials(user.Certificate);
// This nemidAssertion is expected to have been generated at an earlier login.
...
= <Create vault>; // This nemidAssertion is expected to have been generated at an earlier login. var nemidAssertion = NemIdAssertionBuilder.MakeNemIdAssertion(user.Certificate, system.Certificate, system, user); |
...
var assertion = new OioSamlAssertion( |
...
nemidAssertion); |
...
var |
...
domBuilder = |
...
OIOSAMLFactory.CreateOiosamlAssertionToIdCardRequestDomBuilder(); |
...
domBuilder.SigningVault = userVault; |
...
domBuilder.OioSamlAssertion = assertion; |
...
domBuilder.ItSystemName = system.SystemName; |
...
domBuilder.UserAuthorizationCode = user.AuthCode; |
...
domBuilder.UserEducationCode = null; |
...
domBuilder.UserGivenName = user.GivenName; |
...
domBuilder.UserSurName = user.SurName; |
...
var requestDoc = domBuilder.Build(); |
...
var request = |
...
OIOSAMLFactory.CreateOioSamlAssertionToIdCardRequestModelBuilder().Build(requestDoc); |
...
var idCard = SealUtilities.SignIn(request, "http://test2.ekstern-test.nspop.dk:8080/sts/services/OIOSaml2Sosi"); |
...
var client = new MedicineCardPortTypeClient( |
...
<FMK configuration>); |
...
using (new OperationContextScope(client.InnerChannel)) |
...
{ var response = client.GetMedicineCard_2015_06_ |
...
01Async( Security: SecurityHeaderUtil.MakeSecurityUsingDgwsTypes(idCard), |
...
Header: MakeHeader(), |
...
WhitelistingHeader: MakeWhitelistingHeader(), |
...
GetMedicineCardRequest: new GetMedicineCardRequestType { PersonIdentifier = new PersonIdentifierType { source = "CPR", Value = "2603558084" } } ); } /Her kan man se brugen af OioSamlFactory til at udveksle en Nemid assertion med FMK. / Generer bruger- og systeminformation for nem tilgængelighed. / Opret ny CredentialVault med bruger certifikat. / Opret en ny Saml2Assertion ud fra informationerne. / Opret OioSamlAssertion ud fra NemidAssertion / Opret ny OioSamlFactory / Opret ny OiosamlAssertionToIdCardRequestDomBuilder og initialiser med korrekte informationer. / Byg dokumentet / Opret OioSamlAssertionToIdCardRequestModelBuilder og byg requesten.Brug Sealutilities.Signin til at / sende requesten til serveren.Returnerer nyt IdCard signed fra STS / Opret ny klient til FMK kommunikation / Kald FMK. |
2.3.2. BST2SOSI
Oprettelsen af et bst2sosi request er meget i stil med et bst2idws request:
...