SlideShare a Scribd company logo
1 of 36
Download to read offline
MAY 13 2021
Moscow MuleSoft Meetup Group
4
● Introductions
● MuleSoft updates
● Building secure financial APIs
○ Demo “Building Secure financial API”
○ Quiz & Q&A
● 5 minutes break
● Revealing OData Capabilities
○ Demo “How to compile OData on Mulesoft & connect it to Salesforce and mobile apps”
○ Quiz and Q&A session
● Networking time
Agenda
5
Introductions
A SHOW OF HANDS:
Who is new to this Meetup?
Dmitry Fundak
Leadex Systems
MuleSoft Architect
Georgy Khomchenko
Customertimes
Senior MuleSoft Developer
Updates from MuleSoft
MuleSoft Certification Maintenance
https://training.mulesoft.com/certification-maintenance
Prerequisite: Current certification:
MULESOFT CERTIFIED
Developer
Format: Proctored, 45 minutes, 25 questions
Attempts: 2 attempts, then must take full exam
Cost: $62.50 USD or ¼ FTC
Validity: 2 years
7
LEVEL
1
MULESOFT CERTIFIED
Developer
MULESOFT CERTIFIED
Platform Architect
LEVEL
1
MULESOFT CERTIFIED
Integration Architect
LEVEL
1
Free
till May 31st
2021
Dmitry Fundak
HOW TO BUILD SECURE
FINANCIAL APIs with MULESOFT
9
● Business case - secure financial API
● Anypoint Platform - security features overview
● Demo
● Quiz
Agenda
Business case —
Securely expose financial* API
Business case
11
A financial institution already has an internal Cards API and decided to
issue whitelabel / co-branding cards with business partners.
Goal - expose existing Cards API for partners (fintech, retail, airlines, …):
1. Securely
2. Fast
3. With minimum development efforts
API-led architecture of business case
12
System
APIs
Cards API
Card
Process API
Core
System API
Core
Banking
CC
System API
Card
System
Partner
Process
APIs
Experience
APIs
Scope of Demo Use Case
Out of scope
Anypoint Platform
security features overview
14
Policies enable you to enforce regulations to
help manage security, control traffic, and
improve adaptability of your APIs.
You can implement all these regulations with
no modification to the code
implementation.
Security Policies available in API Manager:
● Client ID enforcement
● Cross-Origin resource sharing
● OAuth 2.0 access token enforcement
using Mule OAuth provider
● JWT Validation
● IP blacklist
● IP whitelist
● XML threat protection
● JSON threat protection
● Tokenization
● Detokenization
Policies
DLB enable you to:
* Handle load balancing among the different
CloudHub workers that run your application.
* Define SSL configurations to provide custom
certificates and optionally enforce two-way SSL
client authentication.
* Configure proxy rules that map your applications
to custom domains.
* This enables you to host your applications under a
single domain.
15
Dedicated Load Balancer
16
* SSL Endpoint Configuration
Define SSL configurations to provide custom
certificates
* Two-way SSL client authentication
Optionally enforce two-way SSL client
authentication
Dedicated Load Balancer - SSL / TLS
17
Anypoint Security (add-on)
* Edge Policies
Anypoint Security policies then act as a
default firewall/router capability through
which all traffic traverses.
* Secrets Manager
Anypoint Security provides a secure vault
for you to store the TLS certificates and
keystores used by your deployments.
* Tokenization Service
Anypoint Security’s tokenization service
protects sensitive data from unwanted
exposure by replacing key values, such as
a credit card number, with a token.
18
Anypoint Security - Edge Policies
● DoS Policy
DoS policies are designed to protect your network nodes against malicious clients trying to flood your
network to prevent legitimate traffic to your APIs.
● IP Whitelist Policy
Create an IP address whitelist policy to configure an explicit list of IP addresses that can access your
deployed endpoints.
● HTTP Limits Policy
HTTP limits policies prevent attacks from clients that send large messages that can consume all of your
processing bandwidth.
● WAF Policy
WAF policies provide the Open Web Application Security Project (OWASP) Core Rule Set (CRS) for
checking requests and responses to detect common web application attacks.
19
Anypoint Security - Web Application Firewall
20
Anypoint Security - Tokenization
* Format-Preserving Tokens
The output tokens have the same format as
the sensitive data input. Generated tokens
conform to the existing data structure and
validations.
* Masking
Configurable mask character is returned
which hides the identity of the sensitive
data
21
Anypoint Security - Tokenization
* Format-Preserving Tokens
The output tokens have the same format as
the sensitive data input. Generated tokens
conform to the existing data structure and
validations.
* Masking
Configurable mask character is returned
which hides the identity of the sensitive
data
22
Anypoint Security - Secret Manager
* Use secrets manager to write and
manage your secrets, keys, and
Transport Layer Security (TLS) artifacts
Secrets manager is designed to store and
manage secrets for supported Anypoint
Platform services. It is not a
general-purpose storage for secrets. Only
trusted services within Anypoint Platform
have access to the contents of the secret.
* Supported Secret Types
TLS Context
Keystore
Truststore
Certificates
Certificate Pin Set
CRL Distributor
Demo
Component Architecture
24
This case only about client credentials flow -
machine-to-machine (M2M)
* If interested, we can demonstrate (on another
meetup) a B2C case, where an end-customer gives
his/her consent to Application based on PSD2 /
OBIE v3
Demo
25
Enough slides, and let the demo begin!
API secured with...
26
OAuth client credentials flow — Okta* & MuleSoft OAuth Policy
IP Whitelist policy — in case we need to restrict access by IP
SSL company certificate & Mutual TLS — trusted client certificate
0 lines of code written
28
● Share:
○ Tweet using the hashtag #MuleSoftMeetups
○ Invite your network to join: https://meetups.mulesoft.com/moscow/
● Feedback:
○ Fill out the survey feedback and suggest topics for upcoming events
○ Contact MuleSoft at meetups@mulesoft.com for ways to improve the program
What’s next?
Thank you
OData API with MuleSoft
What is OData?
OData stands for Open Data Protocol and
was designed to fill the “web” gap between
Databases and Database consumers
• Provides access to database through HTTP
• Unified request and response structures allow
seamless integrations
• DB Query are passed as a query parameter
• HTTP Verbs mimic DB operations:
• GET ➔ SELECT
• PUT ➔ UPDATE
• POST ➔ INSERT
• DELETE ➔ DELETE
https://services.odata.org/OData/OData.svc/Category(1)/Products?$top=2&$orderby=name
Service Root URI Resource Path Query Options
OData and MuleSoft
MuleSoft provides OData plug-in for Odata
API development
1. Go to “Help -> Install new software” and
install most recent version of “APIkit for
ODATA Update Site”
2. Create Odata.raml file in
src/main/resources/api with datatypes
available in source database
3. Right click on Odata.raml and select “Mule ->
Generate Odata API from RAML types”
src/main/resources/api/Odata.raml
Similar to generating flows from RAML,
after these steps APIkit will generate stubs
for each Odata endpoint in api.xml
Implementing OData endpoints
Unlike plain REST endpoints there are few
rules that we must follow:
1. All endpoints should return data in one
specific way:
{ “entries” : payload }
2. Except “format” query parameter all other
parameters should be manually processed
and transformed to SQL query (DW script is
available with OData MuleSoft example)
3. OData information like keys (fields of entity)
or entity name itself is available at startup in
vars.odata object
4. POST response requires created entity to be
returned, unlike REST where either ID is
returned or empty payload with 201 code
Demo Scenario
OData as an External Data Source
By following these steps, you can bind your
Mule OData service to SF’s external data
source. It will immediately display all data
in custom tab
1. Navigate to Setup -> External Data Sources ->
New External Data Source
2. Enter name of the Data Source and select type
“Salesforce OData Connect: OData 2.0”
3. In URL provide URL of your OData.svc file like
following:
https://services.odata.org/OData/OData.svc
4. Click “New” under external object and select
Object that was detected from .svc file
5. Navigate to “Tabs” in Setup, click “New” next to
“Custom Object Tabs”
6. Select corresponding Object from step #4, select
any Theme and click save
7. Now you can view your data in newly created tab
Connecting to OData with OData4j library
By following these steps, you can establish
connection with OData service through
OData4j client.
1. ODataConsumer consumer = ODataConsumers.create(serviceUrl);
2. Enumerable<OEntity> = consumer.getEntities("customers").execute()
3. OEntity customer = consumer.getEntity("customers", customerId).execute();
4. OEntity customer = consumer.createEntity("customers")
.properties(OProperties.string("email",
"example@example.com"))
.execute();
5. consumer.updateEntity(customer)
.properties(OProperties.string("email", "new@example.com"))
.execute();
6. consumer.deleteEntity("customers", customerId).execute();
Working with REST vs OData in Java
OData vs REST
PROS CONS
Inability to modify RAML and publish
to exchange
Some 400 “Bad request” errors will
just say “invalid format”
SF currently sends POST for entity
update and therefore full integration
with OData is not possible
Fast and easy connectivity from
external systems
Ability to seamlessly switch between
JSON and xml
Ability to modify response data
without any code changes in the API
Exposes metadata containing info
about all data models and operations
Thank you!

