Secure Mobile Development with NetIQ Access Manager

Slides:



Advertisements
Similar presentations
Suchin Rengan Principal Technical Architect Salesforce.com
Advertisements

AAI for Apps Using AAI with your Smartphone Daniel Latzer Zürich, April 2013
FI-WARE Testbed Access Control temporary solution.
OAuth 2.0 By “PJ” (JP on meetup.com) iOS and PHP developer, and occasional lawyer Contact me via:
Oracle IDM at First National Bank
1Proprietary and Confidential AirVantage API – Getting started David SCIAMMA – June 13th 2014.
Using Evernote and Google Docs in your web or mobile application (and potentially Dropbox and Skydrive) By Peter Messenger Senior Developer – Triple Point.
Prabath Siriwardena | Johann Nallathamby.
© 2014 The MITRE Corporation. All rights reserved. Mark Russell OAuth and OpenID Connect Risks and Vulnerabilities 12/3/2014 Approved for Public Release;
FIspace Security Components FIspace Security Components NetFutures 2015 FIspace project Javier Romero Negrín Javier Hitado Simarro ATOS Serdar Arslan KoçSistem.
Implementing and Administering AD FS
Will Darby April  What is Federated Security  Security Assertion Markup Language (SAML) Overview  Example Implementations  Alternative.
GRDevDay March 21, 2015 Cloud-based Identity for Applications.
Clients using wide variety of devices/languages/platforms Server applications using wide variety of platforms/languages Browser Native app Server.
TATRC and MITRE to NwHIN Power Team 12 June 2013 RESTful Health Exchange (RHEx)
Health IT RESTful Application Programming Interface (API) Security Considerations Transport & Security Standards Workgroup March 18, 2015.
OAuth 2.0 in Depth By Rohit Ghatol SynerzipSynerzip Passionate about TechNextTechNext.
TAM STE Series 2008 © 2008 IBM Corporation WebSEAL SSO, Session 108/2008 TAM STE Series WebSEAL SSO, Session 1 Presented by: Andrew Quap.
Market Trends Enterprise Web Applications Cloud Computing SaaS Applications BYOD Data Compliance Regulations 30 Second Elevator Pitch Web browsers have.
Access and Identity Management System (AIMS) Federal Student Aid PESC Fall 2009 Data Summit October 20, 2009 Balu Balasubramanyam.
OAuth-as-a-service using ASP.NET Web API and Windows Azure Access Control Maarten
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
UMA Could I Manage My Own Data. Please?. Agenda Business Trends & Technical Solutions Distributed Business (Decentralisation) Mobility & Automation Delegation.
MCSE Guide to Microsoft Exchange Server 2003 Administration Chapter Four Configuring Outlook and Outlook Web Access.
Extending Forefront beyond the limit TMG UAG ISA IAG Security Suite
FIspace SPT Seyhun Futaci. Technology behind FIspace Authentication and Authorization IDM service of Fispace provides SSO solution for web apps, mobile.
The Internet Identity Layer OpenID Connect Update for HIT Standards Committee’s Privacy and Security Workgroup Wednesday, March 12th from 10:00-2:45 PM.
Workgroup Discussion on RESTful Application Programming Interface (API) Security Transport & Security Standards Workgroup January 12, 2014.
Copyright ©2012 Ping Identity Corporation. All rights reserved.1.
Identity on Force.com & Benefits of SSO Nick Simha.
Openid Connect
Microsoft ® Official Course Module 13 Implementing Windows Azure Active Directory.
 Facebook Integration on iOS Phan Thanh Phat Huynh Thanh Van.
