Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Personal token for API access in third-party tools #7711

Open
13 tasks
fschrempf opened this issue Nov 10, 2023 · 7 comments
Open
13 tasks

Personal token for API access in third-party tools #7711

fschrempf opened this issue Nov 10, 2023 · 7 comments
Labels
Category:Enhancement Add new functionality Type:Story User Story

Comments

@fschrempf
Copy link

Description

User Stories

As a system integrator I want to combine oCIS with other software components. In order to do that I would like to create a tool that acts as a bridge and uses the Libre Graph API to interface with oCIS. This backend tool needs to authenticate with the API in some way.

Therefore I need a way to create a persistent access token that can be used for API authentication as current auth flows are either only targeted at frontend clients (OIDC) or not recommended for production use (basic auth).

Value

  • enable third-party backend integration through API

Acceptance Criteria

Definition of ready

  • Everybody needs to understand the value written in the user story
  • Acceptance criteria have to be defined
  • All dependencies of the user story need to be identified
  • Feature should be seen from an end user perspective
  • Story has to be estimated
  • Story points need to be less than 20

Definition of done

  • Functional requirements
    • Functionality described in the user story works
    • Acceptance criteria are fulfilled
  • Quality
    • Code review happened
    • CI is green (that includes new and existing automated tests)
    • Critical code received unit tests by the developer
  • Non-functional requirements
    • No sonar cloud issues
  • Configuration changes
    • The next branch of the ocis charts is compatible
@fschrempf fschrempf added the Type:Story User Story label Nov 10, 2023
@michaelstingl
Copy link
Contributor

@micbar
Copy link
Contributor

micbar commented Nov 14, 2023

Please take into account that from a security POV we cannot use static tokens which have a global scope. That would give outside systems full control over your account and data.

I think we need an auth service which manages user created tokens which are scoped, like having only read access, write access to only one endpoint or only one space and so on.

that would need a graph Api implementation and a web app to create and destroy these tokens.

@michaelstingl @kulmann @tbsbdr @dragotin

@dragotin
Copy link
Contributor

dragotin commented Feb 15, 2024

@micbar yes, I agree.

I would start with the following "spec":

  • App Tokens always have the scope of a certain space. By default, users can create App tokens only to grant access to their personal space
  • Tokens for project spaces can only be created by Space Managers.
  • In the web admin page, all app tokens a user controls are listed and can be revoked. New ones can be created.
  • App Tokens only allows up- and downloading data, no sharing

Advanced features:

  • Have Read Write and Read Only tokens
  • Allow creation of public links through App tokens
  • Have an Expiry date of a App token
  • Project space App tokens are visible at the space view for managers

@DeepDiver1975 would the "start-spec" be sufficient for migration?

@DeepDiver1975
Copy link
Member

For the migration scenario we need a way to impersonate a user without interaction of the user or the administrator.

The intent is to create a service account which can impersonate any user up on request.
The same service account needs permissions to create users.

@dragotin
Copy link
Contributor

Ok, so for migration we need more... but the small spec above stays relevant for normal App Tokens.

@DeepDiver1975
Copy link
Member

but the small spec above stays relevant for normal App Tokens.

For use cases like caldav and carddav - yes 👍

Copy link

stale bot commented Apr 22, 2024

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 10 days if no further activity occurs. Thank you for your contributions.

@stale stale bot added the Status:Stale label Apr 22, 2024
@micbar micbar added the Category:Enhancement Add new functionality label Apr 22, 2024
@stale stale bot removed the Status:Stale label Apr 22, 2024
@tbsbdr tbsbdr moved this from Qualification to Backlog in Infinite Scale Team Board Apr 30, 2024
@micbar micbar changed the title Persistent token for API access in third-party tools Personal token for API access in third-party tools May 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Category:Enhancement Add new functionality Type:Story User Story
Projects
None yet
Development

No branches or pull requests

5 participants