kadaster-labs / sensrnet-home

Home of the SensRNet - The Dutch National Sensor Registry Network
Other
15 stars 7 forks source link

AzureAD integratie voorbereiden (Wat hebben we nodig?) #105

Closed kad-vossef closed 3 years ago

kad-vossef commented 3 years ago

https://gitlab.com/logius/oidc of legacy SAML?

kad-busses commented 3 years ago

Het Logius profiel is een uitbreiding op het bestaande OpenID Connect protocol. Dit protocol wordt gebruikt binnen verschillende authenticatie providers. Gezien we gebruik maken van een provider (Azure AD) komen we niet direct in aanraking met dit profiel. We zullen gebruik maken van de 'normale' OpenID Connect.

kad-busses commented 3 years ago

De Azure AD integratie kan op verschillende plekken worden geïntegreerd. Twee logische opties zijn voor ons binnen de Traefik loadbalancer en binnen de registry webapp. Door Azure AD als middleware toe te voegen in Traefik kunnen we volledige routes/applicaties afschermen, terwijl binnen de webapp een vervanging/uitbreiding zal worden op de huidige login flow.

Voor nu lijkt het mij het handigste om te beginnen met de Node.js integratie. Zodoende kan er nog steeds de landing page getoond worden met uitleg. Ook lijkt voor dit scenario het meeste documentatie en voorbeelden te zijn. Gebruik kan gemaakt worden van https://github.com/AzureAD/passport-azure-ad binnen @nestjs/passport voor de OpenID Connect strategy met Azure AD v2.

Op de clusters ontsluiten we momenteel ook de beheer tooling, sommigen daarvan zijn nu afgeschermd met gebruikersnaam + wachtwoord, sommigen staan nog open(!). Hiervoor zou Azure AD authenticatie binnen elke tool nodig zijn, of gedeeld binnen de loadbalancer. Als alternatief zouden deze endpoints niet ontsloten kunnen worden, voor beheer dient dan een port-forward op het cluster gedaan te worden.

Edit: nog een derde plek waar AzureAD integratie toegevoegd kan worden, is in de toegang tot het Kubernetes cluster voor access control op de resources op het cluster. Is een good practice, wordt ook aangeraden voor Haven , maar buiten de scope van dit issue.

kad-busses commented 3 years ago

Integratie van AzureAD in de registry node vraagt om toevoegingen in de frontend en backend. Hiermee zal in eerste instantie ingelogd kunnen worden (autorisatie). Als tweede stap kunnen er binnen AzureAD groepen aangemaakt worden waar bepaalde rechten op toegekend worden, die kunnen we binnen de applicatie gebruiken voor governance (authenticatie).

Verdere uitsplitsing van benodigdheden staat in implementatie issue https://github.com/kadaster-labs/sensrnet-home/issues/70

Voor het afscherming van overige ingresses op het cluster en AzureAD RBAC op het cluster zelf worden aparte issues aangemaakt