laptop and a wrench

Bug

OAuthenticationManager is not working as expected in ArcGIS Runtime SDK for Xamarin Forms.

Last Published: July 16, 2021 ArcGIS Runtime SDK
Bug ID Number BUG-000138488
SubmittedMarch 25, 2021
Last ModifiedJune 5, 2024
Applies toArcGIS Runtime SDK
Version found100.10
Operating SystemWindows OS
Operating System Version10.0 64 Bit
StatusNon-Reproducible

Additional Information

This issue is caused by an incorrect OAuth workflow configuration in the client application code, where two separate workflows have been combined: one intended for authenticating specific users and one intended for authenticating applications.

Workaround

User-based authentication

To support user-based authentication with OAuth, the recommended approach is OAuth Authorization Code. In this case the TokenAuthenticationType must be set to OAuthAuthorizationCode. Refer to ArcGIS Developers: ArcGIS Identity for more information.

Example:

var serverInfo = new ServerInfo(new Uri("https://www.arcgis.com/sharing/rest"))

{

  TokenAuthenticationType = TokenAuthenticationType.OAuthAuthorizationCode,

  OAuthClientInfo = new OAuthClientInfo("...", null)

};

Application-based authentication

  • To support application-based authentication with OAuth, it is necessary to use the Client Credential approach with a client ID and client secret. In this case the TokenAuthenticationType must be set to OAuthClientCredentials. Refer to ArcGIS Developers: Application credentials for more information.

Example: 

var serverInfo = new ServerInfo(new Uri("https://www.arcgis.com/sharing/rest"))

{

  TokenAuthenticationType = TokenAuthenticationType.OAuthClientCredentials,

  OAuthClientInfo = new OAuthClientInfo("...", null, "...")

};

Notes:

  • It is not necessary to issue separate REST requests for tokens, instead the ArcGIS Runtime API supports this process automatically via the AuthenticationManager. 
  • If a manual refresh of the token is required, application code should call OAuthTokenCredential.RefreshAsync().
  • Various properties of the credential can be accessed via API properties on OAuthTokenCredential, such as UserName

Steps to Reproduce

Bug ID: BUG-000138488

Software:

  • ArcGIS Runtime SDK

Get notified when the status of a bug changes

Download the Esri Support App

Discover more on this topic

Get help from ArcGIS experts

Contact technical support

Download the Esri Support App

Go to download options