Closed lenniebriscoe closed 6 years ago
Interesting challenge. We have a couple of questions for you.
If you prefer, you can reply to me via email. Terence.Eden AT digital DOT cabinet-office DOT gov DOT uk
Some of the points here are touched on in the conversation around the challenge posted last year here the proliferation in the number of usernames and passwords for services creating a user need for a common auth method. Mat Johnsons' comment of 'breaking down into it's components; Authentication, Authorisation, Accounting and Federation' in particular.
Thanks for the mention; (personally) I think we can federate the responsibility of Authentication out to the relevant departments/agencies/entities and operate on a model of mutual trust. I know this is easily achievable given the work I've done in a similar area in the DWP (I'm now at GDS). But at the moment there are no COTS packages geared up to deliver exactly this and typically AAA servers/gateways are traditionally expensive and closed source. With Authentication happening at the site of a trusted IDP, Authorisation is free to occur at the point of use and Accounting can occur at the same point (or further down the line). To grease the wheels of this proposal I would be happy to put together a straw man proposal/RFC which can be debated/scrutinised?
It would be great if you could put together a proposal/RFC for an open standards approach to meeting this challenge and move the discussion on to possible solutions. If your proposal could be based on the needs outlined in this and the previous challenge that would be good or if you feel the need to refine the challenge, feel free to do so.
Cool, thanks for the feedback - I've contributed to both discussions and other related discussions in this domain. So, my approach would not be to prescribe a particular technology but instead, as the Challenge Owner identifies, give some guidance on a platform to enable a route to serving the user needs from both discussions in the form of a system that GDS (or another Government Department) may procure or build, but that operates on Open Standards. Really sorry about the size of this, also it's based on a (customised) version of the Rust RFC template since I couldn't find a GDS one.
Guidance relating to enabling cross-party Authentication, Authentication and Accounting (AAA) that utilises a federated model of trusted IDPs for Authentication and a dis-aggregated model Authorisation and Accounting. This guidance will potentially enable Customers, Operational Staff and Service-to-Service AAA functionality in order to provide a consistent experience for integration of Authentication functionality and simultaneously maintain a non-intrusive user-experience.
There are many outstanding requests on the UK Government Tech & Data Standards pages regarding SSO, SAML, Authentication and Authorisation. Whilst this proposal will give guidance on an anticipated design, it does not seek to be overly prescriptive with implementation details and it is anticipated that the implementer will decide the best route based on this guidance. This guidance also acknowledges it is not suitable for all use-cases where AAA functionality is desired; for example, GDS Verify may be more than adequate for your user needs.
The motivation for this RFC emerges from discussions relating to inter-departmental AAA functionality.
Much of this design centers on a AAA Gateway (or Server) delivering the functionality described. The AAA Gateway is layered in front of the service being secured, that is; network packets coming from a user requesting access to a service will hit the AAA Gateway before hitting the service, the service is not directly contactable by the user requesting access.
The AAA Gateway may be a customised reverse-proxy, a COTS AAA package, an API Gateway or a Web Application Firewall (WAF).
A user requesting access may be a departmental user with appropriate clearance, or an upstream service accessing a downstream service with a relayed Access Token.
Authentication must occur at the IDentity Provider (IDP) of the user requesting access.
Authorisation must occur at the AAA Gateway.
Accounting may occur at any point.
The AAA Gateway must allow Authentication with at least one IDP, and may allow more IDPs depending on the configuration of the AAA Gateway and/or the context of the call.
There are layers of some complex concepts at work in this guidance, principally this guidance could be expressed as a flow-diagram that shows upstream and downstream communication between components for a variety of use-cases, but in many use cases it is easiest to think of the AAA Gateway layer simply as a reverse-proxy with some rules and behaviour.
If this RFC gains traction, I (or someone) can create the necessary flow-diagrams for a variety of use-cases.
The user need presented by the Challenge Owner discusses what amounts to essentially a simplification of Authentication & Authorisation. This guidance seeks to address this by utilising the Authentication mechanisms and user-database that the Agency/Organisation already has, and should be familiar with. User management is federated out to that Agency/Organisation and this guidance aims to reduce the impact of attack by having many databases of users instead of "a single database of users".
To be clear; this guidance would present a system such that the Organisation/Agency only needs to implement one Authentication mechanism against their own IDP. Authorisation is a wholly different activity that the Agency/Organisation do not need to implement. Accounting may happen at any party, at any point.
FYI: I recognise this is a pattern and not advocating a particular open-standard - this is in response to the original Challenge Owners request to "create a framework". However, at yesterdays GDS Architecture meetup it appears that Peter Chamberlin has been working on something very similar, as has Home Office, NCSC & DWP. I have asked for feedback from the wider Architecture community on the cross-government Slack channel and I'll be meeting up with Peter this afternoon to discuss the finer points of the GDS implementation.
CTS have some direction which advocates SAML2 and OIDC - GDS & Home Office appear to be using KeyCloak for this but IMHO it doesn't serve as a true AAA Gateway. I'm aware that I've probably warped the original intention of this issue to suggest a solution, rather than a pattern (or open format).
In the spirit of utilizing open-formats it's probably sufficient to point to the CTS guidance of OIDC & SAML2.
In the spirit of practicality (for other government departments) - I think they really need a solution centered on federation, for which the best direction I can point to would be the Accessing GaaP product (which is currently probably not mature enough) and the CTS team which are looking at sourcing some kind of product to fill this space.
We have had no further submissions from other departments requesting an authentication solution. This challenge will be put on hold for the time being.
Create A Challenge
Title
Category
Challenge Owner
Short Description
User Need
Expected Benefits
Functional Needs
I will stop blurting out now...