Security and ArcGIS Web Development. Heather Gonzago and Jeremy Bartley



Similar documents
Building Secure Applications. James Tedrick

OAuth 2.0. Weina Ma

Axway API Gateway. Version 7.4.1

OAuth 2.0 Developers Guide. Ping Identity, Inc th Street, Suite 100, Denver, CO

Oracle Fusion Middleware Oracle API Gateway OAuth User Guide 11g Release 2 ( )

Fairsail REST API: Guide for Developers

Copyright Pivotal Software Inc, of 10

Using ArcGIS with OAuth 2.0. Aaron CTO, Esri R&D Center Portland

OAuth: Where are we going?

Agenda. How to configure

INTEGRATION GUIDE. DIGIPASS Authentication for Google Apps using IDENTIKEY Federation Server

How To Use Kiteworks On A Microsoft Webmail Account On A Pc Or Macbook Or Ipad (For A Webmail Password) On A Webcomposer (For An Ipad) On An Ipa Or Ipa (For

Salesforce Integration User Guide Version 1.1

Traitware Authentication Service Integration Document

Egnyte Single Sign-On (SSO) Installation for OneLogin

Cloud Elements! Events Management BETA! API Version 2.0

INTEGRATION GUIDE. DIGIPASS Authentication for Salesforce using IDENTIKEY Federation Server

Login with Amazon. Getting Started Guide for Websites. Version 1.0

Dell One Identity Cloud Access Manager How to Develop OpenID Connect Apps

Authenticate and authorize API with Apigility. by Enrico Zimuel Software Engineer Apigility and ZF2 Team

How To Use Salesforce Identity Features

Cloud Elements ecommerce Hub Provisioning Guide API Version 2.0 BETA

Online Data Services. Security Guidelines. Online Data Services by Esri UK. Security Best Practice

Login with Amazon. Developer Guide for Websites

Integration Overview. Web Services and Single Sign On

Authentication Integration

EHR OAuth 2.0 Security

OpenLogin: PTA, SAML, and OAuth/OpenID

NCSU SSO. Case Study

Getting Started with AD/LDAP SSO

Connected Data. Connected Data requirements for SSO

Configuring. SuccessFactors. Chapter 67

PrinterOn Print Management Overview

Configuring SuccessFactors

Centrify Mobile Authentication Services

OpenID Deutsche telekom. Dr. Torsten Lodderstedt, Deutsche Telekom AG

Cloud Elements! Marketing Hub Provisioning and Usage Guide!

Adeptia Suite 6.2. Application Services Guide. Release Date October 16, 2014

Web 2.0 Lecture 9: OAuth and OpenID

Office365Mon Developer API

Globus Auth. Steve Tuecke. The University of Chicago

Social Application Guide

OAuth2lib. implementation

Identity Implementation Guide

How to configure the TopCloudXL WHMCS plugin (version 2+) Update: Version: 2.2

Synology SSO Server. Development Guide

Enterprise Access Control Patterns For REST and Web APIs

SETTING UP YOUR JAVA DEVELOPER ENVIRONMENT

API-Security Gateway Dirk Krafzig

Onegini Token server / Web API Platform

AAI for Mobile Apps How mobile Apps can use SAML Authentication and Attributes. Lukas Hämmerle

Authorization and Authentication

Add Microsoft Azure as the Federated Authenticator in WSO2 Identity Server

Configuration Guide - OneDesk to SalesForce Connector

Securing ArcGIS Server Services: First Steps

Single Sign On. SSO & ID Management for Web and Mobile Applications

HP Software as a Service. Federated SSO Guide

Configuring. Moodle. Chapter 82

The increasing popularity of mobile devices is rapidly changing how and where we

Binding an OS X computer to Active Directory at NEIU (Existing User)

USING FEDERATED AUTHENTICATION WITH M-FILES

Introduction and overview view of Citrix ShareFile provisioning. Preparing your Citrix ShareFile account for provisioning

Installation and Administration Guide

Getting Started with Clearlogin A Guide for Administrators V1.01

An Overview of Samsung KNOX Active Directory and Group Policy Features

Salesforce1 Mobile Security Guide

Use Enterprise SSO as the Credential Server for Protected Sites

Contents. 2 Alfresco API Version 1.0

I) Add support for OAuth in CAS server

