Building Secure Applications. James Tedrick



Similar documents
Agenda. How to configure

Security and ArcGIS Web Development. Heather Gonzago and Jeremy Bartley

Securing ArcGIS Server Services: First Steps

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

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

Egnyte Single Sign-On (SSO) Installation for OneLogin

OpenLogin: PTA, SAML, and OAuth/OpenID

Portal for ArcGIS: An Introduction

Copyright Pivotal Software Inc, of 10

Configuration Guide - OneDesk to SalesForce Connector

Okta/Dropbox Active Directory Integration Guide

How To Use Salesforce Identity Features

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

Enterprise Access Control Patterns For REST and Web APIs

Copyright: WhosOnLocation Limited

Portal. from the trenches!

Axway API Gateway. Version 7.4.1

Centrify Mobile Authentication Services

Samsung KNOX EMM Authentication Services. SDK Quick Start Guide

Perceptive Experience Single Sign-On Solutions

Add Microsoft Azure as the Federated Authenticator in WSO2 Identity Server

Fairsail REST API: Guide for Developers

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

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

Configuring Salesforce

SP-initiated SSO for Smartsheet is automatically enabled when the SAML feature is activated.

Configuring. SugarCRM. Chapter 121

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

Administering Jive Mobile Apps

Connected Data. Connected Data requirements for SSO

Cloud Elements ecommerce Hub Provisioning Guide API Version 2.0 BETA

HP Software as a Service. Federated SSO Guide

User Management Tool 1.5

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

API-Security Gateway Dirk Krafzig

Getting Started with Clearlogin A Guide for Administrators V1.01

Flexible Identity Federation

Setup Guide Access Manager 3.2 SP3

SalesForce SSO with Active Directory Federated Services (ADFS) v2.0 Authenticating Users Using SecurAccess Server by SecurEnvoy

Authentication Integration

PingFederate. Salesforce Connector. Quick Connection Guide. Version 4.1

Office365Mon Developer API

Absorb Single Sign-On (SSO) V3.0

ADFS Integration Guidelines

Identity Implementation Guide

Configuring. Moodle. Chapter 82

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

FileCloud Security FAQ

Configuring SuccessFactors

Flexible Identity Federation

Salesforce1 Mobile Security Guide

WebNow Single Sign-On Solutions

OneLogin Integration User Guide

Tenrox. Single Sign-On (SSO) Setup Guide. January, Tenrox. All rights reserved.

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

Centrify Mobile Authentication Services for Samsung KNOX

SAML and OAUTH comparison

INTEGRATION GUIDE. DIGIPASS Authentication for Salesforce using IDENTIKEY Federation Server

Authentication. Authentication in FortiOS. Single Sign-On (SSO)

SAML application scripting guide

CA Performance Center

idp Connect for OutSystems applications

Salesforce Integration User Guide Version 1.1

NCSU SSO. Case Study

Adding Single Sign-On to CloudPassage Halo

How To Use Saml 2.0 Single Sign On With Qualysguard

This chapter describes how to use the Junos Pulse Secure Access Service in a SAML single sign-on deployment. It includes the following sections:

Portal for ArcGIS. Satish Sankaran Robert Kircher

How To Use Netiq Access Manager (Netiq) On A Pc Or Mac Or Macbook Or Macode (For Pc Or Ipad) On Your Computer Or Ipa (For Mac) On An Ip

Configuring. SuccessFactors. Chapter 67

An overview of configuring Intacct for single sign-on. To configure the Intacct application for single-sign on (an overview)

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

Mobile Security. Policies, Standards, Frameworks, Guidelines

Getting Started with AD/LDAP SSO

PingFederate. Windows Live Cloud Identity Connector. User Guide. Version 1.0

OAuth 2.0. Weina Ma

Directory Integration with Okta. An Architectural Overview. Okta Inc. 301 Brannan Street San Francisco, CA

Single Sign-On Implementation Guide

Only LDAP-synchronized users can access SAML SSO-enabled web applications. Local end users and applications users cannot access them.

A Standards-based Mobile Application IdM Architecture

Increase the Security of Your Box Account With Single Sign-On

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

Single Sign-On Implementation Guide

nexus Hybrid Access Gateway

Meeting Rooms User Manual

Introduction to SAML

Security Assertion Markup Language (SAML) Site Manager Setup

SAML single sign-on configuration overview

Integration Overview. Web Services and Single Sign On

Multi Factor Authentication API

OAuth Guide Release 6.0

USING FEDERATED AUTHENTICATION WITH M-FILES

Architecture Guidelines Application Security

Synology SSO Server. Development Guide

SAP NetWeaver AS Java

SAML 2.0 SSO Deployment with Okta

Cloud Elements! Marketing Hub Provisioning and Usage Guide!

Workday Mobile Security FAQ

Deploying RSA ClearTrust with the FirePass controller

HP Software as a Service

Transcription:

Building Secure Applications James Tedrick

What We re Covering Today: Accessing ArcGIS Resources ArcGIS Web App Topics covered: Using Token endpoints Using OAuth/SAML User login App login Portal ArcGIS Server Mobile App Server Other session topics not covered: Securing Services Designing Enterprise Security Strategy AGO / Cloud Security

What We re Covering Today: Accessing ArcGIS Resources ArcGIS Portal Web App Mobile App Token Generation Portal for ArcGIS ArcGIS Server ArcGIS Online (legacy) SAML/OAuth 2.0 ArcGIS Online User login App login Different workflows depending on application ArcGIS Server Server

Security Configuration ArcGIS Portal Outside direct developer control Configured by GIS Admin Specific to a given GIS site Occurs at differing levels Application (ArcGIS Server) Web Server (IIS) Verifies against a user store ArcGIS for Server internal store AGO/Portal internal store External (Active Directory / LDAP) Groups/roles can be stored elsewhere ArcGIS Server

Where to authenticate?

ArcGIS Platform Security Locations Data Application (Server/Portal) Web Internet Server Web Tier Federated Server Web Adaptor Application Tier: Server Application Tier: Portal Portal

Web Tier Authentication Web Server (IIS / Tomcat) authenticates on request Web Adaptor / reverse proxy Identity is transmitted from web tier to application tier Requires ArcGIS Server to have SSL enabled Configuration: - ArcGIS Server set to web tier authentication - IIS / Tomcat disable anonymous access Login types - Integrated Windows Authentication (IWA) Windows login ID - Basic / Digest username/password dialog

Single Sign On (SSO) Integrated Windows Authentication (IWA) - Sign in once to Windows (i.e., login to your computer) - Supporting apps supplied with Windows credentials ArcGIS Online / Portal for ArcGIS / Server - Login using esri/identitymanager, automatically renews tokens

Public Key Infrastructure (PKI) Federal identity standard 2 Factor authentication (Card & PIN) - CAC card contains certificate - User supplies PIN that is matched against card, certificate is forwarded to application Issues - HTTPS required - Mobile platform access

Application level authentication Default for ArcGIS products Web server MUST be configured for anonymous access Authentication handled by services shipped with ArcGIS for Server / Portal ArcGIS Servers federated to Portal rely on Portal s authentication results for access

Token Authentication After username / password submission, receive token string Use token with all REST requests as the token parameter Tokens have a set lifetime (default/requested length) Token Generation URLs: - Portal Tokens: ArcGIS Online, Portal for ArcGIS, Federated ArcGIS for Server <PORTAL URL>/sharing/generateToken (e.g., http://myportal.mycompany.com/portal/sharing/generatetoken) - Server Tokens: ArcGIS for Server <SERVER URL>/tokens (e.g. http://myportal.mycompany.com/server/tokens)

IdentityManager Uniform class across web APIs for logging in Automatically handles login process for all secured services Updates tokens to keep access current Issues: - Only for services with token-based security - Presents multiple dialogs (1/server)

Embedding Authentication Token lifespan can be set during request Token embedded within proxy expose secured services ArcGIS Online & Portal can store credentials and proxy on demand Enables secured resources to be displayed anonymously through select channels (using 2+ web adaptors) Service with embedded authentication MUST be secured

Demo Identity Manager Proxies

SAML & OAuth: ArcGIS Online

SAML - Security Assertion Markup Language Separates Authentication (login) from Resources (AGO) ArcGIS Online can use an organization s login information (i.e., Active Directory) Set up: - ArcGIS Online (AGO org admin) - Login provider (enterprise admin) Enables Single Sign-On into ArcGIS Online From app developer perspective, process is uniformyou interact with ArcGIS Online, not the identity provider ArcGIS

OAuth Differentiates between application server, authentication server Authentication server logs user in, checks for user acceptance of application Application server does not see username/password as they are entered Application does get access token after authorization

OAuth logins workflows User login User needs their own an ArcGIS Online account Application login Users uses your ArcGIS Online account 2 endpoints used in processes - https://www.arcgis.com/sharing/oauth2/authorize - https://www.arcgis.com/sharing/outh2/token

OAuth login key properties Set up in ArcGIS Online s Item Content or Developer Dashboard - redirect_uri resource to load when presenting new credentials - appid unique ID of application in ArcGIS Online - appsecret secret key used with appid (appid s password ) appsecret should never be exposed to user - Including embedded in mobile application appid & appsecret can be reset by application owner

Demo Registering an app

OAuth logins User logins Access user s data & maps Tasks consume user s credits Logins can be either ArcGIS or Enterprise (i.e., Active Directory, LDAP) Process by application type: - Login in HTML/JS 1 step (implicit grant) 1. Access /authorize, load resulting redirect containing token - Login at application (ios/android) or web server (.Net/PHP) 2 step (authorization grant) 1. Access /authorize, load resulting redirect with authorization code 2. Access /token with code, receive token

Warning: Simplified Diagrams Ahead All communication between ArcGIS Online and Identity Management occurs via client through redirects URLs Your application server ArcGIS Online 3 3* ArcGIS Online does not contact Identity Provider directly Identity Provider only needs to be seen by the client, not the internet 5 5* Identity Provider

User Login Web Applications 1. Application loads into client 2. Application requests authorization by opening https://www.arcgis.com/sharing/oauth2/authorize 3. ArcGIS Online redirects to organization login Your application server 1 2 ArcGIS Online 4 6 3* 4. User logs in using login system 5. Login system authorizes user to AGO 6. ArcGIS Online gives application an access by loading redirect_uri with access token appended 5* Identity Management

Demo User login

User Login Desktop/Device App 1. Through an embedded web browser, application requests authorization by opening https://www.arcgis.com/sharing/oauth2/authorize 2. ArcGIS Online redirects to organization login page 3. User logs in using login system 5 6 1 7 ArcGIS Online 4. Login system redirects browser, providing authorization code 5. Application captures authorization code 6. Application requests access token from AGO https://www.arcgis.com/sharing/outh2/token 7. AGO provides token 3 4 2* Identity Management

User Login Server Applications 1. Application loads into client 2. Application requests authorization by opening https://www.arcgis.com/sharing/oauth2/authorize 3. ArcGIS Online redirects to organization login page 4. User logs in using login system 6 Your application server 1 7 8 ArcGIS Online 2 5. Login system redirects browser, providing authorization code as uri parameter 6. Server gets authorization code from uri 7. Application requests access token from AGO https://www.arcgis.com/sharing/outh2/token 8. AGO provides token 4 3* 5 Identity Management

Application Login Uses appid, appsecret as application username & password User is never aware of ArcGIS Online (aside from the documentation J) Developer s responsibility to provide access controls - Otherwise, you re offering your credits to everyone! What you can do: - Access AGO tasks (Geocoding, routing, etc.) - Access application owner s private items stored in ArcGIS Online - Search public items in ArcGIS Online ( NOT Organizational )

Application Login 1. Application requests authorization by opening https://www.arcgis.com/sharing/oauth2/token (normally done independent of user interactions) 2. ArcGIS Online provides a token 3. Application loads into client 4 Your application server 3 1 5 7 2 6 ArcGIS Online 4. Client requests an operation that makes use of AGO resources 5. Server requests resources with token 6. ArcGIS Online provides response 7. Possible further processing; response is delivered to client

Demo Application Login

Resources Presentation Samples: - IdentityManager Information: https://developers.arcgis.com/javascript/jsapi/identitymanager-amd.html - Proxy Information: https://developers.arcgis.com/javascript/jshelp/ags_proxy.html - OAuth User Login: https://developers.arcgis.com/en/javascript/jssamples/portal_oauth_inline.html - Application Login demo: https://github.com/tedrick/appidexample Developer Page: https://developers.arcgis.com/en/authentication/index.html JS Application Boilerplate: https://github.com/esri/application-boilerplate-js JS Sample: ios Sample: https://github.com/esri/oauth2-demo-ios Developer Libraries (listed by OAuth group): http://oauth.net/2/