Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
languagec#
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:

...