Replies: 5 comments 4 replies
-
Pros & cons of Options 2 are added now. |
Beta Was this translation helpful? Give feedback.
-
Last meeting Summary on option evaluation Option1 Summary Option 2 Summary In addition, few thoughts were discussed on "if we want to build an integration layer which can use existing IAM/Authorization service of any enterprise which is compliant with Oauth2.0" |
Beta Was this translation helpful? Give feedback.
-
My understanding of the criteria evaluation for option 3: |
Beta Was this translation helpful? Give feedback.
-
option 4: 1:N 2:N 3:N 4:Y 5:N 6:Y |
Beta Was this translation helpful? Give feedback.
-
Consensus from the last meeting on RBAC
Please comment or add if any of the point is missing. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Background
Most people familiar with PKIs will know that the standard format for a public key certificate is specified in the X.509 standard published jointly by the ITU-T and ISO/IEC. The primary purpose of a PKI is to strongly authenticate the parties communicating with each other, through the use of digital signatures. But strong authentication on its own is insufficient for a process to determine who
is allowed to do what. An authorisation mechanism is needed for this.
L3AFD secure webAPI use mTLS for confidentiality and authentication, we need to extend the framework to access control the user with the specific API authorization.
API authorization needs to have 2 roles.
RBAC alternatives & Frameworks
Option 1. RBAC framework using x.509 PKI Certificate Attributes
Request flow to access l3AFD API to authorize userid “John” with role “web-dev”
Referring to above figure, Workflow of the Authorization phase
During the creation of the Client Cert, CN value is specified as a “UserID” in this case “John” And O value is specified as Group or Role, in this case its “Web-dev”
Client certificate (X.509 Attribute Cert) is parsed for CN and O attributes at l3AFD service.
After parsing this value, the request is sent to “goRBAC” service with API access request details
goRBAC service verifies the mapping of userID and Role against API access request, specified as part of authorization request.
If the userID and role mapping is True then it checks for Action/permissions allowed for specific API.
Based on the permission, goRBAC response is sent to l3AFD server
L3AFD server takes actions based the access permission received from goRBAC.
Pros :
1. Extending the existing X.509 mTLS to support Role based Access control
2. No Extra overhead or mechanism between the client and L3AFD service to support RBAC
3. Lightweight service compared to known frameworks like OAuth/OpenID and JWT
Cons :
1. X.509 PMI Implementation for RBAC is not yet dev released which has extended attribute support for Role based Access control.
2. X.509 PKI for RBAC use existing Attributes like CN and OU for access control purpose which is not RFC supported
3. Global CA or Enterprise CA does not support this implementation of RBAC where only close private environment like Kubernetes use this implementation of RBAC.
Option 2. mTLS with OAuth 2.0 Client Authentication
Mutual-TLS certificate-bound access tokens ensure that only the party in possession of the private key corresponding to the certificate can utilize the token to access the associated resources. Binding an access token to the client's certificate prevents the use of stolen access tokens or replay of access tokens by unauthorized parties.
Access token as JWT (JSON Web Token)
If the access token is represented as a JSON Web Token, this method can be used to associate the token with the certificate.
this method can be used to associate the token with the certificate. The JWT would include base64url encoded SHA-256 hash of the X.509 Certificate. The JWT contains cnf confirmation method claim. It has x5t#S256 as a confirmation method member that contains the value of the base64url-encoded SHA-256 hash of the X.509 Certificate.
Pros :
1. Use of Preferred industry authorization framework with mTLS authentication layer
2. Extensible to multi-level hierarchy of complex scopes and user groups.
Cons:
1. This is heavy framework which is mainly used for scope delegation and more granular access control
Development of Access token lifecycle, which includes access token allocation, revocation and refresh as part of the authorization service can be avoided through an alternative lightweight framework with basic access control feature.
2. For L3AFD usecase of 2 basic roles for authorization, preferred option to use lightweight framework with basic access control features.
Option 3. Digital Signature based Authorization with mTLS
Pros :
- No need to use Complex framework like Oauth2.0
- It extend mTLS authentication to authorization workflow further using PKI functions.
Cons:
- Learning cycle for user to understand and implement Digital Signature
- Custom Implementation
Option 4. SHA256 Hash based Authorization with mTLS
It has a similar lifecycle to option 3
Pros :
- No need to use Complex framework like Oauth2.0
- It extends the mTLS for authorization workflow.
Cons:
- Learning cycle for user to understand and implement SHA256 Hash of Public key
- Custom Implementation
Beta Was this translation helpful? Give feedback.
All reactions