-
Notifications
You must be signed in to change notification settings - Fork 159
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
Use reva token for auth #9245
Comments
Proposal how to implement: The extension system allows to register custom code in a post-sign-in-hook. There, the CERN code could be added to an extension that pulls the reva token and stores it in the browser. Benefit for the product would for example be that an extension could be written that lists all logged in users on a dashboard. For that, the custom extension code would call an dashboard endpoint with the user name that just signed in. |
Note: @labkode mentioned that Mattermost provides an option to control the lifetime via the client. |
@DeepDiver1975 this patch 9c37d8c from CERN uses the REVA token so that the session lifetime can be controlled via the client. Can you assess if this option would be a security issue for the product? (Generally we wonder if this would be an option for the product.). thank you! |
In a JWT based authentication mechanism the session lifetime is basically the lifetime of the JWT. Assuming an OpenID Connect/OAuth setup this will result in following scenarios:
the scenario is only reasonable in case the IdP is setup to not reuse existing authenticated session and the application (owncloud web) is not setup to auto redirect to the IdP on the login screen. I can not see any issues from a security perspective .... let me know if you anything else |
Let me rephrase @tbsbdr question: The web patch uses a kind of post login hook to use the just freshly created access token from the IdP to make an authenticated request to a reva endpoint which then generates a custom token (session life time is still controlled by the backend). This custom token is then used instead of the original access token in all following requests from ownCloud Web. The original access token is being sent into nirvana. Please check if you need to reevaluate based on this @DeepDiver1975 :) Regardless of the outcome, the possibility of a post login hook via extension system is a good idea. |
That is an interesting detail which I need to think about. The functional impact needs to be thought about. Overall my comment from about remains..... |
The particular setup doesn't allow to request the Some context again: The particular SSO team doesn't allow a session lifetime (neither through a long IdP session timeout nor via a refresh token) that is long enough to make their users happy, so engineering found an alternative solution. |
Does that mean tokens have no expiry in this environment? Anyway .... |
No idea how the tokens behave client side. I just know the flow how to request such a custom token. You can ping @tbsbdr if you want to take a look at the requests in the browser, he has a test user. |
Hi, Any decent web application will have session control independently of authentication source (OIDC, basic auth, LDAP, ...). Here you can find two examples:
indico/indico/indico/modules/auth/init.py
|
Implemented via #9871. |
Description
User Stories
Value
Acceptance Criteria
Definition of ready
[ ] everybody needs to understand the value written in the user story
[ ] acceptance criteria has to be defined
[ ] all dependencies of the user story need to be identified
[ ] feature should be seen from an end user perspective
[ ] user story has to be estimated
[ ] story points need to be less then 20
Definition of done
[ ] functionality described in the user story works
[ ] acceptance criteria are fulfilled
[ ] code review happened
[ ] CI is green
[ ] critical code received unit tests by the developer
[ ] automated tests passed (if automated tests are not available, this test needs to be created and passed
[ ] no sonar cloud issues
realtes to 9c37d8c
The text was updated successfully, but these errors were encountered: