Skip to content

Commit

Permalink
Forenkler lokal tilgang vurdering enda mer.
Browse files Browse the repository at this point in the history
  • Loading branch information
mrsladek committed Sep 2, 2024
1 parent e7106a1 commit 6b6e4f8
Showing 1 changed file with 12 additions and 14 deletions.
26 changes: 12 additions & 14 deletions felles/abac/src/main/java/no/nav/vedtak/sikkerhet/abac/PepImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,17 +47,24 @@ public PepImpl(PdpKlient pdpKlient, PdpRequestBuilder pdpRequestBuilder) {
public Tilgangsbeslutning vurderTilgang(BeskyttetRessursAttributter beskyttetRessursAttributter) {
var appRessurser = builder.lagAppRessursData(beskyttetRessursAttributter.getDataAttributter());

if (PIP.equals(beskyttetRessursAttributter.getResourceType())) {
return vurderLokalTilgang(beskyttetRessursAttributter, appRessurser);
}

if (kanForetaLokalTilgangsbeslutning(beskyttetRessursAttributter.getToken())) {
if (skalVurdereLokalTilgang(beskyttetRessursAttributter)) {
return vurderLokalTilgang(beskyttetRessursAttributter, appRessurser);
}

return pdpKlient.forespørTilgang(beskyttetRessursAttributter, builder.abacDomene(), appRessurser);
}

private boolean skalVurdereLokalTilgang(BeskyttetRessursAttributter beskyttetRessursAttributter) {
return PIP.equals(beskyttetRessursAttributter.getResourceType())
|| kanForetaLokalTilgangsbeslutning(beskyttetRessursAttributter.getToken());
}

protected Tilgangsbeslutning vurderLokalTilgang(BeskyttetRessursAttributter beskyttetRessursAttributter, AppRessursData appRessursData) {
var token = beskyttetRessursAttributter.getToken();
var harTilgang = harTilgang(token.getBrukerId(), beskyttetRessursAttributter.getAvailabilityType());
return new Tilgangsbeslutning(harTilgang ? GODKJENT : AVSLÅTT_ANNEN_ÅRSAK, beskyttetRessursAttributter, appRessursData);
}

// AzureAD CC kommer med sub som ikke ikke en bruker med vanlige AD-grupper og roller
// Token kan utvides med roles og groups - men oppsettet er langt fra det som er kjent fra STS mv.
// Kan legge inn filter på claims/roles intern og/eller ekstern.
Expand Down Expand Up @@ -94,13 +101,4 @@ private boolean erISammeKlusterKlasseOgNamespace(String consumer) {
return residentCluster.isSameClass(Cluster.of(consumerCluster)) && residentNamespace.equals(consumerNamespace);
}

protected Tilgangsbeslutning vurderLokalTilgang(BeskyttetRessursAttributter beskyttetRessursAttributter, AppRessursData appRessursData) {
var token = beskyttetRessursAttributter.getToken();
if (kanForetaLokalTilgangsbeslutning(token) && harTilgang(token.getBrukerId(), beskyttetRessursAttributter.getAvailabilityType())) {
return new Tilgangsbeslutning(GODKJENT, beskyttetRessursAttributter, appRessursData);
} else {
return new Tilgangsbeslutning(AVSLÅTT_ANNEN_ÅRSAK, beskyttetRessursAttributter, appRessursData);
}
}

}

0 comments on commit 6b6e4f8

Please sign in to comment.