OneLogin Integration User Guide

DocuSign Single Sign On Implementation Guide Published: March 17, 2016

PowerLink for Blackboard Vista and Campus Edition Install Guide

Single Sign On for UNICORE command line clients

INTEGRATION GUIDE. DIGIPASS Authentication for SimpleSAMLphp using IDENTIKEY Federation Server

Identity Federation: Bridging the Identity Gap. Michael Koyfman, Senior Global Security Solutions Architect

WHMCS LUXCLOUD MODULE

OAuth 2.0: Theory and Practice. Daniel Correia Pedro Félix

Single Sign-On Implementation Guide

For details about using automatic user provisioning with Salesforce, see Configuring user provisioning for Salesforce.

Identity Management with Spring Security. Dave Syer, VMware, SpringOne 2011

Cloud Single Sign-On and On-Premise Identity Federation with SAP NetWeaver Cloud White Paper

Configuring Salesforce

User Management Tool 1.5

Livezilla How to Install on Shared Hosting By: Jon Manning

ADFS Integration Guidelines

Scott Moore, Esri April 4, Intermountain, Great Falls, MT

Configuring Single Sign-On from the VMware Identity Manager Service to Office 365

OAuth Guide Release 6.0

Administering Jive Mobile Apps

ACR Connect Authentication Service Developers Guide

Samsung KNOX EMM Authentication Services. SDK Quick Start Guide

Advanced Configuration Steps

vcloud Air Platform Programmer's Guide

Egnyte Single Sign-On (SSO) Configuration for Active Directory Federation Services (ADFS)

An Overview of Samsung KNOX Active Directory-based Single Sign-On

qliqdirect Active Directory Guide

Administering Google Apps & Chromebooks for Education

Force.com REST API Developer's Guide

Transcription:

Security and ArcGIS Web Development Heather Gonzago and Jeremy Bartley

Agenda Types of apps Traditional token-based authentication OAuth2 authentication User login authentication Application authentication Resource proxy

Types of apps First need to figure out How are you interacting with the application? Are the end users known to the application? User-login - Application allows user to log in with valid credentials Are the end users unknown to the application? App-login - App provides credentials within the app itself

Agenda Types of apps Traditional server-based token authentication OAuth2 authentication User login authentication Application authentication Resource proxy

Traditional server-based token authentication Classic way to access secured services Username and password sent over https /generatetoken call Short-lived token response Handled via SDK s Identity Manager component Everything handled on the client Web application responsible for keeping credentials secure

generatetoken Access secured service with server-based token authentication Identity Manager takes care of most of this work Challenge for credentials https://<server>/sharing/rest/generatetoken called when credentials are passed Token appended and used to unlock these services

Demo: generatetoken

generatetoken limitations The web application has access to credentials The application is responsible for recognizing when to prompt for login No enterprise logins Need to sign in every time calls made to a secure service Can t track how the app is being used Can t list in Marketplace

Agenda Types of apps Traditional server-based token authentication OAuth2 authentication User login authentication Application authentication Resource proxy

OAuth2 authentication: Why to use this and when? The Why? - The registered app provides information on how the application is being used, whom is accessing it, credit usage, etc? The When? - Access users private data - Create and publish content - Access premium content and services on AGO

Registering your app Possible in organizational ArcGIS Online, on-premise portal (as of 10.3), or Developers site Generates: - App ID (client_id) - App Secret (client_secret)

Demo: Registering your app

Agenda Types of apps Traditional token-based authentication OAuth2 authentication User login authentication Application authentication Resource proxy

