SlideShare une entreprise Scribd logo
1  sur  73
Copyright © 2016, Creative Arts & Technologies and others. All rights reserved.
Security for Java EE
and the Cloud
Werner Keil
JSR 375 EG Member
@wernerkeil
November 16, 2016
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
2
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Who am I?
Werner Keil
• Consultant – Coach
• Creative Cosmopolitan
• Open Source Evangelist
• Software Architect
• Spec Lead – JSR363
• Individual JCP Executive Committee Member
[www.linkedin.com/in/catmedia]
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Agenda
1. Motivation
2. Identity Use Cases
3. How can JSR 375 help?
4. More Security Use Cases
5. Way Forward?
6. Get Involved
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Motivation
• Where enterprise apps run is changing
– In corporate data centers
– In the cloud from one of several vendors
• The shape of the Enterprise app is changing
– A monolith or a collection of microservices
• These factors
– Drive complexity in how apps are built, deployed, managed, operated
– Drive complexity in how apps need to work in their target environment
• Can we still stay secure after these changes?
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Deployed On premise
• Deployed within the corporate network
• Authenticates to on premise
identity systems
• May use on premise Single Sign-on to
secure web resources
• Authorization : managed by application,
mapped to on premise identity
• Identity propagation to external entities
relies on SAML, Basic Auth
• Secrets in local stores with several layers
of control
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Deployed in the Cloud
• Cloud Vendor for controls on network
• Social logins, external Identity Systems
• SSO using a Cloud Identity provider
• REST needs OAuth
• Identity Propagation - SAML,
Basic Auth plus OAuth and JWT
• More interactions – cloud, on premise
• Authorization - from one of several
identity providers
• Secrets need defense in depth – encryption,
securing the encryption key?
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Microservices in the Cloud
• All issues of Java EE App in the cloud Plus
• App Boundary is changing
̶ Distributed processes, scale independently
̶ Identity on every hop?
̶ Each micro service deals with identity?
̶ Each micro service authorizes access?
̶ Each micro service manages secrets?
̶ What about Statelessness, configuration ?
̶ What about the network boundary?
Which micro services are public?
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Identity Use Cases
Why are these so important in the
Cloud?
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Use Case
Authentication
• Application may manage its users or use externally managed users
• Application must authenticate users against one of several identity
stores
• Application must support one of these authentication methods
̶ Basic Auth, OpenID Connect
• Application is able to handle Authentication events (login, logout)
• Developer is able to use a portable Authentication API regardless
of the identity store
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Use Case
Identity Store
• Application may manage its users or use externally managed users
• Application must be able access the identity store
• Application can be bound to one or more identity stores at
deployment
• Identity Store bound to the Application can be reconfigured
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Use Case
Identity Representation
• Application must be able to determine identity of the caller
• Application is able to determine user’s groups.
• Application knows caller identity consistently, as identity stores
change
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Use Case
Security Context
• Application is able to determine user attributes consistently
̶ Authenticated user
̶ Groups, Roles
̶ Identity Provider that issued claims used in creating the Subject
̶ Local or remote user? Virtual User?
• Application needs a consistent API to access security context
@YourTwitterHandle#DVXFR14{session hashtag} © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
JSR 375
Relevance to the Cloud
• Standardize Terminology
• API for Authentication mechanism
• API for Identity Store
• API for Security Context
• API for Password Aliasing
• API for Role/Permission Assignment
• API for Authorization Interceptors
A necessary foundation for the
Cloud
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
JSR 375 – Survey Results
Java EE 8 Survey
• Survey results
(from 2014)
• 4500 total responses
• Priorities Pie Chart
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
JSR 375 – Survey Results
Security details
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
JSR 375 – Survey Results
Security details
• Deferred from Java EE 7
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
JSR 375 – Candidates for EG
Authentication Mechanism
• Portable API for Authentication
̶ Abstracts the specific Identity Store against which to Authenticate
• Simple configuration
• Extensible to support protocols such as OpenID Connect and
OAuth
• Produces a Consistent representation of an authenticated Subject
• Authentication Events
• Use JASPIC (JSR 196) ?
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
JSR 375 – Candidates for EG
Identity Store
• Abstract the Identity Store used by an application
• Simple configuration
• Support a variety of Identity stores
̶ Lightweight k-v development stores
̶ Traditional stores – LDAP, DB
̶ Cloud-specific stores e.g. Social Logins, 3rd-party Cloud Identity
providers
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
JSR 375 – Candidates for EG
Identity Store
• Orderable to support multiple identity stores
• Abstraction to support variety of credential types
̶ Username/Password
̶ OAuth Client ID & Secret
̶ JWT Tokens
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
JSR 375 – Candidates for EG
Security Context
• Consistent API regardless of container
• Enables Application to determine
̶ User’s identity
̶ Identity Provider that was used to establish identity
̶ Which groups or roles the user belongs to
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
JSR 375 – Candidates for EG
Security Context Example
// Security Context
public interface SecurityContext{
String getUserPrincipal();
boolean isUserInRole(String role);
List<String> getAllUsersRoles();
boolean isAuthenticated();
}
@YourTwitterHandle#DVXFR14{session hashtag} © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Authorization
Lots to cover
• OAuth2
• Role/Permission Assignment
• Authorization Interceptors
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
26
OAuth
OAuth is a protocol to delegate rights for an application to act on
behalf of a user who granted its rights without giving away their
login / password
Developed by Twitter, Magnolia and Google,
it was made standard by IETF in April 2010 under RFC 5849
History
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
27
OAuth
Version 2.0, simpler to use but often criticized by its too many
implementation s was standardized in October 2012 under RFC
6749 and 6750. It’s already used by many actors (Social Networks
like Facebook, Google, Microsoft as well as other API providers )
All social services are based on OAuth 1.0a or 2.0.
To use OAuth, one has to create an application on the targeted
service to have an entry point for consumer.
OAuth2
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
28
OAuth
Overview
• An Authorization/Delegation Framework
• Standardized by RFC6749
̶ RFC 6750 using bearer tokens
̶ RFC 6819 Security considerations
• On a foundation of Token standards
̶ JSON Object Signing Encryption (JOSE)
̶ JWT (RFC7519), JWS (RFC7515), JWE (RFC7516),
JWA (RFC7518), JWK (RFC7517)
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
29
OAuth
Concepts
• Actors
̶ Resource Owner
̶ Client
̶ Resource, Resource server
̶ Authorization Server
• Authorizations represented as ‘scopes’
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
30
OAuth Dance
Creating an application in the OAuth Social Media service
Initialization : the right granting phase also called the OAuth Dance.
At the end of the dance we obtain an access token (formed by a
public and secret part) to use in next step
Signature : each request is signed with access token and token
identifying the OAuth application that was granted the rights
OAuth has 3 steps
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
In Memoriam
January 8, 1947 – January 10, 2016
David Bowie
Image © 1983 EMI America Records. All Rights Reserved.
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
32
OAuth Step 1 : Create an
application
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
33
OAuth : application settings
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
34
The OAuth 1.0a «Dance»
client asks for a
resource on the
consuming service
Consuming service server
Social Media Service
(where OAuth application is declared)
Consuming
service
redirect user
on the social
media login
page
token is returned by SM
Consuming service ask a
request token tot he Social
Media (using OAuth
application keys). It also
send a callback url
Once authenticated, social media
redirects user on call back url with a
verification code
with the code and request token
consuming service request an
access token
Social media returns Access
token
user
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
35
OAuth 2.0 «Dance» now in SSL
client asks for a
resource on the
consuming service
SSL is mandatory
Consuming service server
Social Media Service
(where OAuth application is declared)
Consuming
service
redirect user
on the social
media login
page
Once authenticated, social media
redirects user on call back url with a
verification code
with the code and request token
consuming service request an
access token
Social media returns Access
token
user
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
36
OAuth Signature : original
request
POST /1/statuses/update.json?include_entities=true HTTP/1.1
Accept: */*
Connection: close
User-Agent: OAuth gem v0.4.4
Content-Type: application/x-www-form-urlencoded
Content-Length: 76
Host: api.twitter.com
status=Hello%20Ladies%20%2b%20Gentlemen%2c%20a%20signed%20OAuth%2
0request%21
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
37
OAuth Signature : request & OAuth
params
status Hello Ladies + Gentlemen, a signed OAuth request!
include_entities true
oauth_consumer_key xvz1evFS4wEEPTGEFPHBog
oauth_nonce kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg
oauth_signature_method HMAC-SHA1
oauth_timestamp 1318622958
oauth_token 370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb
oauth_version 1.0
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
38
OAuth Signature : parameter
string
include_entities=true&oauth_consumer_key=xvz1evFS4wEEPTGEFPH
Bog&oauth_nonce=kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg&o
auth_signature_method=HMAC-
SHA1&oauth_timestamp=1318622958&oauth_token=370773112-
GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb&oauth_version=1.0&s
tatus=Hello%20Ladies%20%2B%20Gentlemen%2C%20a%20signed%20OAu
th%20request%21
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
39
OAuth Signature : Base String
POST&https%3A%2F%2Fapi.twitter.com%2F1%2Fstatuses%2Fupdate.json
&include_entities%3Dtrue%26oauth_consumer_key%3Dxvz1evFS4wEEPTG
EFPHBog%26oauth_nonce%3DkYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS
4cg%26oauth_signature_method%3DHMAC-
SHA1%26oauth_timestamp%3D1318622958%26oauth_token%3D370773112-
GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb%26oauth_version%3D1.0%
26status%3DHello%2520Ladies%2520%252B%2520Gentlemen%252C%2520a%
2520signed%2520OAuth%2520request%2521
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
40
OAuth Signing key
VQ5CZHG4qUoAkUUmckPn4iN4yyjBKcORTW0wnok4r1k&
LswwdoUaIvS8ltyTt5jkRh4J50vUPVVHtR2YPi5kE
Application consumer key secret part
Access Token secret part
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
41
OAuth Signature : Signed request
POST /1/statuses/update.json?include_entities=true HTTP/1.1
Accept: */*
Connection: close
User-Agent: OAuth gem v0.4.4
Content-Type: application/x-www-form-urlencoded
Authorization:
OAuth oauth_consumer_key="xvz1evFS4wEEPTGEFPHBog",
oauth_nonce="kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg",
oauth_signature="tnnArxj06cWHq44gCs1OSKk%2FjLY%3D",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1318622958",
oauth_token="370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb",
oauth_version="1.0"
Content-Length: 76
Host: api.twitter.com
status=Hello%20Ladies%20%2b%20Gentlemen%2c%20a%20signed%20OAuth%20request%21
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Ideas for OAuth2
Server Side
• Annotate resources to be secured
• Annotate if resource needs BASIC or OAuth2
• For OAuth2 secured resources, standardize scope declaration
• Standardize OAuth Resource registration with Authorization Server
• Adapt to specific Authorization Servers
• Document Auth method, scopes – Swagger?
• Subject to further exploration with EG, JAX-RS and Servlet Specs
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Ideas for OAuth2
Client Side
• Lifecycle to handle Client registration
̶ Static or dynamically created Clients
̶ Secure management of Client ID/secrets
• Discover capabilities on Targets for constructing scopes in Token
requests
• Abstractions to acquire Token
̶ OAuth2 Flows as Strategies
̶ Token Expiry handling
• Abstraction to inject Tokens on invocation
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
44
OpenID Connect (OIDC)
Overview
• Authentication Protocol built on OAuth2
• Session Management – Single Sign on, Out
• An additional Token Type – ID Token
• UserInfo, Discovery, Client Self-registration Endpoints
• Specs : OpenID core, Discovery, Client Registration
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
OpenID Connect
Use Case
• At deployment, Application is configured to be secured by OIDC
• Application must continue to rely on well known abstractions for
̶ Identity
̶ Authentication
̶ Authentication Events
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
OpenID Connect
What does this mean to the App?
• An App developer
̶ Needs a consistent API to abstract the Identity store, authentication
mechanism, identity representation
̶ Can rely on configuration alone, to change as the App progresses
• DevOps can easily change configuration to suit the environment
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Role/Permission Assignment
Use Case
• Application may manage its users or use externally
managed users
• Application needs to assign roles to users, groups based
on application specific model
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Role/Permission Assignment
Problem Statement
• Users or Groups assigned to Roles changes based on
deployment
• User, Group representations change based on bound
Identity Store
• OAuth2 Scopes vs Roles – do they overlap? Are they
complementary?
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Role/Permission Assignment
Ideas
• Support via Deployment
• descriptors e.g. web.xml
̶ Change binding at deployment
• Assign Scopes on OAuth2 resources to roles?
̶ Enables App to bind Scopes to Roles
̶ While mapped Users, Groups change
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Role/Permission Assignment
Ideas
• Support via Deployment
• descriptors e.g. web.xml
̶ Change binding at deployment
• Assign Scopes on OAuth2 resources to roles?
̶ Enables App to bind Scopes to Roles
̶ While mapped Users, Groups change
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Role/Permission Assignment
Example
<security-role-map>
<group>SalesSupport</group>
<role-name>CSR</role-name>
</security-role-map>
public class Customers{
@RolesAllowed(“CSR”)
@GET
public String get()
...
}
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Authorization Interceptors
Use Case
• Application must restrict access to functionality
• Roles alone are too coarse grained
• Application business model determines rules that drive
access
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Authorization Interceptors
Problem Statement
• No Consistent Interceptor for policy enforcement
• No Consistent externalizable Rules
• Need to be bindable to changing identities by Business and
Operations
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Authorization Interceptors
Ideas
• Standardize Interceptors
• Enable Security teams to build custom Authorization logic
• Externalized, standardized rule language
• Identity and SecurityContext aware
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Secrets
Image © 2016 ABC Studios. All Rights Reserved.
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Secrets
Use Case
• Application needs to be able to securely manage secrets
• Secrets may include passwords to resources e.g. OAuth Client ID +
secrets
• Applications are able secure secrets in a portable way
• Secrets are never stored in clear text
• Values change and are bound per deployment
• State has to be externalized
̶ Application may consume secrets from a Key Management System
(KMS)
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Secrets
Ideas
• Application refers to secrets via Aliases
• Aliases configured via Annotations or Deployment Descriptors
• Lifecycle
̶ Bundle Alias + value as a secrets archive with the application
̶ Bind values to Aliases at Deployment
̶ From an external KMS?
̶ Tooling to manage secrets archive
• Rely on PKCS12 support in java.security.KeyStore ?
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
58
Consistently Secure
On premise to Cloud
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Way Forward?
• Standardize Terminology
• Authentication mechanism
• Identity Store
• Security Context
• Authentication – OpenID Connect
• Authorization (incl. OAuth)
• Secret Management (incl. Password Aliasing)
• Security micro services
• Packaging, Configuration, Binding
Java EE 8
Java EE 9
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
60
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Java EE 9 Candidates
Open ID Connect
Problem Statement
• Enable using OIDC for Authentication at Deployment
• Transparent to the Application
• Solely through Configuration
• Regardless of specific OIDC Implementation
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Java EE 9 Candidates
Open ID Connect
Ideas
• OIDC Flows as an AuthenticationMechanism
• Standardize, abstract necessary configuration
• Configurable at deployment
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Java EE 9 Candidates
Open ID Connect
Ideas
• Encapsulate within the SecurityContext
̶ Representations of user identity, group memberships
̶ Based on Claims in OIDC Identity Token from Open ID Provider (OP)
• Provide Applications access to /userInfo endpoint via the
IdentityStore abstraction
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Java EE 9 Candidates
Authorization
• Discover/publish OAuth Resources
• OAuth Client registration
• Authorization Interceptors
• Authorization Rules EL
• Role/Permission assignment
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Java EE 9 Candidates
Secret Management
• Abstracting secrets the application needs
• Bind secret values at deployment
• Standardize binding values from KMS systems
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Java EE 9 Candidates
Secret Management
• Abstracting secrets the application needs
• Bind secret values at deployment
• Standardize binding values from KMS systems
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Java EE 9 Candidates
Security Micro Services
Identity Services
• Authentication implementations
• Authentication Configuration
• IdentityStore Configuration, handling
• Token Acquisition, Exchange
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Java EE 9 Candidates
Security Micro Services
Secrets Management
• APIs to manage secrets
• APIs to get secrets
• Abstracts persistence, state management
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Java EE 9 Candidates
Security Micro Services
Authorization Service
• APIs to publish, manage policy, role mapping
• APIs to get decisions
Mix-in Services as functionally needed
Packaging and Lifecycle
• Standardize Security Configuration
• Externalize Configuration
• Bind Values at deployment
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Java EE 9 Candidates
Security Micro Services
Identity Services
• Encapsulate within the SecurityContext
̶ Representations of user id entity, group memberships
̶ Based on Claims in OIDC Identity Token from Open ID Provider (OP)
• Provide Applications access to /userInfo endpoint via the
IdentityStore abstraction
@YourTwitterHandle#DVXFR14{session hashtag} © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Images: Nu Image / Millennium Films
© 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
Links
JSR detail page on JCP.org: https://www.jcp.org/en/jsr/detail?id=375
Spec Page on java.net: https://java.net/projects/javaee-securityspec
Java.net Mailing List : users@javaee-security-spec.java.net
Experts Google Group: jsr375-experts@googlegroups.com
Contributors Group: jsr375-contributors@googlegroups.com
Twitter Account: @jsr375
Project website on GitHub: https://github.com/javaee-security-spec
Project Agorava: http://www.agorava.org
@YourTwitterHandle#DVXFR14{session hashtag} © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375

