ArcGIS Marketplace allows users to discover useful apps and data services to use with ArcGIS. Authorized Esri partners, Esri distributors, and Esri can create listings for apps and data services so users can search, discover, and acquire products and services that interest them.
As a provider, you can create listings for web apps and native apps (iOS, Android, Java, .NET, and so on) that require an ArcGIS subscription login. For a complete listing of supported APIs and ArcGIS Runtime SDKs, see the documentation section of ArcGIS for Developers.
To create listings in ArcGIS Marketplace, you must be an authorized marketplace provider.
The two main requirements for building ArcGIS Marketplace apps are as follows:
- Leverage ArcGIS Online subscriptions—Apps and data listed in the marketplace add value to the ArcGIS Online subscription. The apps and data provide focused solutions and specialized functionality that can be used in conjunction with content associated with a customer's ArcGIS Online account.
- User login with OAuth 2.0—ArcGIS Marketplace targets accounts within ArcGIS Online subscriptions and, therefore, all apps and data listed in the marketplace must require users to securely sign in to the platform using OAuth 2.0.
Once you register your app with ArcGIS Online and you have started named user logins or app logins, you can continue with implementing authentication.
ArcGIS Marketplace builds on top of investments consumers have already made in ArcGIS and helps them get more out of their maps and data. This added value to existing investments is one of the key differences in obtaining products and services from ArcGIS Marketplace compared to other options. ArcGIS Marketplace, unlike other app stores, was created to explicitly serve the existing GIS market and user community. By using the OAuth 2.0 security standard, users can securely sign in to ArcGIS without exposing their credentials and access the apps and data services they've acquired from marketplace providers.
OAuth 2.0 requirements
ArcGIS Marketplace targets accounts within ArcGIS Online subscriptions and, therefore, all apps listed in the marketplace must require users to securely sign in to the platform using OAuth 2.0.
What is OAuth 2.0?
OAuth 2.0 is a widely used authorization framework that provides a modern way for apps to access user content and other information. OAuth was created by several companies, including Microsoft, Yahoo, and Facebook, as a way to standardize this kind of access.
Benefits of using ArcGIS Identity Management with OAuth 2.0
- Subscription management—ArcGIS Marketplace handles subscription management internally. When clients attempt to authenticate, only users with valid subscriptions are authenticated, which removes the need to develop subscription logic, making it easy to go to market quickly.
- Work with user content—Users can use your app to work with their own content associated with their ArcGIS Online subscription as well as work with other ArcGIS Online capabilities, such as geocoding, routing, and GeoEnrichment.
- Track app usage with App IDs—When using OAuth 2.0 for authentication, apps have a unique App ID (also referred to as client_id) to identify themselves within the platform. The App ID is used to collect usage statistics for your app, which is made available through the provider console and the ArcGIS Online website.
- Credit usage—Some ArcGIS Online functionality, such as batch geocoding, requires the use of ArcGIS Online credits. Allowing your users to sign in with their own ArcGIS Online account means their account will be charged for the paid services instead of the app provider's (that is, your own) account.
- User security—With OAuth 2.0, apps guide users to sign in to the platform via a login page hosted on the ArcGIS platform. Because the platform handles the login process, users don't expose their credentials to apps purchased through the marketplace.
Implement OAuth 2.0 in your app
All apps can use OAuth 2.0, including browser-based web apps, server-based web apps, device and tablet-based apps, and desktop apps. ArcGIS Online provides user authentication and authorization through a platform-hosted login page. Your app receives a user access token in return that it can use to access the platform on behalf of the user. Implementing OAuth 2.0 is a three-step process.
The implementation pattern for user login differs slightly, depending on whether you are developing a web-based app or a native app. ArcGIS for Developers documentation has complete explanations and code samples for both web-based and native apps.
If the app you plan to list in the marketplace already leverages ArcGIS identities with OAuth 2.0, it's important to know that existing ArcGIS users will not be able to sign in with their credentials unless their organization has successfully subscribed to your app from the marketplace.
- Add and register your app with ArcGIS Online. Registering your app generates the App ID, which identifies your app to the platform. The App ID is used to identify your app to the user when the user signs in to the platform through your app. The App ID is also used by the platform to verify that the user signing in through your app belongs to an organization that has purchased your app. The App ID is also used to collect usage statistics available through the provider's console.
- Once the user has been authenticated and has authorized access to their account for your app, they are redirected to your app's main screen or web page, and your app will receive an access token that identifies both the user and the app.
- Your app will use the access token when making requests to ArcGIS Online APIs.
Leverage ArcGIS identity and ArcGIS Online subscriptions
Products and services listed in the marketplace add value to the ArcGIS Online subscription. The apps provide focused solutions and specialized functionality that can be used in conjunction with content associated with the customer’s ArcGIS Online account. In addition, apps can use ArcGIS ready-to-use layers and tools, such as landscape services, geocoding, and GeoEnrichment. All ArcGIS APIs and ArcGIS Runtime SDKs expose classes, UI components, and code samples that work with ArcGIS Online subscriptions and ArcGIS ready-to-use layers and tools.
ArcGIS REST API
ArcGIS REST API allows you to work with users, groups, and items from ArcGIS Online. You can build web, mobile, and desktop apps using ArcGIS REST API directly, or through the Web APIs and ArcGIS Runtime SDKs helper classes. Once a user successfully signs in to the platform through your app, your app can use the ArcGIS REST API to access information about the user and the organization they belong to, and search and discover content. You can also publish new content, including hosted services, to the user's ArcGIS Online subscription account.
Access user and organization information
ArcGIS REST API allows you to discover details about a user, such as contact information and groups they belong to, as well as see a user's view of their organization. This view includes the organization name, logo, featured items, and supported protocols (HTTP versus HTTPS).
Search for content
Since users will be signed in to the platform through your app, you can use ArcGIS REST API to search for public and private content to which their subscription account has access. Private content includes items they own, content shared with their organization, and content shared with groups they belong to. ArcGIS REST API has a full-featured text search engine that provides the ability to create your own queries to search for content. The searches are performed against a high-performance index that indexes the most popular fields of an item.
Search results can include a wide variety of items supported by ArcGIS Online, such as maps and map layers.
When a user makes and saves a map to their ArcGIS Online account using Map Viewer, the map receives a unique ID. You can reference this ID to pull the entire map into any app you build with ArcGIS APIs and ArcGIS Runtime SDKs. This is made possible through the ArcGIS web map format, a structured series of key-value pairs that describe all the layers, pop-ups, bookmarks, metadata, and other properties of the map.
Hosted web layers
ArcGIS Online organizations often have ArcGIS Online hosted web layers. If a signed-in user has access to these hosted layers, they can work with the layers from within your app and publish new layers if they have publishing privileges.
Configurable apps allow users to create apps that include maps and groups of maps and apps. These templates can include configurable parameters that allow users to customize elements of their app. Users can choose to use one of the default configurable apps or a custom template that is more suitable for their workflows. As a provider, you can create custom templates that organizations can purchase through the marketplace and add them to their template groups.
Living Atlas maps and tools
ArcGIS Online includes Living Atlas maps and tools published and hosted by Esri. Use the maps as a basemap framework for your app, or leverage operational content such as the USA Demographics service or World Traffic service. Use the tools for geocoding, directions and routing, and GeoEnrichment.