apisecuritymobileoauth-2.0federated-identity

How to exchange authorization code on backend/API for Mobile OAuth 2.0 federated log in


I currently am working on a mobile app that uses OAuth 2.0 for federated log in with a custom identity provider (not google, facebook, twitter, etc). The larger issue I am attempting to solve revolves around moving the authentication from the implicit grant type, to the authorization code flow grant type with PKCE. This has presented me with a problem that I cannot seem to find a direct answer to:

How do I exchange the authorization code for the user token on the API/backend side?

I cannot exchange the authorization code for the user token on the mobile app as that would be insecure (similar to the current grant type in use).

Is it safe to pass the authorization code to the API through normal API calls and exchange the auth code for the token then? Or, am I supposed to point the redirect URI to the API instead of the mobile app?


Solution

  • Okay, so I am answering my own question as no one else will due to the fact that my question is stupid.

    You don't.

    You exchange the auth code for the token on the native app. That is secure (as long as you are using PKCE). You need to send the access token to your API/Resource Server to validate against the introspection endpoint. That is how your API can determine if the access request is valid or not.