SSO Case Study Suchin Rengan Principal Technical Architect Salesforce.com.
101 ways to authenticate with Azure Active Directory
THE DEVIL IS IN THE (IMPLEMENTATION) DETAILS: AN EMPIRICAL ANALYSIS OF OAUTH SSO SYSTEMS SAN-TSAI SUN & KONSTANTIN BEZNOSOV PRESENTED BY: NAZISH KHAN COMPSCI.
Access Management 2.0: UMA for the #UMAam20 for questions 20 March 2014 tinyurl.com/umawg for slides, recording, and more 1.
Deconstructing API Security
Enabling Cloud Native Security with Multi-Tenant UAA
1 Earth System Grid Center for Enabling Technologies ESG-CET Security January 7, 2016 Frank Siebenlist Rachana Ananthakrishnan Neill Miller ESG-CET All-Hands.
Securing Angular Apps Brian Noyes
User and Device Management
API Auth By Kyle Bradley. Role Definitions  User (Resource Owner)  The resource owner is the person who is giving access to some portion of their account.
WSO2 Identity Server 4.0 Fall WSO2 Carbon Enterprise Middleware Platform 2.
Slavko Kukrika MVP Connect Windows 10 to the Cloud – Cloud Join.
Today’s Applications Web API Browser Native app Web API Web API
© 2014 IBM Corporation Mobile Customization & Administration IBM Connections 5.0 Workshop Author: Paul Godby IBM Ecosystem Development Duration: 30 minutes.
#SummitNow Consuming OAuth Services in Alfresco Share Alfresco Summit 2013 Will Abson
Redmond Protocols Plugfest 2016 Ron Starr, Paul Bartos, Hagit Galatzer, Stephen Guty New and Modified Windows Protocol Documents.
SAML & OAuth V2 Nov 19/09. Goals Explore (useful) combinations of SAML & Oauth Builds on 2008 proposal from Ping ID for combining SAML SSO & Oauth authz.
Web Application Security + OAuth2 NWEN 304: Advanced Network Applications.
Building Azure Mobile Apps
4/18/2018 1:15 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Consuming OAuth Services in Alfresco Share
SAP Authentication 365 Run Simpler with SAP Digital Interconnect
Migrating SharePoint Add-ins from Azure ACS to Azure AD
SaaS Application Deep Dive
Data Virtualization Tutorial… OAuth Example using Google Sheets
Prime Service Catalog 12.0 SAML 2.0 Single Sign-On Support
OAuth2, OpenID Connect, and Science Gateways
Azure AD Line Of Business Application Integration
OpenID Connect Working Group
IOS SDK v1.0 with NAM 4.2.
Matthew Levy Azure AD B2B vs B2C Matthew Levy
SharePoint Online Authentication Patterns
Office 365 Development.
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Computer Network Information Center, Chinese Academy of Sciences
D Guidance 26-Jun: Would like to see a refresh of this title slide
NetIQ Access Manager v4.3 Sales Enablement
Presentation transcript:

Secure Mobile Development with NetIQ Access Manager April 2016

Changing User Expectations Improving and extending access management Intranet / One Big App Driven by IT Tablet / Individual Apps Driven by Users

The Mobile Challenges BYOD presents new risks and opportunities Should I develop new apps ? What about legacy systems ? How do I manage authentication and access control ? How do I manage user enrollment ? What about lost devices ? What about SSO between apps ?

Access manager Mobility support

Mobile Access Brings ease of use to the mobile owner and administrator Gives a mobile view of the corporate resources Reduces risk of lost or stolen devices Keeps corporate password off of the mobile device Delivered as an App

MobileAccess Native Mobile App Container for ‘AppMarks’ Role-based access Built-in security No passwords in the device Tokens stored in secure keychain PIN protection User self-service

Mobile Access HTML Landing Page Desktop View Mobile Device View of Applications

Native Mobile Application Development Option 1 SDK for developing native mobile app SDK for iOS Android SDK in development Option 2 OAuth/OpenID Connect Supports full-stack OAuth2.0 protocol Role based access control Application and device registration support

Native Application Development – Option 1 Mobile Development SDK

SDK for native iOS Apps Library in Objective-C Simple APIs with drop-in solution no source code needed to be included in developer project Supported Platforms – iOS 8+ Achieve 1-prompt SSO to OAuth resources TestApp to test SDK Sensitive data such as Access, Refresh Tokens are securely stored in device Keychain