Contenu connexe

Tendances

Enterprise Security mit Spring Security
Enterprise Security mit Spring SecurityEnterprise Security mit Spring Security
Enterprise Security mit Spring SecurityMike Wiesner
 
Building Modern Applications Using APIs, Microservices and Chatbots
Building Modern Applications Using APIs, Microservices and ChatbotsBuilding Modern Applications Using APIs, Microservices and Chatbots
Building Modern Applications Using APIs, Microservices and ChatbotsOracle Developers
 
Are You Properly Using JWTs?
Are You Properly Using JWTs?Are You Properly Using JWTs?
Are You Properly Using JWTs?42Crunch
 
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloakDevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloakHitachi, Ltd. OSS Solution Center.
 
Deep-Dive: API Security in the Digital Age
Deep-Dive: API Security in the Digital AgeDeep-Dive: API Security in the Digital Age
Deep-Dive: API Security in the Digital AgeApigee | Google Cloud
 
DEVNET-2010 Remote Expert Mobile Web/Android/iOS SDK Live Coding Tutorial and...
DEVNET-2010	Remote Expert Mobile Web/Android/iOS SDK Live Coding Tutorial and...DEVNET-2010	Remote Expert Mobile Web/Android/iOS SDK Live Coding Tutorial and...
DEVNET-2010 Remote Expert Mobile Web/Android/iOS SDK Live Coding Tutorial and...Cisco DevNet
 
