SlideShare a Scribd company logo
Authorization	
  and	
  Authentication	
  in	
  
Microservice Environments
Bernd	
  Schönbach
Overview
2Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
• Introduction
• What’s the problem anyway?
• And how exactly do JSON Web Tokens help here?
• What are JSON Web Tokens?
• Some examples
• Mind the gap
• JWS vs. JWE
Introduction
LeanIX helps companies to manage and
optimize their IT Architecture
4Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
Current IT Architecture Create Transparency Optimize IT Architecture
• Missing information (e.g.
interfaces, technologies)
• Hard to introduce new
products & sales channels
• High costs and risks
• Import existing data into
LeanIX (via Excel or API)
• Invite experts to share
their knowledge
• Use best-practice reports
to identify issues
• Define target architecture
and roadmaps
LeanIX is a web-based platform
to capture and share knowledge about IT
5Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
Fact Sheets & Tagging
Context-based Search
API, Import & Export
Comments & Threads
IT Inventory Collaboration Platform Interactive Reporting
Activity Stream &
Notifications
Subscriptions
Print & Export (PDF)
Best Practice Reports
Interactive Adaption
What’s the problem anyway?
What’s the problem anyway?
7Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
What’s the problem anyway?
8Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
What’s the problem anyway?
9Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
What’s the problem anyway?
10Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
And how do JWT exactly help
here?
Typical Auth Flow
12Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
UI
Auth Service	
  
Microservice 2
Microservice 1
Microservice 3
Login
Return	
  OAuth	
  Token
Check	
  Oauth Validity
Send	
  Requests	
  with	
  Token
AuthService	
  
And now with JWT
13Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
UI
Auth Service	
  
Microservice 2
Microservice 1
Microservice 3
Login
Return	
  JWT
Check	
  Token	
  Validity
Send	
  Requests	
  with	
  Token
What are JSON Web Tokens?
What are JSON Web Tokens (JWT)?
15Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
RFC	
  7519:	
  
“JSON	
  Web	
  Token	
  (JWT)	
  is	
  a	
  compact,	
  URL-­‐safe	
  means	
  
of	
  representing	
  claims	
  to	
  be	
  transferred	
  between	
  two	
  
parties.”
What are JSON Web Tokens (JWT)?
16Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
What are JSON Web TokenS (JWT)?
17Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
Two Types
JSON Web Signature JSON Web Encryption
JSON Web Signature (RFC 7515)
18Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
Three	
  Parts
1. Header
2. Payload	
  (Claims)
3. Signature
JWS - Header
19Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
{
"alg": "HS256",
"typ": "JWT“
}
{
"alg": "HS256",
"typ": "JWT“
}
Recommended Values:
• HS256
• RS256
• ES256
Special Case:
• none
JWS - Payload
20Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
- Main Information Part
- Contains Information like
- Issuer (iss)
- Expiration time (exp)
- Subject (sub)
- Features
- Permissions
- …
{
"iss": "auth-service-1",
"name": "John Doe",
"admin": true,
"exp": 1487325600
}
Use as few information as possible to keep the Token small!
JWS - Signature
21Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
HMACSHA256(
base64UrlEncode(header) + "." + base64UrlEncode(payload),
secret
)
• Verifies origin and content of JWS Token
• Signature contains Header and Payload
JWS Example
22Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.
TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ
Header: { "alg": "HS256", "typ": "JWT"}
Payload:
{
"sub": "1234567890",
"name": "John Doe",
"admin": true
}
Signature:
HMACSHA256(
base64UrlEncode(header) +
"." +
base64UrlEncode(payload),
secret
)
JSON Web Encryption (RFC 7516)
23Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
Five	
  Parts	
  (JWE)
1. Protected	
  Header
2. Encrypted	
  Key
3. Initialization	
  Vector
4. Cipher	
  text
5. Authentication	
  Tag
