SlideShare a Scribd company logo
1 of 34
E5: Predix Security with ACS/UAA
Dario Amiri, Senior Software Architect, GE Digital
@darioamiri
2PREDIX TRANSFORM
Agenda
User Account and Authentication (UAA)1
Access Control Service (ACS)2
3PREDIX TRANSFORM
User Account and Authentication
UAA features include
• User account management
• OIDC and SAML initiated login
• OIDC and SAML federation of external identity providers
• All OAuth 2.0 grant types
• Device authentication
4PREDIX TRANSFORM
User Account Management
• SCIM-based RESTful API
• User native accounts
– Credentials stored in UAA
• User shadow accounts
– Federated identities
• Manage user privileges
– Group membership
– Coarse-grained
– Tied to user login session
5PREDIX TRANSFORM
User Authentication
• OpenID Connect (OIDC)
– Built on top of OAuth 2.0 framework
– Easier to implement
• Security Assertion Markup Language (SAML)
– Ubiquitous in the enterprise
– You better know what you’re doing
6PREDIX TRANSFORM
OIDC/OAuth Concepts
• Resource Owner
– I.e. a user
• Client
– Application or service identity
– Can act on it’s own or on behalf of a user (i.e. resource owner)
• Grant type
– A procedure for authorizing a client or user
– client_credentials authorizes a client acting on it’s own
– authz_code authorizes a client to act on behalf of a user
7PREDIX TRANSFORM
Authorities vs. groups vs. scopes
• Authorities
– What privileges a client has when it acts on it’s own
• Groups
– What privileges a user potentially has
– Effective privileges are still limited by the client scopes …
app_client
authorities:
clients.secret
scopes: scim.read
scim.read
scim.write
tom@ge.com
GroupsUsersClients
8PREDIX TRANSFORM
Authorities vs. groups vs. scopes
• Client scopes
– What a user can do through a specific client
– Inner join of user groups and client scopes produces …
• Access token scope
– Holds the effective privileges during a login session
app_client
authorities:
clients.secret
scopes: scim.read
scim.read
scim.write
tom@ge.com
GroupsUsersClients
9PREDIX TRANSFORM
Authorities vs. groups vs. scope
app_client
authorities:
clients.secret scopes:
scim.read
scim.read
scim.write
tom@ge.com
GroupsUsersClients
scope:
clients.secret
scope:
scim.read
Tokens
client_credentials authz_code
OAuth Grant Type
10PREDIX TRANSFORM
Authorities vs. groups vs. scope
app_client
authorities:
clients.secret scopes:
scim.*
scim.read
scim.write
tom@ge.com
GroupsUsersClients
scope:
clients.secret
scope:
scim.read
scim.write
Tokens
client_credentials authz_code
OAuth Grant Type
11PREDIX TRANSFORM
Service-to-service authentication
• OAuth 2.0 client credentials grant
– Restrict allowed grant type to client_credentials
– Set client authorities as necessary to access Predix services
– <service>.zones.<instance>.user
– Restrict unnecessary authorities
service consumer
(client)
web service
(resource server)
uaa
(authorization server)
trust
3.api request + token
1.client id + secret
2.token
4.data
12PREDIX TRANSFORM
Login service - OIDC
• OpenID Connect (OIDC)
http://openid.net/specs/openid-connect-core-
1_0.html
– Supported by virtually all web
frameworks and reverse
proxies
– Uses authz_code or implicit
grant
– Basically OAuth but the access
token represents a user
identity
session management
token verification
web app
(client)
web service
(resource server)
uaa
(authorization server)
trust
browser
1.request
2.oauth
3.login
7.api request
+ token
5.code
6.token
4.code
8.data
9.response
13PREDIX TRANSFORM
Login service - SAML
• Security Assertion Markup
Language
(SAML)http://saml.xml.org/saml-
specifications
– Ubiquitous in the enterprise
– Complicated to use
– SAML IdP metadata:
http://<uaa
hostname>/saml/idp/metadat
a
session management
web app
(client)
uaa
(authorization server)trust
browser
1.request
2.saml request
3.login
4.saml response
5.response
14PREDIX TRANSFORM
Federating external IdP with SAML
• Download your SAML SP metadata from UAA
– https://<uaa hostname>/saml/metadata
– Send this to the IdP’s administrator
• Obtain SAML IdP metadata from IdP administrator
• Create/configure IdP in UAA
– Use the scripts
– Read the documentation
15PREDIX TRANSFORM
Federating external IdP with SAML
session management
token verification
web app
(client)
web service
(resource server)
uaa
(authorization server)
trust
browser
1.request
2.oauth
4.login
9.api request
+ token
7.code
8.token
6.code
10.data
11.response
saml idp
3.saml request
5.saml response
16PREDIX TRANSFORM
Federating external IdP with SAML
• Federate with multiple identity providers
• IdP discovery based on user domain
– tom@ge.com authenticates with the ge.com idp
– nik@tesla.com authenticates with the tesla.com idp
• Mapping of SAML attributes to JWT properties
17PREDIX TRANSFORM
Best Practices
• Read the documentation
• Initiate user login using OpenID Connect (OIDC)
• Use client credentials grant for devices
– Give each device a client id and secret
– Use JWT Bearer Profile for certificate-based authentication
• Consider using the GE shared UAA
• Use the new dashboard when it becomes available
18PREDIX TRANSFORM
Why ACS?
Limitations of OAuth 2.0
• Scope-based privileges are too coarse-grained
• Scopes are tightly coupled to access token
– Logout/login required for privilege changes to take effect
• Lack of consistent solution for
– policy definition
– privilege management
• Performance not tuned for making fine-grained access control
decisions per resource request
19PREDIX TRANSFORM
What does ACS do?
Attribute Based Access Control (ABAC)
• Attribute store for
– Subjects: entities that do things
– Resources: entities that have things done to them
• Policy store
– How subject and resource attributes combine to determine privileges
• Policy evaluation
– Given a subject, action, and resource determine if operation is allowed
20PREDIX TRANSFORM
What are attributes?
• A key value pair
• Asserted by a trusted entity
• Useful for making authorization decisions
21PREDIX TRANSFORM
What are attributes?
• tom@ge.com is an analyst
• tom@ge.com is a member of the research group
role: analyst
group: researchers
attributes
subject
tom@ge.com
identifier
22PREDIX TRANSFORM
What are attributes?
• The asset with id 1234 is located at the San Ramon site
• The asset with id 1234 belongs to users in the research group
site: san-ramon
group: researchers
attributes
resource
/assets/1234
identifier
23PREDIX TRANSFORM
Breaking down policy evaluation
• Client sends a request for authorization
– Can a subject perform an action on a resource
– Java library support today - route service tomorrow
• ACS performs
– Attribute discovery
– Policy evaluation
• Client receives
– Authorization decision (permit | deny)
– Discovered attributes
24PREDIX TRANSFORM
authorization request
tom@ge.com
subject
/assets/1234
resource
GET
action
attribute discovery
policy evaluation
authorization response
PERMIT | DENY
decision
role: analyst
group: researchers
tom@ge.com
site: san-ramon
group: researchers
/assets/1234
discovered attributes
25PREDIX TRANSFORM
authorization response
discovered attributes
subject.and(resource).haveSame(‘group’)
policy
condition
attribute discovery
role: analyst
group: researchers
tom@ge.com
site: san-ramon
group: researchers
/assets/1234
discovered attributes
Attribute Store
authorization request
tom@ge.com /assets/1234GET
permit
26PREDIX TRANSFORM
Implementing RBAC with ACS
Hierarchical attributes
• Define attributes for roles, groups, etc.
– Users can inherit attributes from these
– Create an “analyst” subject and assign it attributes
– Have “tom@ge.com” subject inherit attributes from “analyst”
27PREDIX TRANSFORM
Subject attribute inheritance example
org: ge
tenancy-id: 11235
org-ge
group: research
app: apm
group-research
role: analyst
report: asset-performance
role-analyst
tom@ge.com
org: ge
tenancy-id: 11235
group: research
app: apm
role: analyst
report: asset-performance
28PREDIX TRANSFORM
Resource attribute inheritance example
org: ge
site: san-ramon
/sites/01
group: research
/sites/01/assets/21
report: asset-performance
/sites/01/assets/21/reports/72
org: ge
site: san-ramon
group: research
report: asset-performance
29PREDIX TRANSFORM
Dynamic roles
Subject roles depend on the resource accessed
• Child subject conditionally inherits parent attributes
– User X inherits attribute from role Y when accessing resource Z
– tom@ge.com is an analyst for the “san-ramon” site
– tom@ge.com is not an analyst for other sites
• Subject attributes are scoped by resource attributes
30PREDIX TRANSFORM
Scoped attribute inheritance (permit)
• Example policy
– Allow user access to asset performance report if
– The asset belongs to the user’s group
– The user is an analyst for the San Ramon site
site: san-ramon
org: ge
tenancy-id: 11235
org-ge
group: research
app: apm
group-research
role: analyst
report: asset-performance
role-analyst
tom@ge.com
org: ge
tenancy-id: 11235
group: research
app: apm
role: analyst
report: asset-performance
org: ge
site: san-ramon
/sites/01
group: research
/sites/01/assets/21
report: asset-performance
/sites/01/assets/21/reports/72
org: ge
site: san-ramon
group: research
report: asset-performance
31PREDIX TRANSFORM
Scoped attribute inheritance (deny)
• Example policy
– Allow user access to asset performance report if
– The asset belongs to the user’s group
– The user is an analyst for the San Ramon site
site: san-ramon
org: ge
tenancy-id: 11235
org-ge
group: research
app: apm
group-research
role: analyst
report: asset-performance
role-analyst
tom@ge.com
org: ge
tenancy-id: 11235
group: research
app: apm
org: ge
site: cincy-oh
/sites/02
group: research
/sites/02/assets/33
report: asset-performance
/sites/02/assets/33/reports/51
org: ge
site: cincy-oh
group: research
report: asset-performance
32PREDIX TRANSFORM
Technology stack
runtime
Apache
Cassandra
PostgreSQL
java
spring titan db
spring data apache tinkerpop
cloud foundry
platform
uaa
• Apache 2 license
• We’re on github: https://github.com/predix/acs
33PREDIX TRANSFORM
Five Lessons to Take Away
1. Use UAA to manage, federate, and authenticate
2. Understand OAuth 2.0, OIDC, SAML
3. Know Authorities vs. Groups vs. Scope
4. Use ACS to address limitations of OAuth
5. Read the UAA and ACS documentation
General Electric reserves the right to make changes in specifications and features, or discontinue the product or service described at any time, without notice or obligation. These materials do not constitute a
representation, warranty or documentation regarding the product or service featured. Illustrations are provided for informational purposes, and your configuration may differ. This information does not
constitute legal, financial, coding, or regulatory advice in connection with your use of the product or service. Please consult your professional advisors for any such advice. GE, Predix and the GE Monogram are
trademarks of General Electric Company. ©2016 General Electric Company – All rights reserved.