DEVNET-2011 Jabber Guest - Android SDK Live Coding Tutorial
DEVNET-2011	Jabber Guest - Android SDK Live Coding TutorialDEVNET-2011	Jabber Guest - Android SDK Live Coding Tutorial
DEVNET-2011 Jabber Guest - Android SDK Live Coding TutorialCisco DevNet
 
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...Matt Raible
 
OAuth - Don’t Throw the Baby Out with the Bathwater
OAuth - Don’t Throw the Baby Out with the Bathwater OAuth - Don’t Throw the Baby Out with the Bathwater
OAuth - Don’t Throw the Baby Out with the Bathwater Apigee | Google Cloud
 
How to React to JavaScript Insecurity
How to React to JavaScript InsecurityHow to React to JavaScript Insecurity
How to React to JavaScript InsecurityKsenia Peguero
 
J2EE Security with Apache SHIRO
J2EE Security with Apache SHIROJ2EE Security with Apache SHIRO
J2EE Security with Apache SHIROCygnet Infotech
 
API Creation to Iteration without the Frustration
API Creation to Iteration without the FrustrationAPI Creation to Iteration without the Frustration
API Creation to Iteration without the FrustrationNordic APIs
 
WEBINAR: Positive Security for APIs: What it is and why you need it!
 WEBINAR: Positive Security for APIs: What it is and why you need it! WEBINAR: Positive Security for APIs: What it is and why you need it!
WEBINAR: Positive Security for APIs: What it is and why you need it!42Crunch
 
Access Control Pitfalls v2
Access Control Pitfalls v2Access Control Pitfalls v2
Access Control Pitfalls v2Jim Manico
 
Native - Hybrid - Web Mobile Architectures
Native - Hybrid - Web Mobile ArchitecturesNative - Hybrid - Web Mobile Architectures
Native - Hybrid - Web Mobile ArchitecturesPhong Le Duy
 
Vbrownbag container networking for real workloads
Vbrownbag container networking for real workloadsVbrownbag container networking for real workloads
Vbrownbag container networking for real workloadsCisco DevNet
 
How Secure Is AngularJS?
How Secure Is AngularJS?How Secure Is AngularJS?
How Secure Is AngularJS?Ksenia Peguero
 
HATEOAS 101 - Opinionated Introduction to a REST API Style
HATEOAS 101 - Opinionated Introduction to a REST API StyleHATEOAS 101 - Opinionated Introduction to a REST API Style
HATEOAS 101 - Opinionated Introduction to a REST API StyleApigee | Google Cloud
 
softwareengineer_abulaila_2017_01
softwareengineer_abulaila_2017_01softwareengineer_abulaila_2017_01
softwareengineer_abulaila_2017_01Tariq Abulaila
 
I Love APIs 2015: Continuous Integration the Virtuous Cycle
I Love APIs 2015: Continuous Integration the Virtuous CycleI Love APIs 2015: Continuous Integration the Virtuous Cycle
I Love APIs 2015: Continuous Integration the Virtuous CycleApigee | Google Cloud
 

Tendances (20)

Enterprise Security mit Spring Security
Enterprise Security mit Spring SecurityEnterprise Security mit Spring Security
Enterprise Security mit Spring Security
 
Building Modern Applications Using APIs, Microservices and Chatbots
Building Modern Applications Using APIs, Microservices and ChatbotsBuilding Modern Applications Using APIs, Microservices and Chatbots
Building Modern Applications Using APIs, Microservices and Chatbots
 
Are You Properly Using JWTs?
Are You Properly Using JWTs?Are You Properly Using JWTs?
Are You Properly Using JWTs?
 
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloakDevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
 
Deep-Dive: API Security in the Digital Age
Deep-Dive: API Security in the Digital AgeDeep-Dive: API Security in the Digital Age
Deep-Dive: API Security in the Digital Age
 
DEVNET-2010 Remote Expert Mobile Web/Android/iOS SDK Live Coding Tutorial and...
DEVNET-2010	Remote Expert Mobile Web/Android/iOS SDK Live Coding Tutorial and...DEVNET-2010	Remote Expert Mobile Web/Android/iOS SDK Live Coding Tutorial and...
DEVNET-2010 Remote Expert Mobile Web/Android/iOS SDK Live Coding Tutorial and...
 
DEVNET-2011 Jabber Guest - Android SDK Live Coding Tutorial
DEVNET-2011	Jabber Guest - Android SDK Live Coding TutorialDEVNET-2011	Jabber Guest - Android SDK Live Coding Tutorial
DEVNET-2011 Jabber Guest - Android SDK Live Coding Tutorial
 
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
 
OAuth - Don’t Throw the Baby Out with the Bathwater
OAuth - Don’t Throw the Baby Out with the Bathwater OAuth - Don’t Throw the Baby Out with the Bathwater
OAuth - Don’t Throw the Baby Out with the Bathwater
 
How to React to JavaScript Insecurity
How to React to JavaScript InsecurityHow to React to JavaScript Insecurity
How to React to JavaScript Insecurity
 
J2EE Security with Apache SHIRO
J2EE Security with Apache SHIROJ2EE Security with Apache SHIRO
J2EE Security with Apache SHIRO
 
API Creation to Iteration without the Frustration
API Creation to Iteration without the FrustrationAPI Creation to Iteration without the Frustration
API Creation to Iteration without the Frustration
 
WEBINAR: Positive Security for APIs: What it is and why you need it!
 WEBINAR: Positive Security for APIs: What it is and why you need it! WEBINAR: Positive Security for APIs: What it is and why you need it!
WEBINAR: Positive Security for APIs: What it is and why you need it!
 
Access Control Pitfalls v2
Access Control Pitfalls v2Access Control Pitfalls v2
Access Control Pitfalls v2
 
Native - Hybrid - Web Mobile Architectures
Native - Hybrid - Web Mobile ArchitecturesNative - Hybrid - Web Mobile Architectures
Native - Hybrid - Web Mobile Architectures
 
Vbrownbag container networking for real workloads
Vbrownbag container networking for real workloadsVbrownbag container networking for real workloads
Vbrownbag container networking for real workloads
 
How Secure Is AngularJS?
How Secure Is AngularJS?How Secure Is AngularJS?
How Secure Is AngularJS?
 
HATEOAS 101 - Opinionated Introduction to a REST API Style
HATEOAS 101 - Opinionated Introduction to a REST API StyleHATEOAS 101 - Opinionated Introduction to a REST API Style
HATEOAS 101 - Opinionated Introduction to a REST API Style
 
softwareengineer_abulaila_2017_01
softwareengineer_abulaila_2017_01softwareengineer_abulaila_2017_01
softwareengineer_abulaila_2017_01
 
I Love APIs 2015: Continuous Integration the Virtuous Cycle
I Love APIs 2015: Continuous Integration the Virtuous CycleI Love APIs 2015: Continuous Integration the Virtuous Cycle
I Love APIs 2015: Continuous Integration the Virtuous Cycle
 

En vedette

The First IoT JSR: Units of Measurement - JUG Berlin-Brandenburg
The First IoT JSR: Units of Measurement - JUG Berlin-BrandenburgThe First IoT JSR: Units of Measurement - JUG Berlin-Brandenburg
The First IoT JSR: Units of Measurement - JUG Berlin-BrandenburgWerner Keil
 
Светодиодное освещение Arlight
Светодиодное освещение ArlightСветодиодное освещение Arlight
Светодиодное освещение ArlightLEDSTORE
 
Auxiliares del comercio
Auxiliares del comercioAuxiliares del comercio
Auxiliares del comerciofermintoro15
 
Resume and cover letter 9.6.15
Resume and cover letter 9.6.15Resume and cover letter 9.6.15
Resume and cover letter 9.6.15Jo Baucom
 
Sleep out for Syrians stats and info
Sleep out for Syrians   stats and infoSleep out for Syrians   stats and info
Sleep out for Syrians stats and infoMarco Campana
 
KritsanaYordkornFoodSafetyLevel22016Certificate
KritsanaYordkornFoodSafetyLevel22016CertificateKritsanaYordkornFoodSafetyLevel22016Certificate
KritsanaYordkornFoodSafetyLevel22016CertificateKritsana Yordkorn
 
Git Series. Episode 2. Merge, Upstream Commands and Tags
Git Series. Episode 2. Merge, Upstream Commands and TagsGit Series. Episode 2. Merge, Upstream Commands and Tags
Git Series. Episode 2. Merge, Upstream Commands and TagsMikhail Melnik
 
Загальна будова комп'ютера
Загальна будова комп'ютераЗагальна будова комп'ютера
Загальна будова комп'ютераNatasha Scherbina
 
Pakistan - Field Hockey
Pakistan - Field Hockey Pakistan - Field Hockey
Pakistan - Field Hockey Hira Sohaib
 
ArmenTeKort presentatie Walter Van Wouwe
ArmenTeKort presentatie Walter Van WouweArmenTeKort presentatie Walter Van Wouwe
ArmenTeKort presentatie Walter Van WouweLaura van Selm
 
Meaning Reconstruction as an Approach to Analyze Critical Dimensions of HCI R...
Meaning Reconstruction as an Approach to Analyze Critical Dimensions of HCI R...Meaning Reconstruction as an Approach to Analyze Critical Dimensions of HCI R...
Meaning Reconstruction as an Approach to Analyze Critical Dimensions of HCI R...colin gray
 
Teacher's book
Teacher's bookTeacher's book
Teacher's bookVadimPiven
 

En vedette (16)

The First IoT JSR: Units of Measurement - JUG Berlin-Brandenburg
The First IoT JSR: Units of Measurement - JUG Berlin-BrandenburgThe First IoT JSR: Units of Measurement - JUG Berlin-Brandenburg
The First IoT JSR: Units of Measurement - JUG Berlin-Brandenburg
 
Светодиодное освещение Arlight
Светодиодное освещение ArlightСветодиодное освещение Arlight
Светодиодное освещение Arlight
 
Auxiliares del comercio
Auxiliares del comercioAuxiliares del comercio
Auxiliares del comercio
 
Resume and cover letter 9.6.15
Resume and cover letter 9.6.15Resume and cover letter 9.6.15
Resume and cover letter 9.6.15
 
Cheng Szekely CV
Cheng Szekely CVCheng Szekely CV
Cheng Szekely CV
 
Sleep out for Syrians stats and info
Sleep out for Syrians   stats and infoSleep out for Syrians   stats and info
Sleep out for Syrians stats and info
 
KritsanaYordkornFoodSafetyLevel22016Certificate
KritsanaYordkornFoodSafetyLevel22016CertificateKritsanaYordkornFoodSafetyLevel22016Certificate
KritsanaYordkornFoodSafetyLevel22016Certificate
 
CV-1
CV-1CV-1
CV-1
 
Graphic & 3d Designer
Graphic & 3d DesignerGraphic & 3d Designer
Graphic & 3d Designer
 
Tattoo
TattooTattoo
Tattoo
 
Git Series. Episode 2. Merge, Upstream Commands and Tags
Git Series. Episode 2. Merge, Upstream Commands and TagsGit Series. Episode 2. Merge, Upstream Commands and Tags
Git Series. Episode 2. Merge, Upstream Commands and Tags
 
Загальна будова комп'ютера
Загальна будова комп'ютераЗагальна будова комп'ютера
Загальна будова комп'ютера
 
Pakistan - Field Hockey
Pakistan - Field Hockey Pakistan - Field Hockey
Pakistan - Field Hockey
 
ArmenTeKort presentatie Walter Van Wouwe
ArmenTeKort presentatie Walter Van WouweArmenTeKort presentatie Walter Van Wouwe
ArmenTeKort presentatie Walter Van Wouwe
 
Meaning Reconstruction as an Approach to Analyze Critical Dimensions of HCI R...
Meaning Reconstruction as an Approach to Analyze Critical Dimensions of HCI R...Meaning Reconstruction as an Approach to Analyze Critical Dimensions of HCI R...
Meaning Reconstruction as an Approach to Analyze Critical Dimensions of HCI R...
 
Teacher's book
Teacher's bookTeacher's book
Teacher's book
 

Similaire à JSR 375: Secure Java apps in the cloud

Finally, EE Security API JSR 375
Finally, EE Security API JSR 375Finally, EE Security API JSR 375
Finally, EE Security API JSR 375Alex Kosowski
 
Securing your Applications for the Cloud Age
Securing your Applications for the Cloud AgeSecuring your Applications for the Cloud Age
Securing your Applications for the Cloud AgeArtur Alves
 
geecon 2016: "What's Oracle Doing with JavaScript?!"
geecon 2016: "What's Oracle Doing with JavaScript?!"geecon 2016: "What's Oracle Doing with JavaScript?!"
geecon 2016: "What's Oracle Doing with JavaScript?!"Geertjan Wielenga
 
Making DevSecOps a Reality in your Spring Applications
Making DevSecOps a Reality in your Spring ApplicationsMaking DevSecOps a Reality in your Spring Applications
Making DevSecOps a Reality in your Spring ApplicationsHdiv Security
 
Building A Business-Facing Mobile Developer Community
Building A Business-Facing Mobile Developer CommunityBuilding A Business-Facing Mobile Developer Community
Building A Business-Facing Mobile Developer CommunityProgrammableWeb
 
Webinar: "Entitlements: Taking Control of the Big Data Gold Rush"
Webinar: "Entitlements: Taking Control of the Big Data Gold Rush"Webinar: "Entitlements: Taking Control of the Big Data Gold Rush"
Webinar: "Entitlements: Taking Control of the Big Data Gold Rush"ForgeRock
 
Azure Key Vault with a PaaS Architecture and ARM Template Deployment
Azure Key Vault with a PaaS Architecture and ARM Template DeploymentAzure Key Vault with a PaaS Architecture and ARM Template Deployment
Azure Key Vault with a PaaS Architecture and ARM Template DeploymentRoy Kim
 
Java Web Application Security - Denver JUG 2013
Java Web Application Security - Denver JUG 2013Java Web Application Security - Denver JUG 2013
Java Web Application Security - Denver JUG 2013Matt Raible
 
Top Ten Proactive Web Security Controls v5
Top Ten Proactive Web Security Controls v5Top Ten Proactive Web Security Controls v5
Top Ten Proactive Web Security Controls v5Jim Manico
 
Password Policies in Oracle Access Manager. How to improve user authenticatio...
Password Policies in Oracle Access Manager. How to improve user authenticatio...Password Policies in Oracle Access Manager. How to improve user authenticatio...
Password Policies in Oracle Access Manager. How to improve user authenticatio...Andrejs Prokopjevs
 
Modernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIsModernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIsApigee | Google Cloud
 
Extending Enterprise Applications to mobile interfaces-Final
Extending Enterprise Applications to mobile interfaces-FinalExtending Enterprise Applications to mobile interfaces-Final
Extending Enterprise Applications to mobile interfaces-FinalRohit Dhamija
 
Getting Started with API Management – Why It's Needed On-prem and in the Cloud
Getting Started with API Management – Why It's Needed On-prem and in the CloudGetting Started with API Management – Why It's Needed On-prem and in the Cloud
Getting Started with API Management – Why It's Needed On-prem and in the CloudRevelation Technologies
 
CON8040 Identity as a Service - Extend Enterprise Controls and Identity to th...
CON8040 Identity as a Service - Extend Enterprise Controls and Identity to th...CON8040 Identity as a Service - Extend Enterprise Controls and Identity to th...
CON8040 Identity as a Service - Extend Enterprise Controls and Identity to th...oow123
 
Maturing Your Organization from DevOps to DevSecOps
Maturing Your Organization from DevOps to DevSecOpsMaturing Your Organization from DevOps to DevSecOps
Maturing Your Organization from DevOps to DevSecOpsAmazon Web Services
 
Maturing your organization from DevOps to DevSecOps
Maturing your organization from DevOps to DevSecOpsMaturing your organization from DevOps to DevSecOps
Maturing your organization from DevOps to DevSecOpsAmazon Web Services
 
Migrating and Modernizing Identity on the Path to Multi Cloud
Migrating and Modernizing Identity on the Path to Multi CloudMigrating and Modernizing Identity on the Path to Multi Cloud
Migrating and Modernizing Identity on the Path to Multi CloudStrata Identity
 
Using APIs
Using APIsUsing APIs
Using APIsAkana
 

Similaire à JSR 375: Secure Java apps in the cloud (20)

Finally, EE Security API JSR 375
Finally, EE Security API JSR 375Finally, EE Security API JSR 375
Finally, EE Security API JSR 375
 
Securing your Applications for the Cloud Age
Securing your Applications for the Cloud AgeSecuring your Applications for the Cloud Age
Securing your Applications for the Cloud Age
 
Oracle JET
Oracle JETOracle JET
Oracle JET
 
geecon 2016: "What's Oracle Doing with JavaScript?!"
geecon 2016: "What's Oracle Doing with JavaScript?!"geecon 2016: "What's Oracle Doing with JavaScript?!"
geecon 2016: "What's Oracle Doing with JavaScript?!"
 
Making DevSecOps a Reality in your Spring Applications
Making DevSecOps a Reality in your Spring ApplicationsMaking DevSecOps a Reality in your Spring Applications
Making DevSecOps a Reality in your Spring Applications
 
Building A Business-Facing Mobile Developer Community
Building A Business-Facing Mobile Developer CommunityBuilding A Business-Facing Mobile Developer Community
Building A Business-Facing Mobile Developer Community
 
Webinar: "Entitlements: Taking Control of the Big Data Gold Rush"
Webinar: "Entitlements: Taking Control of the Big Data Gold Rush"Webinar: "Entitlements: Taking Control of the Big Data Gold Rush"
Webinar: "Entitlements: Taking Control of the Big Data Gold Rush"
 
Azure Key Vault with a PaaS Architecture and ARM Template Deployment
Azure Key Vault with a PaaS Architecture and ARM Template DeploymentAzure Key Vault with a PaaS Architecture and ARM Template Deployment
Azure Key Vault with a PaaS Architecture and ARM Template Deployment
 
Java Web Application Security - Denver JUG 2013
Java Web Application Security - Denver JUG 2013Java Web Application Security - Denver JUG 2013
Java Web Application Security - Denver JUG 2013
 
Top Ten Proactive Web Security Controls v5
Top Ten Proactive Web Security Controls v5Top Ten Proactive Web Security Controls v5
Top Ten Proactive Web Security Controls v5
 
D@W REST security
D@W REST securityD@W REST security
D@W REST security
 
Password Policies in Oracle Access Manager. How to improve user authenticatio...
Password Policies in Oracle Access Manager. How to improve user authenticatio...Password Policies in Oracle Access Manager. How to improve user authenticatio...
Password Policies in Oracle Access Manager. How to improve user authenticatio...
 
Modernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIsModernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIs
 
Extending Enterprise Applications to mobile interfaces-Final
Extending Enterprise Applications to mobile interfaces-FinalExtending Enterprise Applications to mobile interfaces-Final
Extending Enterprise Applications to mobile interfaces-Final
 
Getting Started with API Management – Why It's Needed On-prem and in the Cloud
Getting Started with API Management – Why It's Needed On-prem and in the CloudGetting Started with API Management – Why It's Needed On-prem and in the Cloud
Getting Started with API Management – Why It's Needed On-prem and in the Cloud
 
CON8040 Identity as a Service - Extend Enterprise Controls and Identity to th...
CON8040 Identity as a Service - Extend Enterprise Controls and Identity to th...CON8040 Identity as a Service - Extend Enterprise Controls and Identity to th...
CON8040 Identity as a Service - Extend Enterprise Controls and Identity to th...
 
Maturing Your Organization from DevOps to DevSecOps
Maturing Your Organization from DevOps to DevSecOpsMaturing Your Organization from DevOps to DevSecOps
Maturing Your Organization from DevOps to DevSecOps
 
Maturing your organization from DevOps to DevSecOps
Maturing your organization from DevOps to DevSecOpsMaturing your organization from DevOps to DevSecOps
Maturing your organization from DevOps to DevSecOps
 
Migrating and Modernizing Identity on the Path to Multi Cloud
Migrating and Modernizing Identity on the Path to Multi CloudMigrating and Modernizing Identity on the Path to Multi Cloud
Migrating and Modernizing Identity on the Path to Multi Cloud
 
Using APIs
Using APIsUsing APIs
Using APIs
 

Plus de Werner Keil

Securing eHealth, eGovernment and eBanking with Java - DWX '21
Securing eHealth, eGovernment and eBanking with Java - DWX '21Securing eHealth, eGovernment and eBanking with Java - DWX '21
Securing eHealth, eGovernment and eBanking with Java - DWX '21Werner Keil
 
OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021Werner Keil
 
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021Werner Keil
 
OpenDDR and Jakarta MVC - Java2Days 2020 Virtual
OpenDDR and Jakarta MVC - Java2Days 2020 VirtualOpenDDR and Jakarta MVC - Java2Days 2020 Virtual
OpenDDR and Jakarta MVC - Java2Days 2020 VirtualWerner Keil
 
NoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 VirtualNoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 VirtualWerner Keil
 
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020Werner Keil
 
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)Werner Keil
 
Money, Money, Money, can be funny with JSR 354 (DWX 2019)
Money, Money, Money, can be funny with JSR 354 (DWX 2019)Money, Money, Money, can be funny with JSR 354 (DWX 2019)
Money, Money, Money, can be funny with JSR 354 (DWX 2019)Werner Keil
 
NoSQL: The first New Jakarta EE Specification (DWX 2019)
NoSQL: The first New Jakarta EE Specification (DWX 2019)NoSQL: The first New Jakarta EE Specification (DWX 2019)
NoSQL: The first New Jakarta EE Specification (DWX 2019)Werner Keil
 
How JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR Day
How JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR DayHow JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR Day
How JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR DayWerner Keil
 
JNoSQL: The Definitive Solution for Java and NoSQL Databases
JNoSQL: The Definitive Solution for Java and NoSQL DatabasesJNoSQL: The Definitive Solution for Java and NoSQL Databases
JNoSQL: The Definitive Solution for Java and NoSQL DatabasesWerner Keil
 
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL DatabasesEclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL DatabasesWerner Keil
 
Physikal - Using Kotlin for Clean Energy - KUG Munich
Physikal - Using Kotlin for Clean Energy - KUG MunichPhysikal - Using Kotlin for Clean Energy - KUG Munich
Physikal - Using Kotlin for Clean Energy - KUG MunichWerner Keil
 
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017Werner Keil
 
Performance Monitoring for the Cloud - Java2Days 2017
Performance Monitoring for the Cloud - Java2Days 2017Performance Monitoring for the Cloud - Java2Days 2017
Performance Monitoring for the Cloud - Java2Days 2017Werner Keil
 
Eclipse Science F2F 2016 - JSR 363
Eclipse Science F2F 2016 - JSR 363Eclipse Science F2F 2016 - JSR 363
Eclipse Science F2F 2016 - JSR 363Werner Keil
 
Apache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartApache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartWerner Keil
 
JSR 354: Money and Currency API - Short Overview
JSR 354: Money and Currency API - Short OverviewJSR 354: Money and Currency API - Short Overview
JSR 354: Money and Currency API - Short OverviewWerner Keil
 
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit AgoravaJavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit AgoravaWerner Keil
 
The First IoT JSR: Units of Measurement - DevoXX BE 2015
The First IoT JSR: Units of Measurement - DevoXX BE 2015The First IoT JSR: Units of Measurement - DevoXX BE 2015
The First IoT JSR: Units of Measurement - DevoXX BE 2015Werner Keil
 

Plus de Werner Keil (20)

Securing eHealth, eGovernment and eBanking with Java - DWX '21
Securing eHealth, eGovernment and eBanking with Java - DWX '21Securing eHealth, eGovernment and eBanking with Java - DWX '21
Securing eHealth, eGovernment and eBanking with Java - DWX '21
 
OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021
 
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
 
OpenDDR and Jakarta MVC - Java2Days 2020 Virtual
OpenDDR and Jakarta MVC - Java2Days 2020 VirtualOpenDDR and Jakarta MVC - Java2Days 2020 Virtual
OpenDDR and Jakarta MVC - Java2Days 2020 Virtual
 
NoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 VirtualNoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 Virtual
 
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020
 
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
 
Money, Money, Money, can be funny with JSR 354 (DWX 2019)
Money, Money, Money, can be funny with JSR 354 (DWX 2019)Money, Money, Money, can be funny with JSR 354 (DWX 2019)
Money, Money, Money, can be funny with JSR 354 (DWX 2019)
 
NoSQL: The first New Jakarta EE Specification (DWX 2019)
NoSQL: The first New Jakarta EE Specification (DWX 2019)NoSQL: The first New Jakarta EE Specification (DWX 2019)
NoSQL: The first New Jakarta EE Specification (DWX 2019)
 
How JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR Day
How JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR DayHow JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR Day
How JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR Day
 
JNoSQL: The Definitive Solution for Java and NoSQL Databases
JNoSQL: The Definitive Solution for Java and NoSQL DatabasesJNoSQL: The Definitive Solution for Java and NoSQL Databases
JNoSQL: The Definitive Solution for Java and NoSQL Databases
 
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL DatabasesEclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
 
Physikal - Using Kotlin for Clean Energy - KUG Munich
Physikal - Using Kotlin for Clean Energy - KUG MunichPhysikal - Using Kotlin for Clean Energy - KUG Munich
Physikal - Using Kotlin for Clean Energy - KUG Munich
 
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
 
Performance Monitoring for the Cloud - Java2Days 2017
Performance Monitoring for the Cloud - Java2Days 2017Performance Monitoring for the Cloud - Java2Days 2017
Performance Monitoring for the Cloud - Java2Days 2017
 
Eclipse Science F2F 2016 - JSR 363
Eclipse Science F2F 2016 - JSR 363Eclipse Science F2F 2016 - JSR 363
Eclipse Science F2F 2016 - JSR 363
 
Apache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartApache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ Stuttgart
 
JSR 354: Money and Currency API - Short Overview
JSR 354: Money and Currency API - Short OverviewJSR 354: Money and Currency API - Short Overview
JSR 354: Money and Currency API - Short Overview
 
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit AgoravaJavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
 
The First IoT JSR: Units of Measurement - DevoXX BE 2015
The First IoT JSR: Units of Measurement - DevoXX BE 2015The First IoT JSR: Units of Measurement - DevoXX BE 2015
The First IoT JSR: Units of Measurement - DevoXX BE 2015
 

Dernier

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 

Dernier (20)

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 

