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 |
Replies: 3 comments 2 replies
|
Yes. Using token exchange. Where their access token can be exchanged for one coming from "our" Identity Server. |
|
@AndersAbel |
|
Got it. Thanks for the suggestion |
Well, you can of course craft and
id_tokenin a token exchange flow, but IdentityServer would not be aware of it. When anid_tokenis issued, the client should also be enlisted as participating in the session. If you just issue anid_tokenthrough token exchange, then that will not create a session on the IdentityServer.Then there's a security dimension of it: An
id_tokenshould 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_tokenbecause that is only available through an authorization flow where a registered client application inte…