More Related Content

What's hot

PAM1: Managing Assets at Scale
PAM1: Managing Assets at ScalePAM1: Managing Assets at Scale
PAM1: Managing Assets at ScalePredix
 
E3: Edge and Cloud Connectivity (Predix Transform 2016)
E3: Edge and Cloud Connectivity (Predix Transform 2016)E3: Edge and Cloud Connectivity (Predix Transform 2016)
E3: Edge and Cloud Connectivity (Predix Transform 2016)Predix
 
IIA1: Industrial Control Systems 101 (Predix Transform 2016)
IIA1: Industrial Control Systems 101 (Predix Transform 2016)IIA1: Industrial Control Systems 101 (Predix Transform 2016)
IIA1: Industrial Control Systems 101 (Predix Transform 2016)Predix
 
PCF1: Cloud Foundry Diego ( Predix Transform 2016)
PCF1: Cloud Foundry Diego ( Predix Transform 2016)PCF1: Cloud Foundry Diego ( Predix Transform 2016)
PCF1: Cloud Foundry Diego ( Predix Transform 2016)Predix
 
IIA4: Open Source and the Enterprise ( Predix Transform 2016)
IIA4: Open Source and the Enterprise ( Predix Transform 2016)IIA4: Open Source and the Enterprise ( Predix Transform 2016)
IIA4: Open Source and the Enterprise ( Predix Transform 2016)Predix
 
D6: Cloud Directions ( Predix Transform 2016)
D6: Cloud Directions ( Predix Transform 2016)D6: Cloud Directions ( Predix Transform 2016)
D6: Cloud Directions ( Predix Transform 2016)Predix
 
PAN1: Thermal Imaging Analysis ( Predix Transform 2016)
PAN1: Thermal Imaging Analysis ( Predix Transform 2016)PAN1: Thermal Imaging Analysis ( Predix Transform 2016)
PAN1: Thermal Imaging Analysis ( Predix Transform 2016)Predix
 
E1: Building the Digital Twin (Predix Transform 2016)
E1: Building the Digital Twin (Predix Transform 2016)E1: Building the Digital Twin (Predix Transform 2016)
E1: Building the Digital Twin (Predix Transform 2016)Predix
 
Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support
Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol SupportCloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support
Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol SupportVMware Tanzu
 
Monitoring in the DevOps Era
Monitoring in the DevOps EraMonitoring in the DevOps Era
Monitoring in the DevOps EraMike Kavis
 
IoT Platform Meetup - GE
IoT Platform Meetup - GEIoT Platform Meetup - GE
IoT Platform Meetup - GEFilip Kolář
 
PAM3: Machine Learning in the Railway Industry ( Predix Transform 2016)
PAM3: Machine Learning in the Railway Industry ( Predix Transform 2016)PAM3: Machine Learning in the Railway Industry ( Predix Transform 2016)
PAM3: Machine Learning in the Railway Industry ( Predix Transform 2016)Predix
 
Improve Visibility and Diagnostics of Your Network with Network Management So...
Improve Visibility and Diagnostics of Your Network with Network Management So...Improve Visibility and Diagnostics of Your Network with Network Management So...
Improve Visibility and Diagnostics of Your Network with Network Management So...Rockwell Automation
 
Transform Your Cloud Validation Strategy from Cloudy to Clear
Transform Your Cloud Validation Strategy from Cloudy to ClearTransform Your Cloud Validation Strategy from Cloudy to Clear
Transform Your Cloud Validation Strategy from Cloudy to ClearTechWell
 
RA TechED 2019 - SS16 - Security Where and Why do I start
RA TechED 2019 - SS16 - Security Where and Why do I startRA TechED 2019 - SS16 - Security Where and Why do I start
RA TechED 2019 - SS16 - Security Where and Why do I startRockwell Automation
 
Suffering from “Franken” Monitoring?
Suffering from “Franken” Monitoring?Suffering from “Franken” Monitoring?
Suffering from “Franken” Monitoring?Riverbed Technology
 
GE Digital Predix. Mario Testino, General Electrics
GE Digital Predix. Mario Testino, General ElectricsGE Digital Predix. Mario Testino, General Electrics
GE Digital Predix. Mario Testino, General ElectricsData Driven Innovation
 
Database Visibility and Troubleshooting Hands-on Lab - AppSphere16
Database Visibility and Troubleshooting Hands-on Lab - AppSphere16Database Visibility and Troubleshooting Hands-on Lab - AppSphere16
Database Visibility and Troubleshooting Hands-on Lab - AppSphere16AppDynamics
 
RA TechED 2019 - PR24 - FactoryTalk Brew Designed to Help Large Brewer's Succeed
RA TechED 2019 - PR24 - FactoryTalk Brew Designed to Help Large Brewer's SucceedRA TechED 2019 - PR24 - FactoryTalk Brew Designed to Help Large Brewer's Succeed
RA TechED 2019 - PR24 - FactoryTalk Brew Designed to Help Large Brewer's SucceedRockwell Automation
 
FactoryTalk® AssetCentre: Overview
FactoryTalk® AssetCentre: OverviewFactoryTalk® AssetCentre: Overview
FactoryTalk® AssetCentre: OverviewRockwell Automation
 

What's hot (20)

PAM1: Managing Assets at Scale
PAM1: Managing Assets at ScalePAM1: Managing Assets at Scale
PAM1: Managing Assets at Scale
 
E3: Edge and Cloud Connectivity (Predix Transform 2016)
E3: Edge and Cloud Connectivity (Predix Transform 2016)E3: Edge and Cloud Connectivity (Predix Transform 2016)
E3: Edge and Cloud Connectivity (Predix Transform 2016)
 
IIA1: Industrial Control Systems 101 (Predix Transform 2016)
IIA1: Industrial Control Systems 101 (Predix Transform 2016)IIA1: Industrial Control Systems 101 (Predix Transform 2016)
IIA1: Industrial Control Systems 101 (Predix Transform 2016)
 