JWE Protected Header
24Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
• Basically the same as JWS with some minor tweaks
• Two additional Keys:
• enc -> encryption algorithm
• zip -> compression algorithm
• “alg” now describes the algorithm for encrypting CEK
• ”none” is no longer allowed
{
"alg": "RSA-OAEP",
"enc": "A256GCM“,
"typ": "JWT“
}
JWE Protected Header
25Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
• Algorithm used should be an AEAD algorithm
• Authenticated Encryption with Associated Data
• “AEAD algorithms accept two inputs, the plaintext and the
Additional Authenticated Data (AAD) value, and produce two
outputs, the cipher text and the Authentication Tag value.”
• AAD can be base64encoded JWE Protected Header
JWE Encrypted Key
26Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
• Encrypted Content Encryption Key (CEK)
• CEK = Symmetric Key used to encrypt plaintext
• CEK is used to produce cipher text and Authentication Tag
JWE Initialization Vector
27Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
• A random numeric value used to “salt” encrypted value
• Ensures for same content, encrypted value differs
• May be left empy if enc Algorithm does not use IV
JWE Ciphertext
28Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
• Basically the same as Payload in JWS
• Is encrypted with enc algorithm
• Is encrypted using initialization vector
• But must not be JSON can be plaintext
JWE Authentication Tag
29Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
• Is also a result of enc algorithm
• Ensures integrity of cipher text
• Ensures integrity Additional Authenticated Data
JWE
30Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
Again all parts are base64 Encoded and concatenated with dots:
BASE64URL(UTF8(JWE Protected Header)) .
BASE64URL(JWE Encrypted Key) .
BASE64URL(JWE Initialization Vector) .
BASE64URL(JWE Ciphertext) .
BASE64URL(JWE Authentication Tag)
Some examples
31
JWS creation in Java
32Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
public String createJwt(User loggedInUser) {
JwtBuilder builder = Jwts.builder()
.setSubject(loggedInUser.getUsername())
.claim(„payload“, loggedInUser.getPayload())
.setId(loggedInUser.getId())
.setExpiration(calculateExpirationTime());
return builder.signWith(
SignatureAlgorithm.RS256, privateKey
)
.compact();
}
JWS checking in Java
33Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
Claims claims = Jwts.parser()
.setSigningKey(publicKey)
.parseClaimsJws(accesTokenString)
.getBody();
Important Side Note:
- Ensure checking always uses the correct algorithm
- “none” alg header must not lead to unchecked token if signed is
expected!
https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/
JWS Usage in Java with Dropwizard
34Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
@Override
public Optional<User> authenticate(String accessToken) {
if (accessToken == null)
return Optional.absent();
OAuth2Token token = this.parser.parse(accessToken);
return Optional.fromNullable((User) token.getPrincipal());
}
Adapt Authenticator Class:
Use @Auth Annotation:
public Response getX(
@Auth @ApiParam(access="internal") User user
){
[…]
}
JWS example
35Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
Live Presentation
JWS libraries
36Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
Libraries exist for nearly every programming language:
• .NET
• Pyhton
• Node.js
• Java
• JavaScript
• Perl
• Ruby
• Elixir
• Go
• Haskell
• Rust
• Lua
• Scala
• D
• Clojure
• Objective C
• Swift
• C
• Kdb+/Q
• Delphi
• PHP
• Crystal
• …
Mind the gap
Mind the gap
38Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
Don’ts:
• Never ever send passwords in JWT
• And also no hashes..
• You cannot control where the JWT goes
• Don’t verify token validity with Auth-Service
Dos:
• Always verify token (checksum)
• Add as few as possible but at least enough to avoid calls
to other services
Back to JWS vs JWE
vs
JSON Web Encryption (JWE)
40Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
• Everything is unreadable to the user
• You potentially can use classified information
• Only one key needed which can be distributed easily
Pros
Cons
• Need to distribute secret to all services
• Attack vector increases
JSON Web Encryption (JWE)
41Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
Auth Service
Microservice 2
Microservice 1
Microservice 3
Private Key
JSON Web Signature (JWS)
42Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
• Everything is readable to the user
• Only the public key needs to be distributed
• Only the Auth-Service needs high protection
• If private key is compromised exchange here and distribute pub key
Pros
Cons
• Everything is readable to the user
Auth Service
JSON Web Signature (JWS)
43Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
Auth Service
Microservice 2
Microservice 1
Microservice 3
Private Key
Public Key
Conclusion
Conclusion
Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
• Allows to keep loose coupling of Microservices
• Secure transfer of Authorization and Authentication claims
• Further domains can be found in Single Sign On Contexts
• Easy to implement due to library availability
Thanks
(and yes we are hiring)
https://www.leanix.net/en/jobs
Sources
47Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
• https://tools.ietf.org/html/rfc7519 RFC for JWT
• https://tools.ietf.org/html/rfc7518 RFC for JWA (used in JWS and JWE)
• https://jwt.io/
• https://www.leanix.net/
• Devil Smiley CC BY 4.0 https://www.creativetail.com
• Further Articles on JWT:
• https://blog.codecentric.de/2016/11/json-web-token-jwt-im-detail/
• https://medium.facilelogin.com/jwt-jws-and-jwe-for-not-so-dummies-b63310d201a3

More Related Content

What's hot

Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - Observability
Araf Karsh Hamid
 
APISecurity_OWASP_MitigationGuide
APISecurity_OWASP_MitigationGuide APISecurity_OWASP_MitigationGuide
APISecurity_OWASP_MitigationGuide
Isabelle Mauny
 
API Management within a Microservice Architecture
API Management within a Microservice ArchitectureAPI Management within a Microservice Architecture
API Management within a Microservice Architecture
WSO2
 
OAuth 2.0
OAuth 2.0OAuth 2.0
OAuth 2.0
Uwe Friedrichsen
 
