The SciTokens Authorization Model: JSON Web Tokens & OAuth

Slides:



Advertisements
Similar presentations
GT 4 Security Goals & Plans Sam Meder
Advertisements

Contrail and Federated Identity Management
Case Studies in Identity Management for Scientific Collaboration 2014 Technology Exchange Jim Basney CILogon This material is.
Grid Security. Typical Grid Scenario Users Resources.
Dorian Grid Identity Management and Federation Dialogue Workshop II Edinburgh, Scotland February 9-10, 2006 Stephen Langella Department.
DGC Paris Community Authorization Service (CAS) and EDG Presentation by the Globus CAS team & Peter Kunszt, WP2.
16.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft® Windows® Server 2003 Active Directory Infrastructure.
 Key exchange o Kerberos o Digital certificates  Certificate authority structure o PGP, hierarchical model  Recovery from exposed keys o Revocation.
Federated Access to US CyberInfrastructure Jim Basney CILogon This material is based upon work supported by the National Science Foundation.
WebFTS as a first WLCG/HEP FIM pilot
GRDevDay March 21, 2015 Cloud-based Identity for Applications.
Google App Engine Google APIs OAuth Facebook Graph API
Edwin Sarmiento Microsoft MVP – Windows Server System Senior Systems Engineer/Database Administrator Fujitsu Asia Pte Ltd
Exploratory Data Analysis & Visualization, Spring 2015: Intro to APIs and examples in Python Yu Tian, Christine Lee March 31, 2015.
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style Design Extensions to Google+ CS6204 Privacy and Security.
Distributed Web Security for Science Gateways Jim Basney In collaboration with: Rion Dooley Jeff Gaynor
TeraGrid Science Gateways: Scaling TeraGrid Access Aaron Shelmire¹, Jim Basney², Jim Marsteller¹, Von Welch²,
ArcGIS Server and Portal for ArcGIS An Introduction to Security
Grid Resource Allocation and Management (GRAM) Execution management Execution management –Deployment, scheduling and monitoring Community Scheduler Framework.
Grid Security 1. Grid security is a crucial component Need for secure communication between grid elements  Authenticated ( verify entities are who they.
Evolution of the Open Science Grid Authentication Model Kevin Hill Fermilab OSG Security Team.
Federated Access to US CyberInfrastructure Jim Basney CILogon This material is based upon work supported by the National Science.
Communicating Security Assertions over the GridFTP Control Channel Rajkumar Kettimuthu 1,2, Liu Wantao 3,4, Frank Siebenlist 1,2 and Ian Foster 1,2,3 1.
Tutorial: Building Science Gateways TeraGrid 08 Tom Scavo, Jim Basney, Terry Fleury, Von Welch National Center for Supercomputing.
All Rights Reserved, Swurv, secure gateway interoperable communication multidomain traffic system APPLICATION LAYER TECHNICAL DISCUSSION.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Overview of Privilege Project at Fermilab (compilation of multiple talks and documents written by various authors) Tanya Levshina.
Yuchen Zhou and David Evans Presented by Simon du Preez Compsci 726 SSOScan: Automated Testing of Web Applications for Single Sign-On Vulnerabilities.
Leveraging the InCommon Federation to access the NSF TeraGrid Jim Basney Senior Research Scientist National Center for Supercomputing Applications University.
6/23/2005 R. GARDNER OSG Baseline Services 1 OSG Baseline Services In my talk I’d like to discuss two questions:  What capabilities are we aiming for.
Web Services Security Patterns Alex Mackman CM Group Ltd
Globus and PlanetLab Resource Management Solutions Compared M. Ripeanu, M. Bowman, J. Chase, I. Foster, M. Milenkovic Presented by Dionysis Logothetis.
Ian D. Alderman Computer Sciences Department University of Wisconsin-Madison Condor Week 2008 End-to-end.
1 AHM, 2–4 Sept 2003 e-Science Centre GRID Authorization Framework for CCLRC Data Portal Ananta Manandhar.
AuthZ WG Conceptual Grid Authorization Framework document Presentation of Chapter 2 GGF8 Seattle June 25th 2003 Document AID 222 draft-ggf-authz-framework pdf.
Site Authorization Service Local Resource Authorization Service (VOX Project) Vijay Sekhri Tanya Levshina Fermilab.
OSG Security: Updates on OSG CA & Federated Identities Mine Altunay, PhD OSG Security Team OSG AHM March 24, 2015.
Authentication and Authorisation for Research and Collaboration Taipei - Taiwan Mechanisms of Interfederation 13th March 2016 Alessandra.
Bringing Federated Identity to Grid Computing Dave Dykstra CISRC16 April 6, 2016.
PRACE user authentication and vetting Vincent RIBAILLIER, 29 th EUGridPMA meeting, Bucharest, September 9 th, 2013.
Access Policy - Federation March 23, 2016
Dr. Michael B. Jones Identity Standards Architect at Microsoft
Azure Active Directory - Business 2 Consumer
Open OnDemand: Open Source General Purpose HPC Portal
Grades4sure PDF Dumps CompTIA Security + Certification Exam
How to connect your DG to EDGeS? Zoltán Farkas, MTA SZTAKI
Grid Security.
Cryptography and Network Security
Node.js Express Web Services
Control system network security issues and recommendations
SSOScan: Automated Testing of Web Applications for Single Sign-On Vulnerabilities Yuchen Zhou, and David Evans 23rd USENIX Security Symposium, August,
Chapter 14: Protection.
Dynamic DNS support for EGI Federated cloud
BY: SHIVI AGRAWAL ( ) CSE-(6)C
Grid Security M. Jouvin / C. Loomis (LAL-Orsay)
Authorization in Asp.Net Core
Agenda OAuth Concepts Programming OAuth.
SharePoint Online Authentication Patterns
Office 365 Development.
Community AAI with Check-In
Platform Architecture
TechEd /22/2019 9:22 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Use of MyProxy for the FusionGrid
Token-based Authentication
A Grid Authorization Model for Science Gateways
Western Mass Microsoft Technology Users Group
Grid Computing Software Interface
Computer Network Information Center, Chinese Academy of Sciences
D Guidance 26-Jun: Would like to see a refresh of this title slide
Credential Management in HTCondor
Presentation transcript:

The SciTokens Authorization Model: JSON Web Tokens & OAuth Jim Basney <jbasney@ncsa.Illinois.edu> Brian Bockelman <bbockelm@cse.unl.edu> The SciTokens project (https://scitokens.org), in collaboration with the HTCondor team, is helping to bring capability-based authorization for least-privilege access to scientific computing infrastructures using the JSON Web Token (JWT) and OAuth standards, which are already used by services like Box, Dropbox, and Google Drive. This talk will give an introduction to the SciTokens model, including an introduction to JWTs and OAuth, and will discuss motivating use cases including PyCBC workflows using HTCondor in LIGO. This material is based upon work supported by the National Science Foundation under Grant No. 1738962. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

SciTokens Project The SciTokens project, starting July 2017, aims to: Introduce a capabilities-based authorization infrastructure for distributed scientific computing, Provide a reference platform, combining CILogon, HTCondor, CVMFS, and XRootD, and Implement specific use cases to help our science stakeholders (LIGO and LSST) better achieve their scientific aims.

Identity-based Authorization At the core of today’s grid security infrastructure is the concept of identity and impersonation. A grid certificate provides you with a globally-recognized identification. The grid proxy allows a third party to impersonate you, (ideally) on your behalf. The remote service maps your identity to some set of locally- defined authorizations. We believe this approach is fundamentally wrong because it exposes too much global state: identity and policy should be kept locally!

Capability-based Authorization We want to change the infrastructure to focus on capabilities! The tokens passed to the remote service describe what authorizations the bearer has. For traceability purposes, there may be an identifier that allows tracing of the token bearer back to an identity. Identifier != identity. It may be privacy-preserving, requiring the issuer (VO) to provide help in mapping. Example: “The bearer of this piece of paper is entitled to write into /castor/cern.ch/cms".

Capabilities versus Impersonation If GSI took over the world, an attacker could use a stolen grid proxy to make withdrawals from your bank account. With capabilities, a stolen token only gets you access to a specific authorization (“stageout to /store/user at Nebraska”). SciTokens is following the principle of least privilege for distributed scientific computing.

The World Uses Capabilities! The rest of the world uses capabilities for distributed services. The authorization service creates a token that describes a certain capability or authorization. Any bearer of that token may present it to a resource service and utilize the authorization. The primary way this is implemented is through OAuth2. When you click “allow access” on the right, the client at “OAuth2 Test” will receive a token. This token will permit it to access the listed subset of Google services for your account. OAuth2 is used by Microsoft, Facebook, Google, Dropbox, Box, Twitter, Amazon, GitHub, Salesforce (and more) to allow distributed access to their identity services.

Three-Legged Authorization In OAuth2, there are three abstract entities involved in the authorization workflow: Authorization server issues capabilities (tokens). The resource owner (end-user) approves authorizations. The client receives tokens. Often, this is the third-party website or smartphone app. Once the token is issued, it can be used at the resource server to access some protected resource. In the Google example, Google runs both the authorization and resource servers. Resource Owner Authorization Server Client

SciTokens Model = token T Integrating an OAuth2 client on the HTCondor submit host Enhancing CILogon to support OAuth2 with VO- defined scopes Enhancing HTCondor to manage token refresh, attenuation, and delivery to jobs Enhancing data services (CVMFS, Xrootd) to allow read/writes using tokens instead of grid proxies Submit Execute Data Scheduler Launcher Data Server T token T T T User Token Manager Job Token Server T

End-Goal The end-goal is this CERN CMS user @ cern.ch The end-goal is this The first time you use HTCondor, you navigate to a web interface and setup your desired permissions. On every subsequent condor_submit, HTCondor will transparently create the access token for you. User sees nothing. Replace CERN, usernames, and authorization as desired. Goal: our first use of OAuth2 will be to stageout from payload jobs to Box. HTCondor Stage Output

SCITOKENS-PROXY-INIT COPY/PASTE PASSWORD IN TERMINAL USER MANAGEMENT OF FILES SCITOKENS-PROXY-INIT COPY/PASTE

Architecture = refresh tokens = access tokens Policy DB Token Server Job Submission Job Execution condor_submit condor_startd User Identity Provider condor_schedd condor_starter Data Access condor_credd User’s job Data Server A A A (CVMFS / XRootD) condor_shadow A R

OAuth2 Authorization Framework Client User (Resource Owner) Authorization Server Resource Server Authorization Request Authorization Request Authentication & Consent Authorization Grant Authorization Grant Authorization Grant Access + Refresh Tokens Access Token Validate Token Protected Resource Refresh Token Access + Refresh Tokens

CILogon and SciTokens CILogon Federated Identity Management InCommon IdP CILogon Federated Identity Management OpenID Connect ID Tokens SciTokens Federated Authorization OAuth 2.0 Access Tokens User ID Name Email CILogon User Info VO Info Groups SciTokens Access Rights Resource

Tokens for Distributed Science Infrastructures Distributed science infrastructures are distinct from a “resource server” like Google because they are not run by a single central entity. Hence, unlike Google, we can’t use opaque random strings for the token. We need something that allows for distributed verification. Given a token, a storage service can determine it is valid. Analogously, given a proxy chain and a set of trust roots, you can determine the GSI proxy is valid. Goal: Sites set aside some area for each VO; VOs manage the authorizations within these “VO home” areas.

JWT in action! Free tokens! Navigate to https://demo.scitokens.org to get your free tokens! This demo illustrates the access token format we’re working on. Utilizes JSON Web Tokens (JWT) as the access token format. Various RFCs provide clear guidance on how to verify token integrity. Adds a few domain-specific claims for receiving access to storage. The tokens are base64-encoded and can be used as part of a curl command to use protected resources.

Example Token, Decoded The decoded token contains multiple scopes - basically filesystem authorizations. The audience narrows who the token is intended for. The issuer identifies who created the token; value used to locate the public keys needed to validate signature. The subject is an opaque identifier for the resource owner. In this case, it also happens to be the identity. The expiration is a Unix timestamp when the token expires. A typical lifetime is 10 minutes.

Early results on OSG We have been able to get a basic end-to-end token-based auth{z,n} workflow working for the OSG VO submit service. This includes patches to Xrootd to validate tokens presented via HTTP and to write files out with the correct Unix user permissions. Cheats: instead of using OAuth2 to generate the token, we keep a signing key on the submit host. only one token needed. submit host and storage server owned by OSG.

Wait, I’ve seen this before! If you’re from ALICE and getting a sense of déjà vu — you’re right! The capability-based infrastructure is precisely the authorization infrastructure used by ALICE for the past decade. SciTokens takes this successful model, recasts it using modern web protocols, and utilizes OAuth2 workflows to issue the tokens. The use of common protocols and workflows means that we have a large number of battle-tested libraries we can leverage (spend our time doing other stuff besides writing the basics!). Using JWT-formatted access tokens is somewhat-commonplace among web companies. We think SciTokens is unique in using JWT access tokens for distributed verification in a federated infrastructure.

Status & Next Steps So far we have: Next steps: Version 1.0 of Python and Java libraries Simple HTCondor OAuth client implementation XRootD token validation plugins Token-based CVMFS access X509-to-SciToken translation service 3rd-party HTTPS FTS transfers authorized with SciTokens Next steps: Use Java library for a dCache authorization plugin Release plugin for CVMFS support More fine-grained token management in HTCondor Integration with LIGO LDAP Enhancing HTCondor token support with OAuth flows

Thanks! Visit https://scitokens.org/ for more info. Any questions?