Need information for external provider #112
-
IdentityServer versionDuende IdentityServer- 7.0.6 .NET version.net 8 DescriptionWe are facing an issue with an external identity provider and need to understand if Duende offers any features that can help us. Issue: We have an application with a web view that can be accessed using a valid access token. Another application, our Identity Server, uses the Duende framework to handle authorization flow and grant tokens. However, a new client has a different flow. Their application is directly integrated with the third-party SSO. After logging in successfully, they need to access our web view page. To do this, they initiate the authorization flow with our Identity Server, which challenges them and opens the external client SSO page. The first issue arises here as they are prompted to log in again, which should not happen since they are already authenticated. They are still investigating this issue. Now, they want to pass their client access token to us and expect us to authenticate the user based on that token, then grant our Identity Server access token/identity token to them. Is there any way to accomplish this? Reproduction stepsNo response Expected behaviorNo response LogsNo response Additional contextNo response |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 2 replies
-
Yes. Using token exchange. Where their access token can be exchanged for one coming from "our" Identity Server. |
Beta Was this translation helpful? Give feedback.
-
@AndersAbel |
Beta Was this translation helpful? Give feedback.
-
Got it. Thanks for the suggestion |
Beta Was this translation helpful? Give feedback.
Well, you can of course craft and
id_token
in a token exchange flow, but IdentityServer would not be aware of it. When anid_token
is issued, the client should also be enlisted as participating in the session. If you just issue anid_token
through token exchange, then that will not create a session on the IdentityServer.Then there's a security dimension of it: An
id_token
should strictly be a business between the client and the OIDC Provider. An access token on the other hand is sent to APIs to authenticate the call. In a normal setup, there is no way that an API can get to anid_token
because that is only available through an authorization flow where a registered client application inte…