PCF1: Cloud Foundry Diego ( Predix Transform 2016)
PCF1: Cloud Foundry Diego ( Predix Transform 2016)PCF1: Cloud Foundry Diego ( Predix Transform 2016)
PCF1: Cloud Foundry Diego ( Predix Transform 2016)
 
IIA4: Open Source and the Enterprise ( Predix Transform 2016)
IIA4: Open Source and the Enterprise ( Predix Transform 2016)IIA4: Open Source and the Enterprise ( Predix Transform 2016)
IIA4: Open Source and the Enterprise ( Predix Transform 2016)
 
D6: Cloud Directions ( Predix Transform 2016)
D6: Cloud Directions ( Predix Transform 2016)D6: Cloud Directions ( Predix Transform 2016)
D6: Cloud Directions ( Predix Transform 2016)
 
PAN1: Thermal Imaging Analysis ( Predix Transform 2016)
PAN1: Thermal Imaging Analysis ( Predix Transform 2016)PAN1: Thermal Imaging Analysis ( Predix Transform 2016)
PAN1: Thermal Imaging Analysis ( Predix Transform 2016)
 
E1: Building the Digital Twin (Predix Transform 2016)
E1: Building the Digital Twin (Predix Transform 2016)E1: Building the Digital Twin (Predix Transform 2016)
E1: Building the Digital Twin (Predix Transform 2016)
 
Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support
Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol SupportCloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support
Cloud Foundry Summit 2015: Cloud Foundry and IoT Protocol Support
 
Monitoring in the DevOps Era
Monitoring in the DevOps EraMonitoring in the DevOps Era
Monitoring in the DevOps Era
 
IoT Platform Meetup - GE
IoT Platform Meetup - GEIoT Platform Meetup - GE
IoT Platform Meetup - GE
 
PAM3: Machine Learning in the Railway Industry ( Predix Transform 2016)
PAM3: Machine Learning in the Railway Industry ( Predix Transform 2016)PAM3: Machine Learning in the Railway Industry ( Predix Transform 2016)
PAM3: Machine Learning in the Railway Industry ( Predix Transform 2016)
 
Improve Visibility and Diagnostics of Your Network with Network Management So...
Improve Visibility and Diagnostics of Your Network with Network Management So...Improve Visibility and Diagnostics of Your Network with Network Management So...
Improve Visibility and Diagnostics of Your Network with Network Management So...
 
Transform Your Cloud Validation Strategy from Cloudy to Clear
Transform Your Cloud Validation Strategy from Cloudy to ClearTransform Your Cloud Validation Strategy from Cloudy to Clear
Transform Your Cloud Validation Strategy from Cloudy to Clear
 
RA TechED 2019 - SS16 - Security Where and Why do I start
RA TechED 2019 - SS16 - Security Where and Why do I startRA TechED 2019 - SS16 - Security Where and Why do I start
RA TechED 2019 - SS16 - Security Where and Why do I start
 
Suffering from “Franken” Monitoring?
Suffering from “Franken” Monitoring?Suffering from “Franken” Monitoring?
Suffering from “Franken” Monitoring?
 
GE Digital Predix. Mario Testino, General Electrics
GE Digital Predix. Mario Testino, General ElectricsGE Digital Predix. Mario Testino, General Electrics
GE Digital Predix. Mario Testino, General Electrics
 
Database Visibility and Troubleshooting Hands-on Lab - AppSphere16
Database Visibility and Troubleshooting Hands-on Lab - AppSphere16Database Visibility and Troubleshooting Hands-on Lab - AppSphere16
Database Visibility and Troubleshooting Hands-on Lab - AppSphere16
 
RA TechED 2019 - PR24 - FactoryTalk Brew Designed to Help Large Brewer's Succeed
RA TechED 2019 - PR24 - FactoryTalk Brew Designed to Help Large Brewer's SucceedRA TechED 2019 - PR24 - FactoryTalk Brew Designed to Help Large Brewer's Succeed
RA TechED 2019 - PR24 - FactoryTalk Brew Designed to Help Large Brewer's Succeed
 
FactoryTalk® AssetCentre: Overview
FactoryTalk® AssetCentre: OverviewFactoryTalk® AssetCentre: Overview
FactoryTalk® AssetCentre: Overview
 

Viewers also liked

PEM1: Device Authentication in IIOT ( Predix Transform 2016)
PEM1:  Device Authentication in IIOT ( Predix Transform 2016)PEM1:  Device Authentication in IIOT ( Predix Transform 2016)
PEM1: Device Authentication in IIOT ( Predix Transform 2016)Predix
 
GE Predix Transform 2016 - UX & Customer Engagement
GE Predix Transform 2016 - UX & Customer EngagementGE Predix Transform 2016 - UX & Customer Engagement
GE Predix Transform 2016 - UX & Customer EngagementDavid Bingham
 
GE IOT Predix Time Series & Data Ingestion Service using Apache Apex (Hadoop)
GE IOT Predix Time Series & Data Ingestion Service using Apache Apex (Hadoop)GE IOT Predix Time Series & Data Ingestion Service using Apache Apex (Hadoop)
GE IOT Predix Time Series & Data Ingestion Service using Apache Apex (Hadoop)Apache Apex
 
D5_Cyber Security Directions-Transform2016-FINAL
D5_Cyber Security Directions-Transform2016-FINALD5_Cyber Security Directions-Transform2016-FINAL
D5_Cyber Security Directions-Transform2016-FINALRuss Dietz
 
2016-CyberWeek-TLV-Next-Generation-Cyber-FINAL
2016-CyberWeek-TLV-Next-Generation-Cyber-FINAL2016-CyberWeek-TLV-Next-Generation-Cyber-FINAL
2016-CyberWeek-TLV-Next-Generation-Cyber-FINALRuss Dietz
 