JSR 375: Secure Java apps in the cloud

  • 1. Copyright © 2016, Creative Arts & Technologies and others. All rights reserved. Security for Java EE and the Cloud Werner Keil JSR 375 EG Member @wernerkeil November 16, 2016
  • 2. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 2
  • 3. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Who am I? Werner Keil • Consultant – Coach • Creative Cosmopolitan • Open Source Evangelist • Software Architect • Spec Lead – JSR363 • Individual JCP Executive Committee Member [www.linkedin.com/in/catmedia]
  • 4. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Agenda 1. Motivation 2. Identity Use Cases 3. How can JSR 375 help? 4. More Security Use Cases 5. Way Forward? 6. Get Involved
  • 5. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Motivation • Where enterprise apps run is changing – In corporate data centers – In the cloud from one of several vendors • The shape of the Enterprise app is changing – A monolith or a collection of microservices • These factors – Drive complexity in how apps are built, deployed, managed, operated – Drive complexity in how apps need to work in their target environment • Can we still stay secure after these changes?
  • 6. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Deployed On premise • Deployed within the corporate network • Authenticates to on premise identity systems • May use on premise Single Sign-on to secure web resources • Authorization : managed by application, mapped to on premise identity • Identity propagation to external entities relies on SAML, Basic Auth • Secrets in local stores with several layers of control
  • 7. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Deployed in the Cloud • Cloud Vendor for controls on network • Social logins, external Identity Systems • SSO using a Cloud Identity provider • REST needs OAuth • Identity Propagation - SAML, Basic Auth plus OAuth and JWT • More interactions – cloud, on premise • Authorization - from one of several identity providers • Secrets need defense in depth – encryption, securing the encryption key?
  • 8. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Microservices in the Cloud • All issues of Java EE App in the cloud Plus • App Boundary is changing ̶ Distributed processes, scale independently ̶ Identity on every hop? ̶ Each micro service deals with identity? ̶ Each micro service authorizes access? ̶ Each micro service manages secrets? ̶ What about Statelessness, configuration ? ̶ What about the network boundary? Which micro services are public?
  • 9. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Identity Use Cases Why are these so important in the Cloud?
  • 10. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Use Case Authentication • Application may manage its users or use externally managed users • Application must authenticate users against one of several identity stores • Application must support one of these authentication methods ̶ Basic Auth, OpenID Connect • Application is able to handle Authentication events (login, logout) • Developer is able to use a portable Authentication API regardless of the identity store
  • 11. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Use Case Identity Store • Application may manage its users or use externally managed users • Application must be able access the identity store • Application can be bound to one or more identity stores at deployment • Identity Store bound to the Application can be reconfigured
  • 12. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Use Case Identity Representation • Application must be able to determine identity of the caller • Application is able to determine user’s groups. • Application knows caller identity consistently, as identity stores change
  • 13. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Use Case Security Context • Application is able to determine user attributes consistently ̶ Authenticated user ̶ Groups, Roles ̶ Identity Provider that issued claims used in creating the Subject ̶ Local or remote user? Virtual User? • Application needs a consistent API to access security context
  • 14. @YourTwitterHandle#DVXFR14{session hashtag} © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
  • 15. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 JSR 375 Relevance to the Cloud • Standardize Terminology • API for Authentication mechanism • API for Identity Store • API for Security Context • API for Password Aliasing • API for Role/Permission Assignment • API for Authorization Interceptors A necessary foundation for the Cloud
  • 16. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 JSR 375 – Survey Results Java EE 8 Survey • Survey results (from 2014) • 4500 total responses • Priorities Pie Chart
  • 17. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 JSR 375 – Survey Results Security details
  • 18. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 JSR 375 – Survey Results Security details • Deferred from Java EE 7
  • 19. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 JSR 375 – Candidates for EG Authentication Mechanism • Portable API for Authentication ̶ Abstracts the specific Identity Store against which to Authenticate • Simple configuration • Extensible to support protocols such as OpenID Connect and OAuth • Produces a Consistent representation of an authenticated Subject • Authentication Events • Use JASPIC (JSR 196) ?
  • 20. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 JSR 375 – Candidates for EG Identity Store • Abstract the Identity Store used by an application • Simple configuration • Support a variety of Identity stores ̶ Lightweight k-v development stores ̶ Traditional stores – LDAP, DB ̶ Cloud-specific stores e.g. Social Logins, 3rd-party Cloud Identity providers
  • 21. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 JSR 375 – Candidates for EG Identity Store • Orderable to support multiple identity stores • Abstraction to support variety of credential types ̶ Username/Password ̶ OAuth Client ID & Secret ̶ JWT Tokens
  • 22. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 JSR 375 – Candidates for EG Security Context • Consistent API regardless of container • Enables Application to determine ̶ User’s identity ̶ Identity Provider that was used to establish identity ̶ Which groups or roles the user belongs to
  • 23. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 JSR 375 – Candidates for EG Security Context Example // Security Context public interface SecurityContext{ String getUserPrincipal(); boolean isUserInRole(String role); List<String> getAllUsersRoles(); boolean isAuthenticated(); }
  • 24. @YourTwitterHandle#DVXFR14{session hashtag} © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375
  • 25. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Authorization Lots to cover • OAuth2 • Role/Permission Assignment • Authorization Interceptors
  • 26. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 26 OAuth OAuth is a protocol to delegate rights for an application to act on behalf of a user who granted its rights without giving away their login / password Developed by Twitter, Magnolia and Google, it was made standard by IETF in April 2010 under RFC 5849 History
  • 27. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 27 OAuth Version 2.0, simpler to use but often criticized by its too many implementation s was standardized in October 2012 under RFC 6749 and 6750. It’s already used by many actors (Social Networks like Facebook, Google, Microsoft as well as other API providers ) All social services are based on OAuth 1.0a or 2.0. To use OAuth, one has to create an application on the targeted service to have an entry point for consumer. OAuth2
  • 28. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 28 OAuth Overview • An Authorization/Delegation Framework • Standardized by RFC6749 ̶ RFC 6750 using bearer tokens ̶ RFC 6819 Security considerations • On a foundation of Token standards ̶ JSON Object Signing Encryption (JOSE) ̶ JWT (RFC7519), JWS (RFC7515), JWE (RFC7516), JWA (RFC7518), JWK (RFC7517)
  • 29. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 29 OAuth Concepts • Actors ̶ Resource Owner ̶ Client ̶ Resource, Resource server ̶ Authorization Server • Authorizations represented as ‘scopes’
  • 30. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 30 OAuth Dance Creating an application in the OAuth Social Media service Initialization : the right granting phase also called the OAuth Dance. At the end of the dance we obtain an access token (formed by a public and secret part) to use in next step Signature : each request is signed with access token and token identifying the OAuth application that was granted the rights OAuth has 3 steps
  • 31. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 In Memoriam January 8, 1947 – January 10, 2016 David Bowie Image © 1983 EMI America Records. All Rights Reserved.
  • 32. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 32 OAuth Step 1 : Create an application
  • 33. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 33 OAuth : application settings
  • 34. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 34 The OAuth 1.0a «Dance» client asks for a resource on the consuming service Consuming service server Social Media Service (where OAuth application is declared) Consuming service redirect user on the social media login page token is returned by SM Consuming service ask a request token tot he Social Media (using OAuth application keys). It also send a callback url Once authenticated, social media redirects user on call back url with a verification code with the code and request token consuming service request an access token Social media returns Access token user
  • 35. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 35 OAuth 2.0 «Dance» now in SSL client asks for a resource on the consuming service SSL is mandatory Consuming service server Social Media Service (where OAuth application is declared) Consuming service redirect user on the social media login page Once authenticated, social media redirects user on call back url with a verification code with the code and request token consuming service request an access token Social media returns Access token user
  • 36. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 36 OAuth Signature : original request POST /1/statuses/update.json?include_entities=true HTTP/1.1 Accept: */* Connection: close User-Agent: OAuth gem v0.4.4 Content-Type: application/x-www-form-urlencoded Content-Length: 76 Host: api.twitter.com status=Hello%20Ladies%20%2b%20Gentlemen%2c%20a%20signed%20OAuth%2 0request%21
  • 37. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 37 OAuth Signature : request & OAuth params status Hello Ladies + Gentlemen, a signed OAuth request! include_entities true oauth_consumer_key xvz1evFS4wEEPTGEFPHBog oauth_nonce kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg oauth_signature_method HMAC-SHA1 oauth_timestamp 1318622958 oauth_token 370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb oauth_version 1.0
  • 38. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 38 OAuth Signature : parameter string include_entities=true&oauth_consumer_key=xvz1evFS4wEEPTGEFPH Bog&oauth_nonce=kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg&o auth_signature_method=HMAC- SHA1&oauth_timestamp=1318622958&oauth_token=370773112- GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb&oauth_version=1.0&s tatus=Hello%20Ladies%20%2B%20Gentlemen%2C%20a%20signed%20OAu th%20request%21
  • 39. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 39 OAuth Signature : Base String POST&https%3A%2F%2Fapi.twitter.com%2F1%2Fstatuses%2Fupdate.json &include_entities%3Dtrue%26oauth_consumer_key%3Dxvz1evFS4wEEPTG EFPHBog%26oauth_nonce%3DkYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS 4cg%26oauth_signature_method%3DHMAC- SHA1%26oauth_timestamp%3D1318622958%26oauth_token%3D370773112- GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb%26oauth_version%3D1.0% 26status%3DHello%2520Ladies%2520%252B%2520Gentlemen%252C%2520a% 2520signed%2520OAuth%2520request%2521
  • 40. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 40 OAuth Signing key VQ5CZHG4qUoAkUUmckPn4iN4yyjBKcORTW0wnok4r1k& LswwdoUaIvS8ltyTt5jkRh4J50vUPVVHtR2YPi5kE Application consumer key secret part Access Token secret part
  • 41. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 41 OAuth Signature : Signed request POST /1/statuses/update.json?include_entities=true HTTP/1.1 Accept: */* Connection: close User-Agent: OAuth gem v0.4.4 Content-Type: application/x-www-form-urlencoded Authorization: OAuth oauth_consumer_key="xvz1evFS4wEEPTGEFPHBog", oauth_nonce="kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg", oauth_signature="tnnArxj06cWHq44gCs1OSKk%2FjLY%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1318622958", oauth_token="370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb", oauth_version="1.0" Content-Length: 76 Host: api.twitter.com status=Hello%20Ladies%20%2b%20Gentlemen%2c%20a%20signed%20OAuth%20request%21
  • 42. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Ideas for OAuth2 Server Side • Annotate resources to be secured • Annotate if resource needs BASIC or OAuth2 • For OAuth2 secured resources, standardize scope declaration • Standardize OAuth Resource registration with Authorization Server • Adapt to specific Authorization Servers • Document Auth method, scopes – Swagger? • Subject to further exploration with EG, JAX-RS and Servlet Specs
  • 43. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Ideas for OAuth2 Client Side • Lifecycle to handle Client registration ̶ Static or dynamically created Clients ̶ Secure management of Client ID/secrets • Discover capabilities on Targets for constructing scopes in Token requests • Abstractions to acquire Token ̶ OAuth2 Flows as Strategies ̶ Token Expiry handling • Abstraction to inject Tokens on invocation
  • 44. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 44 OpenID Connect (OIDC) Overview • Authentication Protocol built on OAuth2 • Session Management – Single Sign on, Out • An additional Token Type – ID Token • UserInfo, Discovery, Client Self-registration Endpoints • Specs : OpenID core, Discovery, Client Registration
  • 45. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 OpenID Connect Use Case • At deployment, Application is configured to be secured by OIDC • Application must continue to rely on well known abstractions for ̶ Identity ̶ Authentication ̶ Authentication Events
  • 46. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 OpenID Connect What does this mean to the App? • An App developer ̶ Needs a consistent API to abstract the Identity store, authentication mechanism, identity representation ̶ Can rely on configuration alone, to change as the App progresses • DevOps can easily change configuration to suit the environment
  • 47. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Role/Permission Assignment Use Case • Application may manage its users or use externally managed users • Application needs to assign roles to users, groups based on application specific model
  • 48. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Role/Permission Assignment Problem Statement • Users or Groups assigned to Roles changes based on deployment • User, Group representations change based on bound Identity Store • OAuth2 Scopes vs Roles – do they overlap? Are they complementary?
  • 49. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Role/Permission Assignment Ideas • Support via Deployment • descriptors e.g. web.xml ̶ Change binding at deployment • Assign Scopes on OAuth2 resources to roles? ̶ Enables App to bind Scopes to Roles ̶ While mapped Users, Groups change
  • 50. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Role/Permission Assignment Ideas • Support via Deployment • descriptors e.g. web.xml ̶ Change binding at deployment • Assign Scopes on OAuth2 resources to roles? ̶ Enables App to bind Scopes to Roles ̶ While mapped Users, Groups change
  • 51. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Role/Permission Assignment Example <security-role-map> <group>SalesSupport</group> <role-name>CSR</role-name> </security-role-map> public class Customers{ @RolesAllowed(“CSR”) @GET public String get() ... }
  • 52. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Authorization Interceptors Use Case • Application must restrict access to functionality • Roles alone are too coarse grained • Application business model determines rules that drive access
  • 53. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Authorization Interceptors Problem Statement • No Consistent Interceptor for policy enforcement • No Consistent externalizable Rules • Need to be bindable to changing identities by Business and Operations
  • 54. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Authorization Interceptors Ideas • Standardize Interceptors • Enable Security teams to build custom Authorization logic • Externalized, standardized rule language • Identity and SecurityContext aware
  • 55. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Secrets Image © 2016 ABC Studios. All Rights Reserved.
  • 56. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Secrets Use Case • Application needs to be able to securely manage secrets • Secrets may include passwords to resources e.g. OAuth Client ID + secrets • Applications are able secure secrets in a portable way • Secrets are never stored in clear text • Values change and are bound per deployment • State has to be externalized ̶ Application may consume secrets from a Key Management System (KMS)
  • 57. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Secrets Ideas • Application refers to secrets via Aliases • Aliases configured via Annotations or Deployment Descriptors • Lifecycle ̶ Bundle Alias + value as a secrets archive with the application ̶ Bind values to Aliases at Deployment ̶ From an external KMS? ̶ Tooling to manage secrets archive • Rely on PKCS12 support in java.security.KeyStore ?
  • 58. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 58 Consistently Secure On premise to Cloud
  • 59. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Way Forward? • Standardize Terminology • Authentication mechanism • Identity Store • Security Context • Authentication – OpenID Connect • Authorization (incl. OAuth) • Secret Management (incl. Password Aliasing) • Security micro services • Packaging, Configuration, Binding Java EE 8 Java EE 9
  • 60. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 60
  • 61. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Java EE 9 Candidates Open ID Connect Problem Statement • Enable using OIDC for Authentication at Deployment • Transparent to the Application • Solely through Configuration • Regardless of specific OIDC Implementation
  • 62. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Java EE 9 Candidates Open ID Connect Ideas • OIDC Flows as an AuthenticationMechanism • Standardize, abstract necessary configuration • Configurable at deployment
  • 63. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Java EE 9 Candidates Open ID Connect Ideas • Encapsulate within the SecurityContext ̶ Representations of user identity, group memberships ̶ Based on Claims in OIDC Identity Token from Open ID Provider (OP) • Provide Applications access to /userInfo endpoint via the IdentityStore abstraction
  • 64. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Java EE 9 Candidates Authorization • Discover/publish OAuth Resources • OAuth Client registration • Authorization Interceptors • Authorization Rules EL • Role/Permission assignment
  • 65. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Java EE 9 Candidates Secret Management • Abstracting secrets the application needs • Bind secret values at deployment • Standardize binding values from KMS systems
  • 66. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Java EE 9 Candidates Secret Management • Abstracting secrets the application needs • Bind secret values at deployment • Standardize binding values from KMS systems
  • 67. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Java EE 9 Candidates Security Micro Services Identity Services • Authentication implementations • Authentication Configuration • IdentityStore Configuration, handling • Token Acquisition, Exchange
  • 68. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Java EE 9 Candidates Security Micro Services Secrets Management • APIs to manage secrets • APIs to get secrets • Abstracts persistence, state management
  • 69. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Java EE 9 Candidates Security Micro Services Authorization Service • APIs to publish, manage policy, role mapping • APIs to get decisions Mix-in Services as functionally needed Packaging and Lifecycle • Standardize Security Configuration • Externalize Configuration • Bind Values at deployment
  • 70. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Java EE 9 Candidates Security Micro Services Identity Services • Encapsulate within the SecurityContext ̶ Representations of user id entity, group memberships ̶ Based on Claims in OIDC Identity Token from Open ID Provider (OP) • Provide Applications access to /userInfo endpoint via the IdentityStore abstraction
  • 71. @YourTwitterHandle#DVXFR14{session hashtag} © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Images: Nu Image / Millennium Films
  • 72. © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375 Links JSR detail page on JCP.org: https://www.jcp.org/en/jsr/detail?id=375 Spec Page on java.net: https://java.net/projects/javaee-securityspec Java.net Mailing List : users@javaee-security-spec.java.net Experts Google Group: jsr375-experts@googlegroups.com Contributors Group: jsr375-contributors@googlegroups.com Twitter Account: @jsr375 Project website on GitHub: https://github.com/javaee-security-spec Project Agorava: http://www.agorava.org
  • 73. @YourTwitterHandle#DVXFR14{session hashtag} © 2016 Creative Arts & Technologies and others. All rights reserved.#JavaSecurity @jsr375