OAuth2: User login authentication Works with named users Server-side login page Provides single sign on If already in active portal session, user is not required to enter credentials again Approval screen to grant access to the app

OAuth2: User login workflows Working with browser-based or mobile applications? - 1 step workflow, i.e. Implicit Grant Desktop, mobile, or server-side web application? - 2 step workflow, i.e. Authorization Grant

OAuth2: 1 step user-login workflow 1. App directs user to /authorize endpoint 2. Valid user/pass? 3. Redirect back to app at provided redirect_uri 4. access_token is added to URL 5. App can parse the URL for token use

OAuth2: Identity Manager Client SDKS provide OAuth2 functionality via the Identity Manager Handles the complexity of calling endpoints and parsing tokens Example: JS API Identity Manager - OAuthInfo class -> pass in registered App ID - Pass this information to the identity manager

Demo: User login

Enterprise Logins Login to ArcGIS Online using your enterprise login (Active Directory, LDAP, ) Uses the SAML standard Setting up Enterprise Logins Doc Nothing changes for the App Developer - Use standard OAuth workflow (redirect user to /authorize URL as usual) - Portal detects enterprise login if configured for the organization - Redirects user to their enterprise provider - Enterprise redirects user to portal upon login - Portal generates token and sends it to the app

OAuth 2.0: Application Authentication Users of the App are unknown to the ArcGIS platform No login prompts App logs in to the ArcGIS platform on behalf of itself App must contain valid app credentials App is responsible for keeping the app secret secure

OAuth2: App authentication workflow 1. App makes POST to /token endpoint with client_id and client_secret with grant_type=client_credent ials 2. Access_token in JSON response 3. Parse token and use in requests as needed.

OAuth2: Limitations with Application Authentication Applications can only read or query private data content. - Cannot modify, upload, create, or delete content. Content Restrictions - Members of an AGO org can only access private content owned by the person who created the application. Marketplace restrictions - Cannot list applications in ArcGIS Marketplace. In order to do so, must work with user logins.

App Logins Proxy Use Case Steps Register app Configure proxy with app credentials Proxy uses app credentials to get app token from the portal Front-end app calls into the proxy Proxy uses app token to call into secured portal resources Proxy returns results to the app

Sample Proxy configuration file <ProxyConfig allowedreferers="*" logfile="proxy_log_xml.log" mustmatch="true"> <serverurls> <serverurl url="https://route.arcgis.com" oauth2endpoint="https://www.arcgis.com/sharing/oauth2" clientid="i3gewdn2al0jlc6s" clientsecret="put the secret in here" ratelimit="120" ratelimitperiod="60" matchall="true"/> <serverurl url="http://sampleserver6.arcgisonline.com" username="user1" password="put the password here" ratelimit="120" ratelimitperiod="60" matchall="true"/> </serverurls> </ProxyConfig>

Demo: OAuth App login

OAuth2: Security with application authentication Never expose client_secret Keep secure server-side in proxy - Rate limiting against server-based misuse

Updated proxies https://github.com/esri/resource-proxy - DotNet, JSP, and PHP Access resources secured with token-based authentication, i.e. premium credit-based services Resource and referer-based rate limiting Access cross domain resources Enabled logging

Proxies https://github.com/esri/resource-proxy Install proxy based on README.md file Can also use token based authentication in addition to OAuth2 Locking it down by referrer: Only requests coming from listed referrers are proxies Rate limits - ratelimitperiod: The time period (in minutes) which the ratelimit is tracked. - ratelimit: Maximum number of requests for a specific referer over the given ratelimitperiod.

Conclusion Use OAuth2 for user logins Benefits include usage tracking, enterprise logins, etc. Identity Manager simplifies login workflow in client SDKs Use app tokens to access secured resources in certain use cases https://developers.arcgis.com/authentication/ for additional information.

More information developers.arcgis.com/authentication Working with Secure Resources (JS doc) Using the proxy page (JS doc) ArcGIS Online set up enterprise logins