APIs in a Microservice Architecture
APIs in a Microservice ArchitectureAPIs in a Microservice Architecture
APIs in a Microservice Architecture
WSO2
 
Introduction to Kong API Gateway
Introduction to Kong API GatewayIntroduction to Kong API Gateway
Introduction to Kong API Gateway
Yohann Ciurlik
 
Secure your app with keycloak
Secure your app with keycloakSecure your app with keycloak
Secure your app with keycloak
Guy Marom
 
Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SRE
Araf Karsh Hamid
 
Practical DevSecOps Course - Part 1
Practical DevSecOps Course - Part 1Practical DevSecOps Course - Part 1
Practical DevSecOps Course - Part 1
Mohammed A. Imran
 
Token, token... From SAML to OIDC
Token, token... From SAML to OIDCToken, token... From SAML to OIDC
Token, token... From SAML to OIDC
Shiu-Fun Poon
 
OAuth 2
OAuth 2OAuth 2
OAuth 2
ChrisWood262
 
YOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous MicroservicesYOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous Microservices
Chris Richardson
 
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
HostedbyConfluent
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
Ashok Pundit
 
Azure API Management
Azure API ManagementAzure API Management
Azure API Management
Daniel Toomey
 
API Security Best Practices & Guidelines
API Security Best Practices & GuidelinesAPI Security Best Practices & Guidelines
API Security Best Practices & Guidelines
Prabath Siriwardena
 
Platform engineering 101
Platform engineering 101Platform engineering 101
Platform engineering 101
Sander Knape
 
Architecting an Enterprise API Management Strategy
Architecting an Enterprise API Management StrategyArchitecting an Enterprise API Management Strategy
Architecting an Enterprise API Management Strategy
WSO2
 
API Security Best Practices & Guidelines
API Security Best Practices & GuidelinesAPI Security Best Practices & Guidelines
API Security Best Practices & Guidelines
Prabath Siriwardena
 
The Role of IAM in Microservices
The Role of IAM in MicroservicesThe Role of IAM in Microservices
The Role of IAM in Microservices
WSO2
 

What's hot (20)

Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - Observability
 
APISecurity_OWASP_MitigationGuide
APISecurity_OWASP_MitigationGuide APISecurity_OWASP_MitigationGuide
APISecurity_OWASP_MitigationGuide
 
API Management within a Microservice Architecture
API Management within a Microservice ArchitectureAPI Management within a Microservice Architecture
API Management within a Microservice Architecture
 
OAuth 2.0
OAuth 2.0OAuth 2.0
OAuth 2.0
 
APIs in a Microservice Architecture
APIs in a Microservice ArchitectureAPIs in a Microservice Architecture
APIs in a Microservice Architecture
 
Introduction to Kong API Gateway
Introduction to Kong API GatewayIntroduction to Kong API Gateway
Introduction to Kong API Gateway
 
Secure your app with keycloak
Secure your app with keycloakSecure your app with keycloak
Secure your app with keycloak
 
Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SRE
 
Practical DevSecOps Course - Part 1
Practical DevSecOps Course - Part 1Practical DevSecOps Course - Part 1
Practical DevSecOps Course - Part 1
 
Token, token... From SAML to OIDC
Token, token... From SAML to OIDCToken, token... From SAML to OIDC
Token, token... From SAML to OIDC
 
OAuth 2
OAuth 2OAuth 2
OAuth 2
 
YOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous MicroservicesYOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous Microservices
 
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
 
Azure API Management
Azure API ManagementAzure API Management
Azure API Management
 
API Security Best Practices & Guidelines
API Security Best Practices & GuidelinesAPI Security Best Practices & Guidelines
API Security Best Practices & Guidelines
 
Platform engineering 101
Platform engineering 101Platform engineering 101
Platform engineering 101
 
Architecting an Enterprise API Management Strategy
Architecting an Enterprise API Management StrategyArchitecting an Enterprise API Management Strategy
Architecting an Enterprise API Management Strategy
 
API Security Best Practices & Guidelines
API Security Best Practices & GuidelinesAPI Security Best Practices & Guidelines
API Security Best Practices & Guidelines
 
The Role of IAM in Microservices
The Role of IAM in MicroservicesThe Role of IAM in Microservices
The Role of IAM in Microservices
 

Similar to Authorization and Authentication in Microservice Environments

[OPD 2019] Attacking JWT tokens
[OPD 2019] Attacking JWT tokens[OPD 2019] Attacking JWT tokens
[OPD 2019] Attacking JWT tokens
OWASP
 
"Creating a Competitive Edge Using Blockchain Technology"
"Creating a Competitive Edge Using Blockchain Technology""Creating a Competitive Edge Using Blockchain Technology"
"Creating a Competitive Edge Using Blockchain Technology"
Joseph Holbrook, Chief Learning Officer (CLO)
 
