Page History
| Navitabs | ||||
|---|---|---|---|---|
| ||||
|
Introduktion
Som det kan ses på SEAL.JAVA 2 - Guide til anvendere siden, så er det ikke nødvendigt for udviklerne at producere XML. Udviklerne slipper også for at håndtere digests eller digitale signaturesignaturer.
Denne form for kompleks logik er indkapslet bag elementer fra biblioteket.
Moduler
Fra version 3 er Seal.java splittet op i moduler for at give mulighed for kun at hente den dokumentation man har brug for. Dermed kan man undgå at hente den del af koden, som er beregnet til STS.
Følgende moduler er oprettet:
...
.
...
...
Objekt Hierarkiet
DGWS
De centrale POJO'er i forbindelse med Idkort (DGWS) udgør et simpelt objekthierarki som vist nedenfor i nedenstående figur.
...
I andre tilfælde, f.eks. når man leverer data til Lægemiddelstyrelsen i natlige batch, er det kun nødvendigt at kende systemets identitet. I dette tilfælde er et SystemIDCard tilstrækkeligt.
BST2IDWS
Ligesom i DGWS tilfældet, så findes der i SEAL klasser til omveksling fra boostraptokens til IDWS tokens (borgere)
| Gliffy Diagram | ||||||||
|---|---|---|---|---|---|---|---|---|
|
Ved omveksling til IDWS tokens, findes klassen OIOSAMLFactory, som både benyttes i forbindelse med at lave et BST2IDWS request og det indlejrede bootstraptoken (en af de tre underklasser til OIOBSTSAMLAssertion), og i forbindelse med at parse response dokumentet.
BST2SOSI
Nedenfor vises klassehierarkiet for omveksling fra bootstraptokens til SOSI idkort (medarbejdere). Bemærk at Assertion klasserne til BST2SOSI indgår i samme hierarki som BST2IDWS.
| Gliffy Diagram | ||||||||
|---|---|---|---|---|---|---|---|---|
|
Ligesom for BST2IDWS omvekslingen, benyttes OIOSAMLFactory her til oprettelse af bootstraptoken, request og response objekter.
Bibliotekerne
Indgangspunktet for udviklerne er altid “SOSIFactory”, “IDWSHFactory”, “OIOSAMLFactory” eller "OIOIDWSFactory". Disse er beskrevet under SEAL.JAVA 2 - Guide til anvendere.
Herfra er det muligt at oprette nye anmodningsobjekter, svarobjekter, ID-kort, IdentityTokens osv., samt at de-serialisere XML til “kopier” af objekter fra afsendersiden.
Biblioketerne har et "CredentialVault” tilknyttet. CredentialVault er en simpel indkapsling af PKCS-elementer (Public Key Crypto System): et (muligvis tomt) sæt betroede X.509-certifikater og nul til en et offentlig-privat nøglepar.
CredentialVault overføres til SOSIFactory på byggetid.
Vaults
Den konkrete realisering af vaults kan variere med det miljø, hvor biblioteket bruges. I et simpelt miljø kan realiseringen være en filbaseret CredentialVault, der læser en PKCS # 12-fil og pålidelige X.509-certifikater fra disk (eksempel kan findes i koden), eller en realisering baseret på en database/cache i et komplekst J2EE-miljø.
...
| Gliffy Diagram | ||||||
|---|---|---|---|---|---|---|
|
Custom vaults
Håndtering af primære nøgler er ikke angivet i biblioteket. Så enten foretages en hjemmelavet realiseringen af CredentialVault-grænsefladen, eller hvis miljøet tillader det, så kan man bruge enten FileBasedCredentialVault, RenewableFileBasedCredentialVault eller ClasspathCredentialVault, som alle leveres med biblioteket.
...
Hvis du vælger at implementere dit eget credential vault, skal du tage et kig på GenericCredentialVault og tilhørende og tilhørende sub-klasser klasser til inspiration.
Et En Credential Vaults Vault kan realiseres på forskellige måder:
- At lade en database gemme de betroede certifikater og systemoplysninger.
- Inkluderer Inkludere de betroede certifikater og systemoplysninger i distributionen af applikationen (EAR, WAR, JAR-fil).
- Indlæse credentials og certifikater en gang ved opstart (fra en hemmelig fil / bibliotek / CD) og gemme legitimationsoplysninger og certifikater i en cache.
- Hvis der kører køres på en applikationsserver, kan credential vault integreres i trust store og credentails store på applikationsserveren.
- En "hardkodet" klasse, der indeholder de betroede certifikater (STS-certifikat) og systemoplysninger (primær nøgle til dette system).
Bemærk, at brugen af CredentialVault til opbevaring af federation federation certifikater er blevet fravalgt til fordel for Federation-mekanismen. Det anbefales stærkt at en CredentialVault kun gemmer private certifikater og nøgler, når de bruges sammen med federation. Som nævnt tidligere inkluderer SOSI-biblioteket også EmptyCredentialVault, som bruges, når der ikke kræves en federation.
EmptyCredentialVault kaster CredentialVaultException, hvis dens metoder bliver kaldt, fordi dette betyder, at du prøver at håndtere et sikkerhedsniveau over niveau 1.
Federations
Konfigurationen kan også suppleres med en federation, som applikationen, der bruger biblioteket, skal fungere indenfor. Denne federation er defineret i henhold til den certificeringsmyndighed, der udsteder de certifikater, der bruges i federation, og identiteten af STS.
Hvis (og kun hvis) en federation er defineret, kan biblioteket automatisk udføre spærringskontrol, når man verificerer digitale signaturer på hentede ID-kort. Biblioteket vil også være robust mod fornyelse af STS-certifikatet.
Federation er den foretrukne mekanisme til at skabe tillid (trust) inden for SOSI, og brugerne opfordres kraftigt til at gøre brug af de indbyggede federations i SOSI-biblioteket.
Se desuden eksempler i SEAL.JAVA 2 - Guide til anvendere
Certifikater og kryptosystemer
SOSI-biblioteket kræver ikke en bestemt JCE
...
- Kryptoudbyderen skal levere RSA-SHA1-algoritmen.
- Hvis systemoplysninger er gemt i #PKCS12-filer, skal kryptoudbyderen være i stand til # PKCS12-formatet.
- Hvis den indbyggede mekanisme til soærringskontrol spærringskontrol af certifikater bruges, så kan det være nødvendigt med en ekstern kryptoudbyder, der understøtter “X.509”.
Hvis du ikke har en kryptoudbyder, der overholder disse krav, kan Bouncy Castle-kryptoudbyderen (http://www.bouncycastle.org/) bruges.
IDWS funktionalitet
Der er funktioner i SEAL, som kan bruges til at opbygge de requests og response objekter der bruges, når man omveksler OIO Bootstrap token til identity token.
...
Man kan oprette et LibertyResponse med det svar man har modtaget fra Service udbyderen og man har mulighed for manuelt at validere indholdet response.
Note: Fra version 2.5.20 og 2.6.9 placeres elementet BinarySecurityToken på Security elementet i stedet for Header. For at få den gamle opførsel, kan man sætte environment variablen NSP_USE_LEGACY_BINARY_SECURITY_TOKEN_PLACEMENT.
Brugen af IDWS funktionaliteten er vist i nedenstående sekvens diagram.
Sekvensdiagram
| Gliffy Diagram | ||||||||
|---|---|---|---|---|---|---|---|---|
|
...