More Related Content

What's hot

What's hot (20)

MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021
 
Meetup milano #3 all you need to know before creating your vpc
Meetup milano #3   all you need to know before creating your vpcMeetup milano #3   all you need to know before creating your vpc
Meetup milano #3 all you need to know before creating your vpc
 
Mumbai MuleSoft Meetup 12
Mumbai MuleSoft Meetup 12Mumbai MuleSoft Meetup 12
Mumbai MuleSoft Meetup 12
 
Mumbai MuleSoft Meetup #15
Mumbai MuleSoft Meetup #15Mumbai MuleSoft Meetup #15
Mumbai MuleSoft Meetup #15
 
Nagpur Mulesoft Meetup on CICD using Jenkins
Nagpur Mulesoft Meetup on CICD using JenkinsNagpur Mulesoft Meetup on CICD using Jenkins
Nagpur Mulesoft Meetup on CICD using Jenkins
 
Mumbai MuleSoft Meetup 11
Mumbai MuleSoft Meetup 11Mumbai MuleSoft Meetup 11
Mumbai MuleSoft Meetup 11
 
Mumbai MuleSoft Meetup 13
Mumbai MuleSoft Meetup 13Mumbai MuleSoft Meetup 13
Mumbai MuleSoft Meetup 13
 
[Final] best practices for access management (mule soft meetups riyadh) - j...
[Final] best practices for access management (mule soft meetups   riyadh) - j...[Final] best practices for access management (mule soft meetups   riyadh) - j...
[Final] best practices for access management (mule soft meetups riyadh) - j...
 
CI CD Daridabad MuleSoft meetup
CI CD Daridabad MuleSoft meetupCI CD Daridabad MuleSoft meetup
CI CD Daridabad MuleSoft meetup
 
Meet up slides_mumbai_21032020_final
Meet up slides_mumbai_21032020_finalMeet up slides_mumbai_21032020_final
Meet up slides_mumbai_21032020_final
 
Learn mulesoft from scratch
Learn mulesoft from scratchLearn mulesoft from scratch
Learn mulesoft from scratch
 
Mumbai MuleSoft Meetup #17 - GraphQL
Mumbai MuleSoft Meetup #17 - GraphQLMumbai MuleSoft Meetup #17 - GraphQL
Mumbai MuleSoft Meetup #17 - GraphQL
 
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
 
MuleSoft Surat Live Demonstration Virtual Meetup#1 - Anypoint VPC VPN and DLB
MuleSoft Surat Live Demonstration Virtual Meetup#1 - Anypoint VPC VPN and DLBMuleSoft Surat Live Demonstration Virtual Meetup#1 - Anypoint VPC VPN and DLB
MuleSoft Surat Live Demonstration Virtual Meetup#1 - Anypoint VPC VPN and DLB
 
MuleSoft Surat Virtual Meetup#7 - JSON Logger and Common Error Handling With ...
MuleSoft Surat Virtual Meetup#7 - JSON Logger and Common Error Handling With ...MuleSoft Surat Virtual Meetup#7 - JSON Logger and Common Error Handling With ...
MuleSoft Surat Virtual Meetup#7 - JSON Logger and Common Error Handling With ...
 
Mumbai MuleSoft Meetup #19 - Anypoint monitoring and MQ Integrations
Mumbai MuleSoft Meetup #19 - Anypoint monitoring and MQ IntegrationsMumbai MuleSoft Meetup #19 - Anypoint monitoring and MQ Integrations
Mumbai MuleSoft Meetup #19 - Anypoint monitoring and MQ Integrations
 
Warsaw MuleSoft Meetup #6 - CI/CD
Warsaw MuleSoft Meetup  #6 - CI/CDWarsaw MuleSoft Meetup  #6 - CI/CD
Warsaw MuleSoft Meetup #6 - CI/CD
 
Meetup - Automate your project lifecycle using MuleSoft and Azure DevOps
Meetup - Automate your project lifecycle using MuleSoft and Azure DevOpsMeetup - Automate your project lifecycle using MuleSoft and Azure DevOps
Meetup - Automate your project lifecycle using MuleSoft and Azure DevOps
 
MuleSoft meetup__houston #13
MuleSoft meetup__houston #13MuleSoft meetup__houston #13
MuleSoft meetup__houston #13
 
#3 calicut meetup - understanding slb, dlb and web sockets
#3   calicut meetup - understanding slb, dlb and web sockets#3   calicut meetup - understanding slb, dlb and web sockets
#3 calicut meetup - understanding slb, dlb and web sockets
 

Similar to Moscow MuleSoft meetup May 2021

Similar to Moscow MuleSoft meetup May 2021 (20)

Mule soft Meetup #3
 Mule soft Meetup #3 Mule soft Meetup #3
Mule soft Meetup #3
 
Melbourne Virtual MuleSoft Meetup November 2020
Melbourne Virtual MuleSoft Meetup November 2020Melbourne Virtual MuleSoft Meetup November 2020
Melbourne Virtual MuleSoft Meetup November 2020
 
Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gateway
 
Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gateway
 
Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gateway
 
Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gateway
 
Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gateway
 
Building IAM for OpenStack
Building IAM for OpenStackBuilding IAM for OpenStack
Building IAM for OpenStack
 
Implementing Microservices Security Patterns & Protocols with Spring
Implementing Microservices Security Patterns & Protocols with SpringImplementing Microservices Security Patterns & Protocols with Spring
Implementing Microservices Security Patterns & Protocols with Spring
 
Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gateway
 
Platform configuration on CloudHub 2.0 | MuleSoft Mysore Meetup #29
Platform configuration on CloudHub 2.0 | MuleSoft Mysore Meetup #29Platform configuration on CloudHub 2.0 | MuleSoft Mysore Meetup #29
Platform configuration on CloudHub 2.0 | MuleSoft Mysore Meetup #29
 
Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gateway
 
Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gateway
 
Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gateway
 
Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gateway
 
Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gateway
 
Mule anypoint data gateway
Mule  anypoint data gatewayMule  anypoint data gateway
Mule anypoint data gateway
 
Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gateway
 
Melbourne Virtual MuleSoft Meetup June 2021
Melbourne Virtual MuleSoft Meetup June 2021Melbourne Virtual MuleSoft Meetup June 2021
Melbourne Virtual MuleSoft Meetup June 2021
 
Toronto Virtual Meetup #7 - Anypoint VPC, VPN and DLB Architecture
Toronto Virtual Meetup #7 - Anypoint VPC, VPN and DLB ArchitectureToronto Virtual Meetup #7 - Anypoint VPC, VPN and DLB Architecture
Toronto Virtual Meetup #7 - Anypoint VPC, VPN and DLB Architecture
 

Recently uploaded

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Recently uploaded (20)

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 

