You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Every thing done within OpenSearch should be permissible, no matter the source. This is why we need to move authentication and authorization into OpenSearch core codebase. The plugin model is very useful for optional things, security primitives are not one of them.
Getting these new native concepts out to OpenSearch developers and customers quickly for feedback and iteration is our aim to achieve this.
Terminology:
Subject: An individual, process, or device that causes information to flow among objects or change to the system state.
Principal: An application-wide identifier that is persisted
Minimal viable system
To move quickly, and provide a surface area for experimentation we are going to cut some corners. This effort will first be within a feature branch, then be controlled via an experimental feature flag shipped with OpenSearch distribution, finally made available for adoption with backwards compatible support.
The following are the areas of focus to create this minimal set of functionality along with an estimated complexity to develop to help in terms of understanding the projects. Complexity attempts to score uncertainty, not effort, delivering more complex items implies more prototypes/design reviews.
Identity Concepts
[Complexity 8] Introduce Identity primitives (Subject and Principal) and their associated objects and . See following issue for more details
[Complexity 5] Delegate any tasks to system subject or interactive user sessions. The default mechanism should use access tokens that are cryptographically secured against tampering.
Access Tokens
[Complexity 5] Add APIs to: generate token for principal, refresh token, expire all refresh tokens
[Complexity 2] Registration of permissions from all permissions sources in core
[Complexity 5] Registration of permissions for extension/plugins
[Complexity 2] Have a process where from a Subject a list of permissions is generated so they can be checked
[Complexity 8] For the new permission come up with a structured naming convention building blocks, such as {SourceName}{ResourceName}{ActionVerb} -> Ad.Detector.Create. Additionally come up with a 'blessed' list of action verbs to prevent http methods from being used as action names.
[Complexity 2] With the new naming convention create updated names for all core permissions
[Complexity 2] Confirm evaluation of permissions for Actions in core
[Complexity 2] Grant permissions to a subject, through the identity provider
TODOs
This section contains all the current and pending TODO items in the identity code.
I'd be careful about saying "thing", and get more specific. So every thing done within resource and external api call in OpenSearch should be unambiguously permissible, nomatter the source and we also need to say something like the starting process needs to launch with a built-in identity. Every thread spawned, and every task scheduled should be running under a clear identity.
I think This is why we need to move authentication and authorization into OpenSearch core codebase. The plugin model is very useful for optional things, security primitives are not one of them. isn't that well explained. Users expect to be able to reason about access in an unambiguous way and the easiest way to do it is with the principle of least privilege, where by default nobody has access to anything. The easiest way to implement this is to move security behind APIs, ie. into core.
Supporting Native AuthN/AuthZ with Core
Every thing done within OpenSearch should be permissible, no matter the source. This is why we need to move authentication and authorization into OpenSearch core codebase. The plugin model is very useful for optional things, security primitives are not one of them.
Getting these new native concepts out to OpenSearch developers and customers quickly for feedback and iteration is our aim to achieve this.
Terminology:
Minimal viable system
To move quickly, and provide a surface area for experimentation we are going to cut some corners. This effort will first be within a feature branch, then be controlled via an experimental feature flag shipped with OpenSearch distribution, finally made available for adoption with backwards compatible support.
Blog Posts
This section is for tracking any updates that would be made Identity related blog-posts.
The following are the areas of focus to create this minimal set of functionality along with an estimated complexity to develop to help in terms of understanding the projects. Complexity attempts to score uncertainty, not effort, delivering more complex items implies more prototypes/design reviews.
Identity Concepts
[Complexity 8] Introduce Identity primitives (Subject and Principal) and their associated objects and . See following issue for more details
OpenSearch requests should know the identity of the caller #3846
Add support for using User Identity in extensions #37
Create a permissions check API for extensions to us with custom resources #40
Principal Identifiers
Delegate Execution
Access Tokens
Internal Identity Provider
CRUD operations on Subject
Authentication
Permissions/Authorization
TODOs
This section contains all the current and pending TODO items in the identity code.
Future Scope
The following items are not required for the critical path delivery and will likely be started on following the stabilization of the MVP components.
Loading from configuration
Index View(s)
Authorization Abstractions
Rename plugin permissions (OOB?)
Migration from Security Plugin
Authentication providers
Security testing
Identity Information
The text was updated successfully, but these errors were encountered: