Building Secure Applications

Slides:



Advertisements
Similar presentations
Implementing Tableau Server in an Enterprise Environment
Advertisements

Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
Authenticating Users in an ASP.NET Application. Web Site Administration Tool From VS 2008, click Website/ ASP.Net Configuration to open Web Site Administration.
Using Internet Information Server And Microsoft ® Internet Explorer To Implement Security On The Intranet HTTP.
ASP.NET 2.0 Chapter 6 Securing the ASP.NET Application.
Jonas Thomsen, Ph.d. student Computer Science University of Aarhus Best Practices and Techniques for Building Secure Microsoft.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Building Secure Applications.
Understanding Active Directory
Configuring Active Directory Certificate Services Lesson 13.
Module 4 Managing Client Access. Module Overview Configuring the Client Access Server Role Configuring Client Access Services for Outlook Clients Configuring.
Internet Information Server 6.0. Overview  What’s New in IIS 6.0?  Built-in Accounts and IIS 6.0  IIS Pass-Through Authentication  Securing Web Traffic.
Sharing imagery and raster data in ArcGIS
Sharing Geographic Content
Delivering Excellence in Software Engineering ® EPAM Systems. All rights reserved. ASP.NET Authentication.
Edwin Sarmiento Microsoft MVP – Windows Server System Senior Systems Engineer/Database Administrator Fujitsu Asia Pte Ltd
Copyright © 2007, SAS Institute Inc. All rights reserved. SAS Activity-Based Management Survey Kit (ASK): User Management & Security.
Session 11: Security with ASP.NET
Forms Authentication, Users, Roles, Membership Svetlin Nakov Telerik Corporation
MCSE Guide to Microsoft Exchange Server 2003 Administration Chapter Four Configuring Outlook and Outlook Web Access.
Copyright 2000 eMation SECURITY - Controlling Data Access with
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 Securing a Microsoft ASP.NET Web Application.
ArcGIS Server and Portal for ArcGIS An Introduction to Security
SSL, Single Sign On, and External Authentication Presented By Jeff Kelley April 12, 2005.
Publishing to ArcGIS for Server
Enabling High-Quality Printing in Web Applications
Oracle Application Express Security. © 2009 Oracle Corporation Authentication Out-of-the-Box Pre-Configured Schemes LDAP Directory credentials Oracle.
Module 5 Configuring Authentication. Module Overview Lesson 1: Understanding Classic SharePoint Authentication Providers Lesson 2: Understanding Federated.
TWSd - Security Workshop Part I of III T302 Tuesday, 4/20/2010 TWS Distributed & Mainframe User Education April 18-21, 2010  Carefree Resort  Carefree,
Portal for ArcGIS An Introduction
Dr. Mustafa Cem Kasapbaşı Security in ASP.NET. Determining Security Requirements Restricted File Types.
Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy
Technical Workshops | Esri International User Conference San Diego, California Creating Geoprocessing Services Kevin Hibma, Scott Murray July 25, 2012.
ArcGIS Server for Administrators
Building Security into Your System Bill Major Gregory Ponto.
Empowering people-centric IT Unified device management Access and information protection Desktop Virtualization Hybrid Identity.
Hands-On Microsoft Windows Server Implementing Microsoft Internet Information Services Microsoft Internet Information Services (IIS) –Software included.
Module 11: Securing a Microsoft ASP.NET Web Application.
Using Enterprise Logins in Portal for ArcGIS via SAML Greg Ponto & Tom Shippee.
Instructions You must bring your own laptop, your presentation and a power supply Technical staff is present in all to assist with network, audio and video.
Extend the Operations Dashboard with Custom Widgets (and more)
Working with Feature Services Gary MacDougall Russell Brennan.
MEMBERSHIP AND IDENTITY Active server pages (ASP.NET) 1 Chapter-4.
IIS and.Net security -Vasudha Bhat. What is IIS? Why do we need IIS? Internet Information Services (IIS) is a Web server, its primary job is to accept.
Extending the Operations Dashboard
Configuring and Troubleshooting Identity and Access Solutions with Windows Server® 2008 Active Directory®
1 Chapter Overview Creating Web Sites and FTP Sites Creating Virtual Directories Managing Site Security Troubleshooting IIS.
ICM – API Server & Forms Gary Ratcliffe.
Security E-Learning Chapter 08. Security Control access to your web site –3 Techinques for Identifying users Giving users access to your site Securing.
WEB SERVER SOFTWARE FEATURE SETS
Esri UC 2014 | Demo Theater | Using ArcGIS Online App Logins in Node.js James Tedrick.
Combining ArcGIS for Server & ArcGIS Online Julia Guard and Matt Monson.
8 Copyright © 2011, Oracle and/or its affiliates. All rights reserved. BI Publisher Server: Administration and Security.
Configuring and Deploying Web Applications Lesson 7.
Active Directory. Computers in organizations Computers are linked together for communication and sharing of resources There is always a need to administer.
15 Copyright © 2004, Oracle. All rights reserved. Adding JAAS Security to the Client.
Linus Joyeux Valerie Alonso Managing consultantLead consultant blue-infinity (Switzerland) Active Directory Federation Services v2.
Publishing GIS Services to ArcGIS Server
Session 11: Cookies, Sessions ans Security iNET Academy Open Source Web Development.
ASP.NET 2.0 Security Alex Mackman CM Group Ltd
#SummitNow Consuming OAuth Services in Alfresco Share Alfresco Summit 2013 Will Abson
Business Objects XIr2 Windows NT Authentication Single Sign-on 18 August 2006.
Secured Services Best Practices on ArcGIS for Server Patrick Jackson & Thomas Noble.
19 Copyright © 2008, Oracle. All rights reserved. Security.
ArcGIS for Server Security: Advanced
Web Application Vulnerabilities, Detection Mechanisms, and Defenses
Power BI Security Best Practices
Technical Integration Guide
Combining ArcGIS for Server & ArcGIS Online
Designing IIS Security (IIS – Internet Information Service)
Introduction to Portal for ArcGIS
Presentation transcript:

Building Secure Applications Thursday, April 20, 2017 Building Secure Applications Tom Brenneman & Tom Shippee

Schedule Security overview & setup Securing GIS services Working with tokens and proxy pages Web apps and security patterns We will answer questions at the end on the session Please complete the session survey!

Security overview and setup

Security overview ArcGIS Server security provides access control Users belong to specific roles Roles can access particular services and applications Remember other security tasks Security during transmission Operating system – updates, virus protection Code – SQL injection, cross-site scripting, etc. Physical security User education – phishing, etc.

Authentication Authorization Fundamental concepts Client Resource planning planning Who are you? What can you do?

Access control model for web users ArcGIS Server has role-based access control Uses standard security protocols IIS / Java EE Basic, Digest, Integrated Windows Token based services access Windows: ASP.NET Membership and role provider Java: ArcGIS Managed Authentication: JDBC, LDAP, Active Directory

Authenticating users - Windows Authentication requires storage location for Principals Windows SQL Server Custom Client IIS ASP.NET IIS Authentication ASP.NET Authentication ASP.NET 2.0 membership Principal Stores Windows Custom SQL Server Managed by OS

Authenticating users - Java Authentication requires storage location for Principals Java EE Derby / External LDAP AD Client Java EE container ArcGIS Server Managed Derby / External DB Principal Stores Realm Custom LDAP / AD Managed by Java EE container

 SSL Configuring security Plan the implementation Certificate SQL Express Plan the implementation Identify authentication model Install supporting items Database or custom provider SSL Certificate Configure the user / role store Create users/roles Assign users to roles Assign roles to folders / services Enable and test service security Secure applications planning Pete Planner planning Internal 

Demo Configuring access control

Securing GIS services

Transitioning ArcGIS Server: Open  Secured Enabling security for services is set separately from permissions Security-Settings tab With no security, everyone has access to everything If you enable security before changing permissions, no one will be able to use existing services

Capabilities have same security as service Services Map, Geodata, Geoprocessing, Geocode, Geometry, Globe, Image, Search Capabilities KML, WMS, WFS, WCS, Mobile Data, Feature Access, Network Analysis What if I want secure editing with public viewing? Publish two map services

Securing GIS web services Services inherit folder permissions Good practice to secure folders Permissions changes cascade to all children Set permissions on root first

More details on users and roles User and role store usually same place, but can have Windows users + database roles Windows users + roles in custom provider Database users + roles in custom provider Built-in roles (Token based security only) Everyone (*): all users logon not required Authenticated Users (@): logon IS required Anonymous (?): must NOT be logged on

Securing ArcGIS Server services Two ways to connect to an ArcGIS Server service Local (“Intranet”) connection Works only on intranets Access to all server functionality User must be a member of the agsusers or agsadmin groups Web service (“Internet”) connections SOAP, REST, WMS, KML Works on intranets and over Internet

Using secured services ArcGIS Desktop, Explorer Provide identity via log on dialog SOAP, and REST applications Use token or Windows authentication More on this shortly

SSL SSL for services Require encryption When is it needed? Set ONLY at the folder level Folder property Set in Catalog or Manager When is it needed? Using Basic or Digest security Protect token from intercepted in transmission Sensitive geometry is dynamically displayed Queried attributes contain sensitive information SSL Certificate

Working with tokens and proxy pages

The Token service User authentication web service Why do we need it? Token provided to access services Uses HTTPS by default Why do we need it? Web service security when using Windows: ASP.NET membership / role provider Java: ArcGIS Server Managed Authentication Used only with GIS Web services Not used by default with Windows users Not used to authenticate Web application users

What is in a token? Token is a string with encrypted information: User name Expiration time Client ID (optional) IP address or Web URL (HTTP Referrer) If included, expiration can be a longer time period (weeks/months) Used by most clients – Desktop, ADF, Web API/REST applications, etc. If not included, shorter expiration time – needs to be renewed User name: PetePlanner Timeout: 90 min Identifier: srva.esri.com/webApp

Working with the token service ArcGIS Clients will work with tokens automatically ArcGIS Desktop and ArcGIS Engine ArcGIS Explorer Services Directory Other Clients will require explicit token management SOAP-based clients not using ADF Use server-side code to acquire and use token Web API/REST Clients Developer obtains a token from get-token Web page Developer embeds token in application or proxy

Getting a token HTTP://myWebAppHost/myApp Services Directory HTTP://myWebAppHost/myApp App must be accessed via HTTP myWebAppHost/myApp App can be accessed via HTTP or HTTPS Use IP with proxy page (more later)

How developers commonly use the token service 6. Copy/Paste token from token page into web app code Developer Developer uses Token service page 2. Enter required information 5. Service returns token 4. Credentials validated Web server Token service Principal Store (Users & Roles) 3. Client requests token

How the Web APIs/REST clients use the token Client Applications 1. Client requests with token 3. Server returns service data Web server Web service handler Token service Principal Store (Users & Roles) 2. Get user’s roles/authorizes roles SOM Permission Store (.SEC files) GIS Services

Using a token Append the token to the URL of the server Use HTTPS http://.../arcgis/services/myService/MapServer?token=hpWKwq... Use HTTPS For maximum security over unsecure networks To guard against token hijacking and replay attacks

Demo Securing Web API applications: Embed the token directly in code

When the token expires… All tokens expire HTTP error code of 498 Refresh embedded tokens periodically Source / config file update Error 498: Invalid token

Embedding tokens in a proxy page Embed token using servers IP address as referrer Pro: Token not exposed to client Con: Tokens must still be updated in proxy page Embed user name and password for dynamic token generation Pro: No ongoing maintenance Con: User name and password is unencrypted on the server Forum post contains dynamic proxy: http://forums.esri.com/Thread.asp?c=158&f=2396&t=297001

ServerURL?Token=fjY9fg… Proxy page security Proxy page contains no security logic You MUST secure the proxy page Include proxy in web application and secure the application See Using the proxy page in JavaScript API help Proxy Page ArcGIS Server ProxyURL ServerURL?Token=fjY9fg…

Demo Securing Web API applications: Bind the token in a web proxy page

Web apps and security patterns

Application security considerations Browser based applications (JavaScript, Flex, Silverlight) Application and web services need to be secured Web services are accessed from the browser Web application Web services

Securing Web API applications Can’t secure applications with only client-side code Secure using the web server / container IIS / Java EE Using ASP.NET IIS 6: Wrap code in .aspx page IIS 7: Application Pool Integrated Pipeline Other ASP.NET/ASPX wrapper Web API app

Passing identity from Web API to services JavaScript, Flex, and Silverlight It just works Integrated Windows / Basic automatically pass credentials from application to web services

Passing identity to Secured Services Web application requests token from tokens services Tokens service parameters username password clientid (ref.[URL], ip.[IP ADDRESS]) Expiration (minutes) E.g. : https://host/ArcGIS/tokens/?request=getToken&username=user &password=pass&clientid=ref.myAppHost&expiration=10 Append token to layer

Demo Securing Web API applications: Write full logon access to the token service

Token based Web API implementations Embed the token directly in code IIS ArcGIS SOAP/REST Token  Bind token in a web proxy page Secured container  Proxy page Token Write full logon access to the token service (e.g., ArcGIS Desktop, custom application ) Token  https://... Token server User _______ Password ___

Security patterns Public app with secure services Secure app with secure services Public app with login for secure services Single sign on Token based security All security models IIS Security using Integrated Windows Authentication No Yes N/A Internet / Intranet Intranet Application configuration Security model Embed token in proxy page Network

Security resources for ArcGIS Server ArcGIS Server Resource Center http://resources.arcgis.com Accessing secure services: Web APIs Enterprise Resource Center http://resources.arcgis.com/content/enterprisegis/10.0/about Supporting Resources for ArcGIS Server ArcGIS Server Help Web APIs, REST, SOAP Developer Help

Want to learn more? ESRI Training and Education Resources Instructor-Led (Classroom) Training ArcGIS Server: Web Administration Using the Microsoft .NET Framework Self-Study (Virtual Campus) Training ArcGIS Server Setup and Administration Implementing Security for ArcGIS Server .NET Solutions http://www.esri.com/training

Summary ArcGIS Server Manager enables users to Configure user and role stores Secure GIS Web services Clients work with security ArcGIS Clients (Desktop, Explorer, Engine) work seamlessly SOAP and REST clients may require working with tokens Token management is key to maintaining secure applications

Questions Thank you Please fill out the survey

Please fill out a session survey… Questions ? Please fill out a session survey…