Moscow MuleSoft meetup May 2021

  • 1. MAY 13 2021 Moscow MuleSoft Meetup Group
  • 2. 4 ● Introductions ● MuleSoft updates ● Building secure financial APIs ○ Demo “Building Secure financial API” ○ Quiz & Q&A ● 5 minutes break ● Revealing OData Capabilities ○ Demo “How to compile OData on Mulesoft & connect it to Salesforce and mobile apps” ○ Quiz and Q&A session ● Networking time Agenda
  • 3. 5 Introductions A SHOW OF HANDS: Who is new to this Meetup? Dmitry Fundak Leadex Systems MuleSoft Architect Georgy Khomchenko Customertimes Senior MuleSoft Developer
  • 5. MuleSoft Certification Maintenance https://training.mulesoft.com/certification-maintenance Prerequisite: Current certification: MULESOFT CERTIFIED Developer Format: Proctored, 45 minutes, 25 questions Attempts: 2 attempts, then must take full exam Cost: $62.50 USD or ¼ FTC Validity: 2 years 7 LEVEL 1 MULESOFT CERTIFIED Developer MULESOFT CERTIFIED Platform Architect LEVEL 1 MULESOFT CERTIFIED Integration Architect LEVEL 1 Free till May 31st 2021
  • 6. Dmitry Fundak HOW TO BUILD SECURE FINANCIAL APIs with MULESOFT
  • 7. 9 ● Business case - secure financial API ● Anypoint Platform - security features overview ● Demo ● Quiz Agenda
  • 8. Business case — Securely expose financial* API
  • 9. Business case 11 A financial institution already has an internal Cards API and decided to issue whitelabel / co-branding cards with business partners. Goal - expose existing Cards API for partners (fintech, retail, airlines, …): 1. Securely 2. Fast 3. With minimum development efforts
  • 10. API-led architecture of business case 12 System APIs Cards API Card Process API Core System API Core Banking CC System API Card System Partner Process APIs Experience APIs Scope of Demo Use Case Out of scope
  • 12. 14 Policies enable you to enforce regulations to help manage security, control traffic, and improve adaptability of your APIs. You can implement all these regulations with no modification to the code implementation. Security Policies available in API Manager: ● Client ID enforcement ● Cross-Origin resource sharing ● OAuth 2.0 access token enforcement using Mule OAuth provider ● JWT Validation ● IP blacklist ● IP whitelist ● XML threat protection ● JSON threat protection ● Tokenization ● Detokenization Policies
  • 13. DLB enable you to: * Handle load balancing among the different CloudHub workers that run your application. * Define SSL configurations to provide custom certificates and optionally enforce two-way SSL client authentication. * Configure proxy rules that map your applications to custom domains. * This enables you to host your applications under a single domain. 15 Dedicated Load Balancer
  • 14. 16 * SSL Endpoint Configuration Define SSL configurations to provide custom certificates * Two-way SSL client authentication Optionally enforce two-way SSL client authentication Dedicated Load Balancer - SSL / TLS
  • 15. 17 Anypoint Security (add-on) * Edge Policies Anypoint Security policies then act as a default firewall/router capability through which all traffic traverses. * Secrets Manager Anypoint Security provides a secure vault for you to store the TLS certificates and keystores used by your deployments. * Tokenization Service Anypoint Security’s tokenization service protects sensitive data from unwanted exposure by replacing key values, such as a credit card number, with a token.
  • 16. 18 Anypoint Security - Edge Policies ● DoS Policy DoS policies are designed to protect your network nodes against malicious clients trying to flood your network to prevent legitimate traffic to your APIs. ● IP Whitelist Policy Create an IP address whitelist policy to configure an explicit list of IP addresses that can access your deployed endpoints. ● HTTP Limits Policy HTTP limits policies prevent attacks from clients that send large messages that can consume all of your processing bandwidth. ● WAF Policy WAF policies provide the Open Web Application Security Project (OWASP) Core Rule Set (CRS) for checking requests and responses to detect common web application attacks.
  • 17. 19 Anypoint Security - Web Application Firewall
  • 18. 20 Anypoint Security - Tokenization * Format-Preserving Tokens The output tokens have the same format as the sensitive data input. Generated tokens conform to the existing data structure and validations. * Masking Configurable mask character is returned which hides the identity of the sensitive data
  • 19. 21 Anypoint Security - Tokenization * Format-Preserving Tokens The output tokens have the same format as the sensitive data input. Generated tokens conform to the existing data structure and validations. * Masking Configurable mask character is returned which hides the identity of the sensitive data
  • 20. 22 Anypoint Security - Secret Manager * Use secrets manager to write and manage your secrets, keys, and Transport Layer Security (TLS) artifacts Secrets manager is designed to store and manage secrets for supported Anypoint Platform services. It is not a general-purpose storage for secrets. Only trusted services within Anypoint Platform have access to the contents of the secret. * Supported Secret Types TLS Context Keystore Truststore Certificates Certificate Pin Set CRL Distributor
  • 21. Demo
  • 22. Component Architecture 24 This case only about client credentials flow - machine-to-machine (M2M) * If interested, we can demonstrate (on another meetup) a B2C case, where an end-customer gives his/her consent to Application based on PSD2 / OBIE v3
  • 23. Demo 25 Enough slides, and let the demo begin!
  • 24. API secured with... 26 OAuth client credentials flow — Okta* & MuleSoft OAuth Policy IP Whitelist policy — in case we need to restrict access by IP SSL company certificate & Mutual TLS — trusted client certificate 0 lines of code written
  • 25. 28 ● Share: ○ Tweet using the hashtag #MuleSoftMeetups ○ Invite your network to join: https://meetups.mulesoft.com/moscow/ ● Feedback: ○ Fill out the survey feedback and suggest topics for upcoming events ○ Contact MuleSoft at meetups@mulesoft.com for ways to improve the program What’s next?
  • 27. OData API with MuleSoft
  • 28. What is OData? OData stands for Open Data Protocol and was designed to fill the “web” gap between Databases and Database consumers • Provides access to database through HTTP • Unified request and response structures allow seamless integrations • DB Query are passed as a query parameter • HTTP Verbs mimic DB operations: • GET ➔ SELECT • PUT ➔ UPDATE • POST ➔ INSERT • DELETE ➔ DELETE https://services.odata.org/OData/OData.svc/Category(1)/Products?$top=2&$orderby=name Service Root URI Resource Path Query Options
  • 29. OData and MuleSoft MuleSoft provides OData plug-in for Odata API development 1. Go to “Help -> Install new software” and install most recent version of “APIkit for ODATA Update Site” 2. Create Odata.raml file in src/main/resources/api with datatypes available in source database 3. Right click on Odata.raml and select “Mule -> Generate Odata API from RAML types” src/main/resources/api/Odata.raml Similar to generating flows from RAML, after these steps APIkit will generate stubs for each Odata endpoint in api.xml
  • 30. Implementing OData endpoints Unlike plain REST endpoints there are few rules that we must follow: 1. All endpoints should return data in one specific way: { “entries” : payload } 2. Except “format” query parameter all other parameters should be manually processed and transformed to SQL query (DW script is available with OData MuleSoft example) 3. OData information like keys (fields of entity) or entity name itself is available at startup in vars.odata object 4. POST response requires created entity to be returned, unlike REST where either ID is returned or empty payload with 201 code
  • 32. OData as an External Data Source By following these steps, you can bind your Mule OData service to SF’s external data source. It will immediately display all data in custom tab 1. Navigate to Setup -> External Data Sources -> New External Data Source 2. Enter name of the Data Source and select type “Salesforce OData Connect: OData 2.0” 3. In URL provide URL of your OData.svc file like following: https://services.odata.org/OData/OData.svc 4. Click “New” under external object and select Object that was detected from .svc file 5. Navigate to “Tabs” in Setup, click “New” next to “Custom Object Tabs” 6. Select corresponding Object from step #4, select any Theme and click save 7. Now you can view your data in newly created tab
  • 33. Connecting to OData with OData4j library By following these steps, you can establish connection with OData service through OData4j client. 1. ODataConsumer consumer = ODataConsumers.create(serviceUrl); 2. Enumerable<OEntity> = consumer.getEntities("customers").execute() 3. OEntity customer = consumer.getEntity("customers", customerId).execute(); 4. OEntity customer = consumer.createEntity("customers") .properties(OProperties.string("email", "example@example.com")) .execute(); 5. consumer.updateEntity(customer) .properties(OProperties.string("email", "new@example.com")) .execute(); 6. consumer.deleteEntity("customers", customerId).execute();
  • 34. Working with REST vs OData in Java
  • 35. OData vs REST PROS CONS Inability to modify RAML and publish to exchange Some 400 “Bad request” errors will just say “invalid format” SF currently sends POST for entity update and therefore full integration with OData is not possible Fast and easy connectivity from external systems Ability to seamlessly switch between JSON and xml Ability to modify response data without any code changes in the API Exposes metadata containing info about all data models and operations