Technical considerations for Blockchain networks with AWS
Technical considerations for Blockchain networks with AWSTechnical considerations for Blockchain networks with AWS
Technical considerations for Blockchain networks with AWS
atSistemas
 
Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?
Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?
Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?
Hacken_Ecosystem
 
Technical Introduction to Hyperledger Fabric v1.0
Technical Introduction to Hyperledger Fabric v1.0Technical Introduction to Hyperledger Fabric v1.0
Technical Introduction to Hyperledger Fabric v1.0
Altoros
 
20160304 blockchain in fsi client ready raymond
20160304 blockchain in fsi client ready raymond20160304 blockchain in fsi client ready raymond
20160304 blockchain in fsi client ready raymond
Meng-Ru (Raymond) Tsai
 
Building an Effective Architecture for Identity and Access Management.pdf
Building an Effective Architecture for Identity and Access Management.pdfBuilding an Effective Architecture for Identity and Access Management.pdf
Building an Effective Architecture for Identity and Access Management.pdf
Jorge Alvarez
 
Jwt Security
Jwt SecurityJwt Security
Jwt Security
Seid Yassin
 
Securing Web Applications with Token Authentication
Securing Web Applications with Token AuthenticationSecuring Web Applications with Token Authentication
Securing Web Applications with Token Authentication
Stormpath
 
APIs: Intelligent Routing, Security, & Management
APIs: Intelligent Routing, Security, & ManagementAPIs: Intelligent Routing, Security, & Management
APIs: Intelligent Routing, Security, & Management
NGINX, Inc.
 
JWTs for CSRF and Microservices
JWTs for CSRF and MicroservicesJWTs for CSRF and Microservices
JWTs for CSRF and Microservices
Stormpath
 
Luniverse Partners Day - Jay
Luniverse Partners Day - JayLuniverse Partners Day - Jay
Luniverse Partners Day - Jay
Luniverse Dunamu
 
The Plone and The Blockchain
The Plone and The BlockchainThe Plone and The Blockchain
The Plone and The Blockchain
Andreas Jung
 
Invoke-CradleCrafter: Moar PowerShell obFUsk8tion & Detection (@('Tech','niqu...
Invoke-CradleCrafter: Moar PowerShell obFUsk8tion & Detection (@('Tech','niqu...Invoke-CradleCrafter: Moar PowerShell obFUsk8tion & Detection (@('Tech','niqu...
Invoke-CradleCrafter: Moar PowerShell obFUsk8tion & Detection (@('Tech','niqu...
Daniel Bohannon
 
A Breathless Tour of Blockchain
A Breathless Tour of BlockchainA Breathless Tour of Blockchain
A Breathless Tour of Blockchain
Eoin Woods
 
How your JavaScript skills apply in the blockchain space
How your JavaScript skills apply in the blockchain spaceHow your JavaScript skills apply in the blockchain space
How your JavaScript skills apply in the blockchain space
Michał Załęcki
 
Standard Provenance Reporting and Scientific Software Management in Virtual L...
Standard Provenance Reporting and Scientific Software Management in Virtual L...Standard Provenance Reporting and Scientific Software Management in Virtual L...
Standard Provenance Reporting and Scientific Software Management in Virtual L...
njcar
 
Secure all things with CBSecurity 3
Secure all things with CBSecurity 3Secure all things with CBSecurity 3
Secure all things with CBSecurity 3
Ortus Solutions, Corp
 
Pay Forum Conference
Pay Forum ConferencePay Forum Conference
Pay Forum Conferencehagero
 
OpenAM as Flexible Integration Component
OpenAM as Flexible Integration ComponentOpenAM as Flexible Integration Component
OpenAM as Flexible Integration Component
ForgeRock
 

Similar to Authorization and Authentication in Microservice Environments (20)

[OPD 2019] Attacking JWT tokens
[OPD 2019] Attacking JWT tokens[OPD 2019] Attacking JWT tokens
[OPD 2019] Attacking JWT tokens
 
"Creating a Competitive Edge Using Blockchain Technology"
"Creating a Competitive Edge Using Blockchain Technology""Creating a Competitive Edge Using Blockchain Technology"
"Creating a Competitive Edge Using Blockchain Technology"
 
Technical considerations for Blockchain networks with AWS
Technical considerations for Blockchain networks with AWSTechnical considerations for Blockchain networks with AWS
Technical considerations for Blockchain networks with AWS
 
Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?
Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?
Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?
 
Technical Introduction to Hyperledger Fabric v1.0
Technical Introduction to Hyperledger Fabric v1.0Technical Introduction to Hyperledger Fabric v1.0
Technical Introduction to Hyperledger Fabric v1.0
 
20160304 blockchain in fsi client ready raymond
20160304 blockchain in fsi client ready raymond20160304 blockchain in fsi client ready raymond
20160304 blockchain in fsi client ready raymond
 
Building an Effective Architecture for Identity and Access Management.pdf
Building an Effective Architecture for Identity and Access Management.pdfBuilding an Effective Architecture for Identity and Access Management.pdf
Building an Effective Architecture for Identity and Access Management.pdf
 
Jwt Security
Jwt SecurityJwt Security
Jwt Security
 
Securing Web Applications with Token Authentication
Securing Web Applications with Token AuthenticationSecuring Web Applications with Token Authentication
Securing Web Applications with Token Authentication
 
APIs: Intelligent Routing, Security, & Management
APIs: Intelligent Routing, Security, & ManagementAPIs: Intelligent Routing, Security, & Management
APIs: Intelligent Routing, Security, & Management
 
JWTs for CSRF and Microservices
JWTs for CSRF and MicroservicesJWTs for CSRF and Microservices
JWTs for CSRF and Microservices
 
Luniverse Partners Day - Jay
Luniverse Partners Day - JayLuniverse Partners Day - Jay
Luniverse Partners Day - Jay
 
The Plone and The Blockchain
The Plone and The BlockchainThe Plone and The Blockchain
The Plone and The Blockchain
 
Invoke-CradleCrafter: Moar PowerShell obFUsk8tion & Detection (@('Tech','niqu...
Invoke-CradleCrafter: Moar PowerShell obFUsk8tion & Detection (@('Tech','niqu...Invoke-CradleCrafter: Moar PowerShell obFUsk8tion & Detection (@('Tech','niqu...
Invoke-CradleCrafter: Moar PowerShell obFUsk8tion & Detection (@('Tech','niqu...
 
A Breathless Tour of Blockchain
A Breathless Tour of BlockchainA Breathless Tour of Blockchain
A Breathless Tour of Blockchain
 
How your JavaScript skills apply in the blockchain space
How your JavaScript skills apply in the blockchain spaceHow your JavaScript skills apply in the blockchain space
How your JavaScript skills apply in the blockchain space
 
Standard Provenance Reporting and Scientific Software Management in Virtual L...
Standard Provenance Reporting and Scientific Software Management in Virtual L...Standard Provenance Reporting and Scientific Software Management in Virtual L...
Standard Provenance Reporting and Scientific Software Management in Virtual L...
 
Secure all things with CBSecurity 3
Secure all things with CBSecurity 3Secure all things with CBSecurity 3
Secure all things with CBSecurity 3
 
Pay Forum Conference
Pay Forum ConferencePay Forum Conference
Pay Forum Conference
 
OpenAM as Flexible Integration Component
OpenAM as Flexible Integration ComponentOpenAM as Flexible Integration Component
OpenAM as Flexible Integration Component
 

More from LeanIX GmbH

LeanIX Virtual Workspaces
LeanIX Virtual WorkspacesLeanIX Virtual Workspaces
LeanIX Virtual Workspaces
LeanIX GmbH
 
How to reduce complexity by segregating your data with Virtual Workspaces
How to reduce complexity by segregating your data with Virtual WorkspacesHow to reduce complexity by segregating your data with Virtual Workspaces
How to reduce complexity by segregating your data with Virtual Workspaces
LeanIX GmbH
 
Gartner EA: The Rise of Data-driven Architectures
Gartner EA: The Rise of Data-driven ArchitecturesGartner EA: The Rise of Data-driven Architectures
Gartner EA: The Rise of Data-driven Architectures
LeanIX GmbH
 
Application Harmonisation using Design Principles in LeanIX
Application Harmonisation using Design Principles in LeanIXApplication Harmonisation using Design Principles in LeanIX
Application Harmonisation using Design Principles in LeanIX
LeanIX GmbH
 
Effective EAM: whet your appetite & deliver solutions
Effective EAM: whet your appetite & deliver solutionsEffective EAM: whet your appetite & deliver solutions
Effective EAM: whet your appetite & deliver solutions
LeanIX GmbH
 
Lean EAM with the Microservices Add-on and the Signavio Integration
Lean EAM with the Microservices Add-on and the Signavio IntegrationLean EAM with the Microservices Add-on and the Signavio Integration
Lean EAM with the Microservices Add-on and the Signavio Integration
LeanIX GmbH
 
Next Level Enterprise Architecture
Next Level Enterprise ArchitectureNext Level Enterprise Architecture
Next Level Enterprise Architecture
LeanIX GmbH
 
Integration Architecture with the Data Flow
Integration Architecture with the Data FlowIntegration Architecture with the Data Flow
Integration Architecture with the Data Flow
LeanIX GmbH
 
LeanIX-ServiceNow Integration
LeanIX-ServiceNow IntegrationLeanIX-ServiceNow Integration
LeanIX-ServiceNow Integration
LeanIX GmbH
 
Application Rationalization with LeanIX
Application Rationalization with LeanIXApplication Rationalization with LeanIX
Application Rationalization with LeanIX
LeanIX GmbH
 
Custom Reports & Integrations with GraphQL
Custom Reports & Integrations with GraphQLCustom Reports & Integrations with GraphQL
Custom Reports & Integrations with GraphQL
LeanIX GmbH
 
LeanIX Inventory: Import & Export
LeanIX Inventory: Import & ExportLeanIX Inventory: Import & Export
LeanIX Inventory: Import & Export
LeanIX GmbH
 
Survey Add-on Showcase: Cloud Transformation
Survey Add-on Showcase: Cloud TransformationSurvey Add-on Showcase: Cloud Transformation
Survey Add-on Showcase: Cloud Transformation
LeanIX GmbH
 
The LeanIX Microservices Integration
The LeanIX Microservices IntegrationThe LeanIX Microservices Integration
The LeanIX Microservices Integration
LeanIX GmbH
 
Ensure GDPR Compliance with LeanIX
Ensure GDPR Compliance with LeanIXEnsure GDPR Compliance with LeanIX
Ensure GDPR Compliance with LeanIX
LeanIX GmbH
 
LeanIX-Signavio Integration
LeanIX-Signavio IntegrationLeanIX-Signavio Integration
LeanIX-Signavio Integration
LeanIX GmbH
 
How to set up a Lean Standards Governance
How to set up a Lean Standards GovernanceHow to set up a Lean Standards Governance
How to set up a Lean Standards Governance
LeanIX GmbH
 
Innovative API-Based LeanIX Enhancements
Innovative API-Based LeanIX EnhancementsInnovative API-Based LeanIX Enhancements
Innovative API-Based LeanIX Enhancements
LeanIX GmbH
 
Moving EA - from where we are to where we should be
Moving EA - from where we are to where we should beMoving EA - from where we are to where we should be
Moving EA - from where we are to where we should be
LeanIX GmbH
 
Is next generation EAM more than just agile IT planning?
Is next generation EAM more than just agile IT planning?Is next generation EAM more than just agile IT planning?
Is next generation EAM more than just agile IT planning?
LeanIX GmbH
 

More from LeanIX GmbH (20)

LeanIX Virtual Workspaces
LeanIX Virtual WorkspacesLeanIX Virtual Workspaces
LeanIX Virtual Workspaces
 
How to reduce complexity by segregating your data with Virtual Workspaces
How to reduce complexity by segregating your data with Virtual WorkspacesHow to reduce complexity by segregating your data with Virtual Workspaces
How to reduce complexity by segregating your data with Virtual Workspaces
 
Gartner EA: The Rise of Data-driven Architectures
Gartner EA: The Rise of Data-driven ArchitecturesGartner EA: The Rise of Data-driven Architectures
Gartner EA: The Rise of Data-driven Architectures
 
Application Harmonisation using Design Principles in LeanIX
Application Harmonisation using Design Principles in LeanIXApplication Harmonisation using Design Principles in LeanIX
Application Harmonisation using Design Principles in LeanIX
 
Effective EAM: whet your appetite & deliver solutions
Effective EAM: whet your appetite & deliver solutionsEffective EAM: whet your appetite & deliver solutions
Effective EAM: whet your appetite & deliver solutions
 
Lean EAM with the Microservices Add-on and the Signavio Integration
Lean EAM with the Microservices Add-on and the Signavio IntegrationLean EAM with the Microservices Add-on and the Signavio Integration
Lean EAM with the Microservices Add-on and the Signavio Integration
 
Next Level Enterprise Architecture
Next Level Enterprise ArchitectureNext Level Enterprise Architecture
Next Level Enterprise Architecture
 
Integration Architecture with the Data Flow
Integration Architecture with the Data FlowIntegration Architecture with the Data Flow
Integration Architecture with the Data Flow
 
LeanIX-ServiceNow Integration
LeanIX-ServiceNow IntegrationLeanIX-ServiceNow Integration
LeanIX-ServiceNow Integration
 
Application Rationalization with LeanIX
Application Rationalization with LeanIXApplication Rationalization with LeanIX
Application Rationalization with LeanIX
 
Custom Reports & Integrations with GraphQL
Custom Reports & Integrations with GraphQLCustom Reports & Integrations with GraphQL
Custom Reports & Integrations with GraphQL
 
LeanIX Inventory: Import & Export
LeanIX Inventory: Import & ExportLeanIX Inventory: Import & Export
LeanIX Inventory: Import & Export
 
Survey Add-on Showcase: Cloud Transformation
Survey Add-on Showcase: Cloud TransformationSurvey Add-on Showcase: Cloud Transformation
Survey Add-on Showcase: Cloud Transformation
 
The LeanIX Microservices Integration
The LeanIX Microservices IntegrationThe LeanIX Microservices Integration
The LeanIX Microservices Integration
 
Ensure GDPR Compliance with LeanIX
Ensure GDPR Compliance with LeanIXEnsure GDPR Compliance with LeanIX
Ensure GDPR Compliance with LeanIX
 
LeanIX-Signavio Integration
LeanIX-Signavio IntegrationLeanIX-Signavio Integration
LeanIX-Signavio Integration
 
How to set up a Lean Standards Governance
How to set up a Lean Standards GovernanceHow to set up a Lean Standards Governance
How to set up a Lean Standards Governance
 
Innovative API-Based LeanIX Enhancements
Innovative API-Based LeanIX EnhancementsInnovative API-Based LeanIX Enhancements
Innovative API-Based LeanIX Enhancements
 
Moving EA - from where we are to where we should be
Moving EA - from where we are to where we should beMoving EA - from where we are to where we should be
Moving EA - from where we are to where we should be
 
Is next generation EAM more than just agile IT planning?
Is next generation EAM more than just agile IT planning?Is next generation EAM more than just agile IT planning?
Is next generation EAM more than just agile IT planning?
 

Recently uploaded

AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 

Recently uploaded (20)

AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 

Authorization and Authentication in Microservice Environments

  • 1. Authorization  and  Authentication  in   Microservice Environments Bernd  Schönbach
  • 2. Overview 2Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX • Introduction • What’s the problem anyway? • And how exactly do JSON Web Tokens help here? • What are JSON Web Tokens? • Some examples • Mind the gap • JWS vs. JWE
  • 4. LeanIX helps companies to manage and optimize their IT Architecture 4Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX Current IT Architecture Create Transparency Optimize IT Architecture • Missing information (e.g. interfaces, technologies) • Hard to introduce new products & sales channels • High costs and risks • Import existing data into LeanIX (via Excel or API) • Invite experts to share their knowledge • Use best-practice reports to identify issues • Define target architecture and roadmaps
  • 5. LeanIX is a web-based platform to capture and share knowledge about IT 5Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX Fact Sheets & Tagging Context-based Search API, Import & Export Comments & Threads IT Inventory Collaboration Platform Interactive Reporting Activity Stream & Notifications Subscriptions Print & Export (PDF) Best Practice Reports Interactive Adaption
  • 7. What’s the problem anyway? 7Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
  • 8. What’s the problem anyway? 8Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
  • 9. What’s the problem anyway? 9Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
  • 10. What’s the problem anyway? 10Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
  • 11. And how do JWT exactly help here?
  • 12. Typical Auth Flow 12Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX UI Auth Service   Microservice 2 Microservice 1 Microservice 3 Login Return  OAuth  Token Check  Oauth Validity Send  Requests  with  Token AuthService  
  • 13. And now with JWT 13Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX UI Auth Service   Microservice 2 Microservice 1 Microservice 3 Login Return  JWT Check  Token  Validity Send  Requests  with  Token
  • 14. What are JSON Web Tokens?
  • 15. What are JSON Web Tokens (JWT)? 15Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX RFC  7519:   “JSON  Web  Token  (JWT)  is  a  compact,  URL-­‐safe  means   of  representing  claims  to  be  transferred  between  two   parties.”
  • 16. What are JSON Web Tokens (JWT)? 16Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX
  • 17. What are JSON Web TokenS (JWT)? 17Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX Two Types JSON Web Signature JSON Web Encryption
  • 18. JSON Web Signature (RFC 7515) 18Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX Three  Parts 1. Header 2. Payload  (Claims) 3. Signature
  • 19. JWS - Header 19Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX { "alg": "HS256", "typ": "JWT“ } { "alg": "HS256", "typ": "JWT“ } Recommended Values: • HS256 • RS256 • ES256 Special Case: • none
  • 20. JWS - Payload 20Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX - Main Information Part - Contains Information like - Issuer (iss) - Expiration time (exp) - Subject (sub) - Features - Permissions - … { "iss": "auth-service-1", "name": "John Doe", "admin": true, "exp": 1487325600 } Use as few information as possible to keep the Token small!
  • 21. JWS - Signature 21Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), secret ) • Verifies origin and content of JWS Token • Signature contains Header and Payload
  • 22. JWS Example 22Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9. eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9. TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ Header: { "alg": "HS256", "typ": "JWT"} Payload: { "sub": "1234567890", "name": "John Doe", "admin": true } Signature: HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), secret )
  • 23. JSON Web Encryption (RFC 7516) 23Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX Five  Parts  (JWE) 1. Protected  Header 2. Encrypted  Key 3. Initialization  Vector 4. Cipher  text 5. Authentication  Tag
  • 24. JWE Protected Header 24Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX • Basically the same as JWS with some minor tweaks • Two additional Keys: • enc -> encryption algorithm • zip -> compression algorithm • “alg” now describes the algorithm for encrypting CEK • ”none” is no longer allowed { "alg": "RSA-OAEP", "enc": "A256GCM“, "typ": "JWT“ }
  • 25. JWE Protected Header 25Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX • Algorithm used should be an AEAD algorithm • Authenticated Encryption with Associated Data • “AEAD algorithms accept two inputs, the plaintext and the Additional Authenticated Data (AAD) value, and produce two outputs, the cipher text and the Authentication Tag value.” • AAD can be base64encoded JWE Protected Header
  • 26. JWE Encrypted Key 26Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX • Encrypted Content Encryption Key (CEK) • CEK = Symmetric Key used to encrypt plaintext • CEK is used to produce cipher text and Authentication Tag
  • 27. JWE Initialization Vector 27Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX • A random numeric value used to “salt” encrypted value • Ensures for same content, encrypted value differs • May be left empy if enc Algorithm does not use IV
  • 28. JWE Ciphertext 28Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX • Basically the same as Payload in JWS • Is encrypted with enc algorithm • Is encrypted using initialization vector • But must not be JSON can be plaintext
  • 29. JWE Authentication Tag 29Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX • Is also a result of enc algorithm • Ensures integrity of cipher text • Ensures integrity Additional Authenticated Data
  • 30. JWE 30Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX Again all parts are base64 Encoded and concatenated with dots: BASE64URL(UTF8(JWE Protected Header)) . BASE64URL(JWE Encrypted Key) . BASE64URL(JWE Initialization Vector) . BASE64URL(JWE Ciphertext) . BASE64URL(JWE Authentication Tag)
  • 32. JWS creation in Java 32Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX public String createJwt(User loggedInUser) { JwtBuilder builder = Jwts.builder() .setSubject(loggedInUser.getUsername()) .claim(„payload“, loggedInUser.getPayload()) .setId(loggedInUser.getId()) .setExpiration(calculateExpirationTime()); return builder.signWith( SignatureAlgorithm.RS256, privateKey ) .compact(); }
  • 33. JWS checking in Java 33Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX Claims claims = Jwts.parser() .setSigningKey(publicKey) .parseClaimsJws(accesTokenString) .getBody(); Important Side Note: - Ensure checking always uses the correct algorithm - “none” alg header must not lead to unchecked token if signed is expected! https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/
  • 34. JWS Usage in Java with Dropwizard 34Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX @Override public Optional<User> authenticate(String accessToken) { if (accessToken == null) return Optional.absent(); OAuth2Token token = this.parser.parse(accessToken); return Optional.fromNullable((User) token.getPrincipal()); } Adapt Authenticator Class: Use @Auth Annotation: public Response getX( @Auth @ApiParam(access="internal") User user ){ […] }
  • 35. JWS example 35Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX Live Presentation
  • 36. JWS libraries 36Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX Libraries exist for nearly every programming language: • .NET • Pyhton • Node.js • Java • JavaScript • Perl • Ruby • Elixir • Go • Haskell • Rust • Lua • Scala • D • Clojure • Objective C • Swift • C • Kdb+/Q • Delphi • PHP • Crystal • …
  • 38. Mind the gap 38Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX Don’ts: • Never ever send passwords in JWT • And also no hashes.. • You cannot control where the JWT goes • Don’t verify token validity with Auth-Service Dos: • Always verify token (checksum) • Add as few as possible but at least enough to avoid calls to other services
  • 39. Back to JWS vs JWE vs
  • 40. JSON Web Encryption (JWE) 40Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX • Everything is unreadable to the user • You potentially can use classified information • Only one key needed which can be distributed easily Pros Cons • Need to distribute secret to all services • Attack vector increases
  • 41. JSON Web Encryption (JWE) 41Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX Auth Service Microservice 2 Microservice 1 Microservice 3 Private Key
  • 42. JSON Web Signature (JWS) 42Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX • Everything is readable to the user • Only the public key needs to be distributed • Only the Auth-Service needs high protection • If private key is compromised exchange here and distribute pub key Pros Cons • Everything is readable to the user
  • 43. Auth Service JSON Web Signature (JWS) 43Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX Auth Service Microservice 2 Microservice 1 Microservice 3 Private Key Public Key
  • 45. Conclusion Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX • Allows to keep loose coupling of Microservices • Secure transfer of Authorization and Authentication claims • Further domains can be found in Single Sign On Contexts • Easy to implement due to library availability
  • 46. Thanks (and yes we are hiring) https://www.leanix.net/en/jobs
  • 47. Sources 47Authorization and Authentication in Microservice Environments – Bernd Schönbach – LeanIX • https://tools.ietf.org/html/rfc7519 RFC for JWT • https://tools.ietf.org/html/rfc7518 RFC for JWA (used in JWS and JWE) • https://jwt.io/ • https://www.leanix.net/ • Devil Smiley CC BY 4.0 https://www.creativetail.com • Further Articles on JWT: • https://blog.codecentric.de/2016/11/json-web-token-jwt-im-detail/ • https://medium.facilelogin.com/jwt-jws-and-jwe-for-not-so-dummies-b63310d201a3