Extending Cloud Foundry UAA for Authorizations and Multi-Data Center Deployme...
Extending Cloud Foundry UAA for Authorizations and Multi-Data Center Deployme...Extending Cloud Foundry UAA for Authorizations and Multi-Data Center Deployme...
Extending Cloud Foundry UAA for Authorizations and Multi-Data Center Deployme...VMware Tanzu
 
GE Healthcare - Marketing Automation Roll Out Plan & Framework - v11.0sa
GE Healthcare - Marketing Automation Roll Out Plan & Framework - v11.0saGE Healthcare - Marketing Automation Roll Out Plan & Framework - v11.0sa
GE Healthcare - Marketing Automation Roll Out Plan & Framework - v11.0saSal Abramo
 

Viewers also liked (9)

PEM1: Device Authentication in IIOT ( Predix Transform 2016)
PEM1:  Device Authentication in IIOT ( Predix Transform 2016)PEM1:  Device Authentication in IIOT ( Predix Transform 2016)
PEM1: Device Authentication in IIOT ( Predix Transform 2016)
 
GE Predix Transform 2016 - UX & Customer Engagement
GE Predix Transform 2016 - UX & Customer EngagementGE Predix Transform 2016 - UX & Customer Engagement
GE Predix Transform 2016 - UX & Customer Engagement
 
GE IOT Predix Time Series & Data Ingestion Service using Apache Apex (Hadoop)
GE IOT Predix Time Series & Data Ingestion Service using Apache Apex (Hadoop)GE IOT Predix Time Series & Data Ingestion Service using Apache Apex (Hadoop)
GE IOT Predix Time Series & Data Ingestion Service using Apache Apex (Hadoop)
 
D5_Cyber Security Directions-Transform2016-FINAL
D5_Cyber Security Directions-Transform2016-FINALD5_Cyber Security Directions-Transform2016-FINAL
D5_Cyber Security Directions-Transform2016-FINAL
 
GE Info
GE InfoGE Info
GE Info
 
2016-CyberWeek-TLV-Next-Generation-Cyber-FINAL
2016-CyberWeek-TLV-Next-Generation-Cyber-FINAL2016-CyberWeek-TLV-Next-Generation-Cyber-FINAL
2016-CyberWeek-TLV-Next-Generation-Cyber-FINAL
 
Extending Cloud Foundry UAA for Authorizations and Multi-Data Center Deployme...
Extending Cloud Foundry UAA for Authorizations and Multi-Data Center Deployme...Extending Cloud Foundry UAA for Authorizations and Multi-Data Center Deployme...
Extending Cloud Foundry UAA for Authorizations and Multi-Data Center Deployme...
 
SCIM and VOOT
SCIM and VOOTSCIM and VOOT
SCIM and VOOT
 
GE Healthcare - Marketing Automation Roll Out Plan & Framework - v11.0sa
GE Healthcare - Marketing Automation Roll Out Plan & Framework - v11.0saGE Healthcare - Marketing Automation Roll Out Plan & Framework - v11.0sa
GE Healthcare - Marketing Automation Roll Out Plan & Framework - v11.0sa
 

Similar to E5: Predix Security with ACS & UAA (Predix Transform 2016)

Identity Management Standardization in the cloud computing
Identity Management Standardization in the cloud computingIdentity Management Standardization in the cloud computing
Identity Management Standardization in the cloud computingOmerZia11
 
Industrial Strength Access Control for Spring Applications
Industrial Strength Access Control for Spring ApplicationsIndustrial Strength Access Control for Spring Applications
Industrial Strength Access Control for Spring ApplicationsVMware Tanzu
 
Best Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and ComplianceBest Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and ComplianceRightScale
 
IAM for Enterprises: How Vanguard Matured IAM Controls to Support Micro Accou...
IAM for Enterprises: How Vanguard Matured IAM Controls to Support Micro Accou...IAM for Enterprises: How Vanguard Matured IAM Controls to Support Micro Accou...
IAM for Enterprises: How Vanguard Matured IAM Controls to Support Micro Accou...Amazon Web Services
 
Governance and Security Solution Patterns
Governance and Security Solution Patterns Governance and Security Solution Patterns
Governance and Security Solution Patterns WSO2
 
API Security in a Microservice Architecture
API Security in a Microservice ArchitectureAPI Security in a Microservice Architecture
API Security in a Microservice ArchitectureMatt McLarty
 
Building Research Applications with Globus PaaS
Building Research Applications with Globus PaaSBuilding Research Applications with Globus PaaS
Building Research Applications with Globus PaaSGlobus
 
AWS Summit Sydney 2014 | Understanding AWS Security
AWS Summit Sydney 2014 | Understanding AWS SecurityAWS Summit Sydney 2014 | Understanding AWS Security
AWS Summit Sydney 2014 | Understanding AWS SecurityAmazon Web Services
 
FIWARE Global Summit - Adding Identity Management, Access Control and API Man...
FIWARE Global Summit - Adding Identity Management, Access Control and API Man...FIWARE Global Summit - Adding Identity Management, Access Control and API Man...
FIWARE Global Summit - Adding Identity Management, Access Control and API Man...FIWARE
 
Windsor AWS UG Deep dive IAM 2 - no json101
Windsor AWS UG   Deep dive IAM 2 - no json101Windsor AWS UG   Deep dive IAM 2 - no json101
Windsor AWS UG Deep dive IAM 2 - no json101Goran Karmisevic
 
2018 Oct IIW User Managed Access (UMA)
2018 Oct IIW User Managed Access (UMA)2018 Oct IIW User Managed Access (UMA)
2018 Oct IIW User Managed Access (UMA)George Fletcher
 
Axiomatics webinar 13 june 2013 shared
Axiomatics webinar 13 june 2013   sharedAxiomatics webinar 13 june 2013   shared
Axiomatics webinar 13 june 2013 sharedFinn Frisch
 