iOS SDK SDK available as iOS Framework To be dropped in Xcode project Add NMAAuthLib.framework file in appropriate build Target to the Embedded Binaries section Two separate deliverables, one for simulator & other for the device Implements the [native application profile] of OAuth spec http://tools.ietf.org/html/rfc6749 All communications are over HTTPS Handles Multiple Accounts Special Redirect URI for Embedded browser urn:ietf:wg:oauth:2.0:oob

SDK – Sequence of actions

OAuth Configuration OAuth scopes can be configured in NAM OAuth settings -> Resource Servers -> scopes Sample OAuth application configuration shown below

Using NMAAuthLib Configure your Client Requesting Access - NMAAuthLibManager Singleton [[NMAAuthLibManager sharedInstance] setClientID:@"myClientID" secret:@"mySecret" authorizationURL:[NSURL URLWithString:@"https://your authz URL..."] tokenURL:[NSURL URLWithString:@"https://your token URL..."] redirectURL:[NSURL URLWithString:@"https://your redirect URL..."] forAccountName:@"myOAuth2Service"]; Requesting Access - Embedded Browser - Provide Authorization URL Handler [[NMAAuthLibManager sharedInstance] signInToAccountWithName:@"myOAuth2Service" withPreparedAuthorizationURLHandler:^(NSURL *preparedURL){ // Open a web view or similar }]; - Load request in WebView [_webView loadRequest:[NSURLRequest requestWithURL:preparedURL]]; - In webViewDidFinishLoad delegate method parse the callback URL One of the possible places server can send the Authorization Code is Page Title [NMAAuthLibManager handleRedirectURL:] - On Success After successful authentication, a new NMAAuthAccount is created and stored in device keychain and your app will receive `NMAAuthAccountManagerAccountsDidChangeNotification’ notification - On Failure If Authentication failed, `NMAAuthAccountManagerDidFailToRequestAccessNotification` notification containing an `NSError` will be sent.

Using NMAAuthLib Getting Accounts - List of all account or specific account can be queried by [[NMAAuthLibManager sharedInstance] accountsWithAccountName:@"myOAuth2Service"] Invoking a Protected Resource Request There are a couple of ways to invoke a request. The preferred way is to pre-authorize the request. This will pre-emptively refresh token if the access token has expired (within 60 secs) [theRequest authorizeRequestWithError:&error]; Note: This is a synchronous call and is made on the calling method thread. User Data - Each NMAAuthAccount has a property ‘userData’ which can be used to store account user information Removing Accounts - [[NMAAuthLibManager sharedInstance] removeAccount:account];

Native Application Development – Option 2 OAuth and OpenID Connect

What is OAuth? An open protocol standard(s) for Web API authorization Goals: OAuth provides a method for users to grant third party access to resources without sharing credentials OAuth allows users to exchange tokens instead of credentials to their data hosted by a service Allows to control access by Scope, Action, Time

OpenID Connect A simple identity protocol built on top of OAuth 2.0 Allows Clients to verify the identity of the End-User based on the authentication performed by an Authorization Server Allows clients to obtain basic profile information about the end-user in an interoperable and REST call ID Token Userinfo endpoint Tokeninfo endpoint Claims request

Typical OAuth flow The authorization code grant starts with the client, such as a web-based service, redirecting the resource owner's user-agent to the authorization service (IDP). After authenticating the resource owner again obtaining the resource owner's authorization, IDP redirects the resource owner's user-agent back to the client with an authorization code that the client uses to request the access token. The following sequence diagram outlines a successful process from initial client redirection through to the client accessing the protected resource. The implicit grant is designed for clients implemented to run inside the resource-owner user agent. Instead of providing an authorization code that the client must use to retrieve an access token, IDP returns the access token directly in the fragment portion of the redirect URI. The resource owner password credentials grant lets the client use the resource owner's user name and password to get an access token directly. Although this grant might seem to conflict with an original OAuth goal of not having to share resource owner credentials with the client, it can makes sense in a secure context where other authorization grant types are not available, such as a client that is part of a device operating system using the resource owner credentials once and thereafter using refresh tokens to continue accessing resources The client credentials grant uses client credentials as an authorization grant. This grant makes sense when the client is also the resource owner, for example.

OAuth/OpenID Connect support in NAM NAM IDP would function as OAuth 2.0 authorization server IDP could authenticate resource owners, obtain their authorization and issue access token to client applications Provides ability to convert legacy applications to OAuth flow NAM Access Gateway could authorize OAuth tokens and inject credentials to applications Provides ability to convert legacy applications to OAuth flow without modifications Supports OAuth Flows such as Authorization code grants Implicit grants Resource Owner Credentials grant Client credential grants Supports OpenID Connect endpoints JSON Web Tokens ID Token Userinfo endpoint Tokeninfo endpoint Claims requests The authorization code grant starts with the client, such as a web-based service, redirecting the resource owner's user-agent to the authorization service (IDP). After authenticating the resource owner again obtaining the resource owner's authorization, IDP redirects the resource owner's user-agent back to the client with an authorization code that the client uses to request the access token. The following sequence diagram outlines a successful process from initial client redirection through to the client accessing the protected resource. The implicit grant is designed for clients implemented to run inside the resource-owner user agent. Instead of providing an authorization code that the client must use to retrieve an access token, IDP returns the access token directly in the fragment portion of the redirect URI. The resource owner password credentials grant lets the client use the resource owner's user name and password to get an access token directly. Although this grant might seem to conflict with an original OAuth goal of not having to share resource owner credentials with the client, it can makes sense in a secure context where other authorization grant types are not available, such as a client that is part of a device operating system using the resource owner credentials once and thereafter using refresh tokens to continue accessing resources The client credentials grant uses client credentials as an authorization grant. This grant makes sense when the client is also the resource owner, for example.

Web Application Validation Method Identity Server issues the Access token Web Applications validate the token Web applications validate an Access token before allowing a client application to access resources The Identity Server (authorization server) issues an Access token and web applications validate the token before granting a client application to access resources. This configuration is suitable in the following scenarios: Web server authentication Accessing resources without using owner’s credentials RESTful applications security Mobile authentication The client application requests authorization from the user (resource owner). Client applications can make the authorization request directly to the resource owner or through the authorization server (Identity Server) as an intermediary. The client application receives an authorization grant from the authorization server. An authorization grant represents the resource owner's authorization. The user communicates the authorization by using one of four grants types or by using an extension grant. The client application authenticates itself at the authorization server, sends the authorization grant, and requests an Access token. The authorization server authenticates the client application and validates the authorization grant. The authorization server issues an Access token for a valid grant. The client application requests the resource server to provide access to the protected resource and authenticates this by presenting the Access token. The resource server accepts the request for a valid token.

OAuth support in NAM Access Gateway

Access Gateway Validation Method Used for access to legacy web applications This configuration is suitable when client applications want to access resources on legacy web applications. A client application requests access to a web resource and provides authentication details to the Identity Server. The Identity Server authenticates the client application, gets the user’s consent, generates an OAuth token, and sends the token to the client application. The client application provides the token to the Access Gateway. The Access Gateway sends the token to the Identity Server for validation. If the token is not valid, AG returns a 401 error. If the token is valid, The Access Gateway performs the following tasks: Executes the authorization policy, if configured, based on OAuth scopes or claims. Sends user attributes and grants details provided to the client application to the web application by using the Identity Injection policy, if configured. The resource server returns a response to the Access Gateway and the Access Gateway sends this response to the client application.

Configuring OAuth with OpenID Connect To configure OAuth and OpenID Connect: Enable the OAuth protocol in the Administration Console Define the global settings Configure a resource server Configure scopes and claims for a resource server Register client applications More information about each step is in the Administration Guide.

Embracing Mobility What to choose when? Mobile Access Mobile SDK OAuth/OIDC SAML For extending existing applications to mobile When developing native mobile apps When developing native mobile apps and securing APIs (primarily RESTful APIs) For federation to SAML enabled web applications Quick configuration, no developer experience required Requires developer experience, more functional and easier that handling protocols Flexible, requires understanding of technology, much broader than mobile use cases Easier configuration with NAM, no developer experience required May not be as functional and user friendly as native apps Allows faster development of native app authentication More flexible and generic, supports complex use cases More suited for web federation