Securing FIWARE Architectures
Securing FIWARE ArchitecturesSecuring FIWARE Architectures
Securing FIWARE ArchitecturesFIWARE
 
(SEC310) Keeping Developers and Auditors Happy in the Cloud
(SEC310) Keeping Developers and Auditors Happy in the Cloud(SEC310) Keeping Developers and Auditors Happy in the Cloud
(SEC310) Keeping Developers and Auditors Happy in the CloudAmazon Web Services
 
Modeling Multi-Layer Access Control Policies of a Hyperledger-Fabric-Based Ag...
Modeling Multi-Layer Access Control Policies of a Hyperledger-Fabric-Based Ag...Modeling Multi-Layer Access Control Policies of a Hyperledger-Fabric-Based Ag...
Modeling Multi-Layer Access Control Policies of a Hyperledger-Fabric-Based Ag...Dilum Bandara
 
Security Day IAM Recommended Practices
Security Day IAM Recommended PracticesSecurity Day IAM Recommended Practices
Security Day IAM Recommended PracticesAmazon Web Services
 
A Study in Borderless Over Perimeter
A Study in Borderless Over PerimeterA Study in Borderless Over Perimeter
A Study in Borderless Over PerimeterForgeRock
 
SCIM: Why It’s More Important, and More Simple, Than You Think - CIS 2014
SCIM: Why It’s More Important, and More Simple, Than You Think - CIS 2014SCIM: Why It’s More Important, and More Simple, Than You Think - CIS 2014
SCIM: Why It’s More Important, and More Simple, Than You Think - CIS 2014Kelly Grizzle
 
AWS Enterprise Summit Netherlands - Creating a Landing Zone
AWS Enterprise Summit Netherlands - Creating a Landing ZoneAWS Enterprise Summit Netherlands - Creating a Landing Zone
AWS Enterprise Summit Netherlands - Creating a Landing ZoneAmazon Web Services
 

Similar to E5: Predix Security with ACS & UAA (Predix Transform 2016) (20)

Identity Management Standardization in the cloud computing
Identity Management Standardization in the cloud computingIdentity Management Standardization in the cloud computing
Identity Management Standardization in the cloud computing
 
Industrial Strength Access Control for Spring Applications
Industrial Strength Access Control for Spring ApplicationsIndustrial Strength Access Control for Spring Applications
Industrial Strength Access Control for Spring Applications
 
Best Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and ComplianceBest Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and Compliance
 
IAM for Enterprises: How Vanguard Matured IAM Controls to Support Micro Accou...
IAM for Enterprises: How Vanguard Matured IAM Controls to Support Micro Accou...IAM for Enterprises: How Vanguard Matured IAM Controls to Support Micro Accou...
IAM for Enterprises: How Vanguard Matured IAM Controls to Support Micro Accou...
 
Governance and Security Solution Patterns
Governance and Security Solution Patterns Governance and Security Solution Patterns
Governance and Security Solution Patterns
 
API Security in a Microservice Architecture
API Security in a Microservice ArchitectureAPI Security in a Microservice Architecture
API Security in a Microservice Architecture
 
Building Research Applications with Globus PaaS
Building Research Applications with Globus PaaSBuilding Research Applications with Globus PaaS
Building Research Applications with Globus PaaS
 
AWS Summit Sydney 2014 | Understanding AWS Security
AWS Summit Sydney 2014 | Understanding AWS SecurityAWS Summit Sydney 2014 | Understanding AWS Security
AWS Summit Sydney 2014 | Understanding AWS Security
 
FIWARE Global Summit - Adding Identity Management, Access Control and API Man...
FIWARE Global Summit - Adding Identity Management, Access Control and API Man...FIWARE Global Summit - Adding Identity Management, Access Control and API Man...
FIWARE Global Summit - Adding Identity Management, Access Control and API Man...
 
Windsor AWS UG Deep dive IAM 2 - no json101
Windsor AWS UG   Deep dive IAM 2 - no json101Windsor AWS UG   Deep dive IAM 2 - no json101
Windsor AWS UG Deep dive IAM 2 - no json101
 
2018 Oct IIW User Managed Access (UMA)
2018 Oct IIW User Managed Access (UMA)2018 Oct IIW User Managed Access (UMA)
2018 Oct IIW User Managed Access (UMA)
 
Axiomatics webinar 13 june 2013 shared
Axiomatics webinar 13 june 2013   sharedAxiomatics webinar 13 june 2013   shared
Axiomatics webinar 13 june 2013 shared
 
Securing FIWARE Architectures
Securing FIWARE ArchitecturesSecuring FIWARE Architectures
Securing FIWARE Architectures
 
(SEC310) Keeping Developers and Auditors Happy in the Cloud
(SEC310) Keeping Developers and Auditors Happy in the Cloud(SEC310) Keeping Developers and Auditors Happy in the Cloud
(SEC310) Keeping Developers and Auditors Happy in the Cloud
 
Modeling Multi-Layer Access Control Policies of a Hyperledger-Fabric-Based Ag...
Modeling Multi-Layer Access Control Policies of a Hyperledger-Fabric-Based Ag...Modeling Multi-Layer Access Control Policies of a Hyperledger-Fabric-Based Ag...
Modeling Multi-Layer Access Control Policies of a Hyperledger-Fabric-Based Ag...
 
SAP BI 7 security concepts
SAP BI 7 security conceptsSAP BI 7 security concepts
SAP BI 7 security concepts
 
Security Day IAM Recommended Practices
Security Day IAM Recommended PracticesSecurity Day IAM Recommended Practices
Security Day IAM Recommended Practices
 
A Study in Borderless Over Perimeter
A Study in Borderless Over PerimeterA Study in Borderless Over Perimeter
A Study in Borderless Over Perimeter
 
SCIM: Why It’s More Important, and More Simple, Than You Think - CIS 2014
SCIM: Why It’s More Important, and More Simple, Than You Think - CIS 2014SCIM: Why It’s More Important, and More Simple, Than You Think - CIS 2014
SCIM: Why It’s More Important, and More Simple, Than You Think - CIS 2014
 
AWS Enterprise Summit Netherlands - Creating a Landing Zone
AWS Enterprise Summit Netherlands - Creating a Landing ZoneAWS Enterprise Summit Netherlands - Creating a Landing Zone
AWS Enterprise Summit Netherlands - Creating a Landing Zone
 

Recently uploaded

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 

Recently uploaded (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 

E5: Predix Security with ACS & UAA (Predix Transform 2016)

  • 1. E5: Predix Security with ACS/UAA Dario Amiri, Senior Software Architect, GE Digital @darioamiri
  • 2. 2PREDIX TRANSFORM Agenda User Account and Authentication (UAA)1 Access Control Service (ACS)2
  • 3. 3PREDIX TRANSFORM User Account and Authentication UAA features include • User account management • OIDC and SAML initiated login • OIDC and SAML federation of external identity providers • All OAuth 2.0 grant types • Device authentication
  • 4. 4PREDIX TRANSFORM User Account Management • SCIM-based RESTful API • User native accounts – Credentials stored in UAA • User shadow accounts – Federated identities • Manage user privileges – Group membership – Coarse-grained – Tied to user login session
  • 5. 5PREDIX TRANSFORM User Authentication • OpenID Connect (OIDC) – Built on top of OAuth 2.0 framework – Easier to implement • Security Assertion Markup Language (SAML) – Ubiquitous in the enterprise – You better know what you’re doing
  • 6. 6PREDIX TRANSFORM OIDC/OAuth Concepts • Resource Owner – I.e. a user • Client – Application or service identity – Can act on it’s own or on behalf of a user (i.e. resource owner) • Grant type – A procedure for authorizing a client or user – client_credentials authorizes a client acting on it’s own – authz_code authorizes a client to act on behalf of a user
  • 7. 7PREDIX TRANSFORM Authorities vs. groups vs. scopes • Authorities – What privileges a client has when it acts on it’s own • Groups – What privileges a user potentially has – Effective privileges are still limited by the client scopes … app_client authorities: clients.secret scopes: scim.read scim.read scim.write tom@ge.com GroupsUsersClients
  • 8. 8PREDIX TRANSFORM Authorities vs. groups vs. scopes • Client scopes – What a user can do through a specific client – Inner join of user groups and client scopes produces … • Access token scope – Holds the effective privileges during a login session app_client authorities: clients.secret scopes: scim.read scim.read scim.write tom@ge.com GroupsUsersClients
  • 9. 9PREDIX TRANSFORM Authorities vs. groups vs. scope app_client authorities: clients.secret scopes: scim.read scim.read scim.write tom@ge.com GroupsUsersClients scope: clients.secret scope: scim.read Tokens client_credentials authz_code OAuth Grant Type
  • 10. 10PREDIX TRANSFORM Authorities vs. groups vs. scope app_client authorities: clients.secret scopes: scim.* scim.read scim.write tom@ge.com GroupsUsersClients scope: clients.secret scope: scim.read scim.write Tokens client_credentials authz_code OAuth Grant Type
  • 11. 11PREDIX TRANSFORM Service-to-service authentication • OAuth 2.0 client credentials grant – Restrict allowed grant type to client_credentials – Set client authorities as necessary to access Predix services – <service>.zones.<instance>.user – Restrict unnecessary authorities service consumer (client) web service (resource server) uaa (authorization server) trust 3.api request + token 1.client id + secret 2.token 4.data
  • 12. 12PREDIX TRANSFORM Login service - OIDC • OpenID Connect (OIDC) http://openid.net/specs/openid-connect-core- 1_0.html – Supported by virtually all web frameworks and reverse proxies – Uses authz_code or implicit grant – Basically OAuth but the access token represents a user identity session management token verification web app (client) web service (resource server) uaa (authorization server) trust browser 1.request 2.oauth 3.login 7.api request + token 5.code 6.token 4.code 8.data 9.response
  • 13. 13PREDIX TRANSFORM Login service - SAML • Security Assertion Markup Language (SAML)http://saml.xml.org/saml- specifications – Ubiquitous in the enterprise – Complicated to use – SAML IdP metadata: http://<uaa hostname>/saml/idp/metadat a session management web app (client) uaa (authorization server)trust browser 1.request 2.saml request 3.login 4.saml response 5.response
  • 14. 14PREDIX TRANSFORM Federating external IdP with SAML • Download your SAML SP metadata from UAA – https://<uaa hostname>/saml/metadata – Send this to the IdP’s administrator • Obtain SAML IdP metadata from IdP administrator • Create/configure IdP in UAA – Use the scripts – Read the documentation
  • 15. 15PREDIX TRANSFORM Federating external IdP with SAML session management token verification web app (client) web service (resource server) uaa (authorization server) trust browser 1.request 2.oauth 4.login 9.api request + token 7.code 8.token 6.code 10.data 11.response saml idp 3.saml request 5.saml response
  • 16. 16PREDIX TRANSFORM Federating external IdP with SAML • Federate with multiple identity providers • IdP discovery based on user domain – tom@ge.com authenticates with the ge.com idp – nik@tesla.com authenticates with the tesla.com idp • Mapping of SAML attributes to JWT properties
  • 17. 17PREDIX TRANSFORM Best Practices • Read the documentation • Initiate user login using OpenID Connect (OIDC) • Use client credentials grant for devices – Give each device a client id and secret – Use JWT Bearer Profile for certificate-based authentication • Consider using the GE shared UAA • Use the new dashboard when it becomes available
  • 18. 18PREDIX TRANSFORM Why ACS? Limitations of OAuth 2.0 • Scope-based privileges are too coarse-grained • Scopes are tightly coupled to access token – Logout/login required for privilege changes to take effect • Lack of consistent solution for – policy definition – privilege management • Performance not tuned for making fine-grained access control decisions per resource request
  • 19. 19PREDIX TRANSFORM What does ACS do? Attribute Based Access Control (ABAC) • Attribute store for – Subjects: entities that do things – Resources: entities that have things done to them • Policy store – How subject and resource attributes combine to determine privileges • Policy evaluation – Given a subject, action, and resource determine if operation is allowed
  • 20. 20PREDIX TRANSFORM What are attributes? • A key value pair • Asserted by a trusted entity • Useful for making authorization decisions
  • 21. 21PREDIX TRANSFORM What are attributes? • tom@ge.com is an analyst • tom@ge.com is a member of the research group role: analyst group: researchers attributes subject tom@ge.com identifier
  • 22. 22PREDIX TRANSFORM What are attributes? • The asset with id 1234 is located at the San Ramon site • The asset with id 1234 belongs to users in the research group site: san-ramon group: researchers attributes resource /assets/1234 identifier
  • 23. 23PREDIX TRANSFORM Breaking down policy evaluation • Client sends a request for authorization – Can a subject perform an action on a resource – Java library support today - route service tomorrow • ACS performs – Attribute discovery – Policy evaluation • Client receives – Authorization decision (permit | deny) – Discovered attributes
  • 24. 24PREDIX TRANSFORM authorization request tom@ge.com subject /assets/1234 resource GET action attribute discovery policy evaluation authorization response PERMIT | DENY decision role: analyst group: researchers tom@ge.com site: san-ramon group: researchers /assets/1234 discovered attributes
  • 25. 25PREDIX TRANSFORM authorization response discovered attributes subject.and(resource).haveSame(‘group’) policy condition attribute discovery role: analyst group: researchers tom@ge.com site: san-ramon group: researchers /assets/1234 discovered attributes Attribute Store authorization request tom@ge.com /assets/1234GET permit
  • 26. 26PREDIX TRANSFORM Implementing RBAC with ACS Hierarchical attributes • Define attributes for roles, groups, etc. – Users can inherit attributes from these – Create an “analyst” subject and assign it attributes – Have “tom@ge.com” subject inherit attributes from “analyst”
  • 27. 27PREDIX TRANSFORM Subject attribute inheritance example org: ge tenancy-id: 11235 org-ge group: research app: apm group-research role: analyst report: asset-performance role-analyst tom@ge.com org: ge tenancy-id: 11235 group: research app: apm role: analyst report: asset-performance
  • 28. 28PREDIX TRANSFORM Resource attribute inheritance example org: ge site: san-ramon /sites/01 group: research /sites/01/assets/21 report: asset-performance /sites/01/assets/21/reports/72 org: ge site: san-ramon group: research report: asset-performance
  • 29. 29PREDIX TRANSFORM Dynamic roles Subject roles depend on the resource accessed • Child subject conditionally inherits parent attributes – User X inherits attribute from role Y when accessing resource Z – tom@ge.com is an analyst for the “san-ramon” site – tom@ge.com is not an analyst for other sites • Subject attributes are scoped by resource attributes
  • 30. 30PREDIX TRANSFORM Scoped attribute inheritance (permit) • Example policy – Allow user access to asset performance report if – The asset belongs to the user’s group – The user is an analyst for the San Ramon site site: san-ramon org: ge tenancy-id: 11235 org-ge group: research app: apm group-research role: analyst report: asset-performance role-analyst tom@ge.com org: ge tenancy-id: 11235 group: research app: apm role: analyst report: asset-performance org: ge site: san-ramon /sites/01 group: research /sites/01/assets/21 report: asset-performance /sites/01/assets/21/reports/72 org: ge site: san-ramon group: research report: asset-performance
  • 31. 31PREDIX TRANSFORM Scoped attribute inheritance (deny) • Example policy – Allow user access to asset performance report if – The asset belongs to the user’s group – The user is an analyst for the San Ramon site site: san-ramon org: ge tenancy-id: 11235 org-ge group: research app: apm group-research role: analyst report: asset-performance role-analyst tom@ge.com org: ge tenancy-id: 11235 group: research app: apm org: ge site: cincy-oh /sites/02 group: research /sites/02/assets/33 report: asset-performance /sites/02/assets/33/reports/51 org: ge site: cincy-oh group: research report: asset-performance
  • 32. 32PREDIX TRANSFORM Technology stack runtime Apache Cassandra PostgreSQL java spring titan db spring data apache tinkerpop cloud foundry platform uaa • Apache 2 license • We’re on github: https://github.com/predix/acs
  • 33. 33PREDIX TRANSFORM Five Lessons to Take Away 1. Use UAA to manage, federate, and authenticate 2. Understand OAuth 2.0, OIDC, SAML 3. Know Authorities vs. Groups vs. Scope 4. Use ACS to address limitations of OAuth 5. Read the UAA and ACS documentation
  • 34. General Electric reserves the right to make changes in specifications and features, or discontinue the product or service described at any time, without notice or obligation. These materials do not constitute a representation, warranty or documentation regarding the product or service featured. Illustrations are provided for informational purposes, and your configuration may differ. This information does not constitute legal, financial, coding, or regulatory advice in connection with your use of the product or service. Please consult your professional advisors for any such advice. GE, Predix and the GE Monogram are trademarks of General Electric Company. ©2016 General Electric Company – All rights reserved.