+ All Categories
Home > Technology > Co musí banka udělat pro zapojení do Zingly?

Co musí banka udělat pro zapojení do Zingly?

Date post: 12-Apr-2017
Category:
Upload: petr-dvorak
View: 468 times
Download: 0 times
Share this document with a friend
90
Co musí banka udělat pro zapojení do Zingly?
Transcript
Page 1: Co musí banka udělat pro zapojení do Zingly?

Co musí banka udělat pro zapojení do Zingly?

Page 2: Co musí banka udělat pro zapojení do Zingly?

Petr Dvořák CEO at Lime

E-mail: [email protected]

Twitter: @joshis_tweets

Page 3: Co musí banka udělat pro zapojení do Zingly?

Sdílejte přátelům a známým

Otázky lze klást v Q&A boxu

Odkaz na Slideshare v popisu videa

Záznam bude dostupný on-line

Page 4: Co musí banka udělat pro zapojení do Zingly?

Infrastruktura Zingly

Page 5: Co musí banka udělat pro zapojení do Zingly?

PowerAuth Server PowerAuth Server

Zingly API Server Zingly API Server

Zingly Multi-Banking Hub Server

Banka A Banka B

Ban

kyUži

vate

PowerAuth Server

Zin

gly

Internetové bankovnictví

Internetové bankovnictví

Page 6: Co musí banka udělat pro zapojení do Zingly?

PowerAuth Server PowerAuth Server

Zingly API Server Zingly API Server

Zingly Multi-Banking Hub Server

Banka A Banka B

Ban

kyUži

vate

PowerAuth Server

Zin

gly

Internetové bankovnictví

Internetové bankovnictví

Page 7: Co musí banka udělat pro zapojení do Zingly?

PowerAuth Server PowerAuth Server

Zingly API Server Zingly API Server

Zingly Multi-Banking Hub Server

Banka A Banka B

Ban

kyUži

vate

PowerAuth Server

Zin

gly

Internetové bankovnictví

Internetové bankovnictví

Page 8: Co musí banka udělat pro zapojení do Zingly?

PowerAuth Server

Zingly API ServerInternetové bankovnictví

SOAP REST-ish

SOAP REST-ish

PowerAuth 2.0 Standard API Zingly Banking API

Page 9: Co musí banka udělat pro zapojení do Zingly?

PowerAuth Server

Zingly API ServerInternetové bankovnictví

Internal Banking Infrastructure

Plugin / Adapter Plugin / Adapter

Connector

Page 10: Co musí banka udělat pro zapojení do Zingly?

Použité technologie

Page 11: Co musí banka udělat pro zapojení do Zingly?

Spring Boot

JPA + Hibernate

Aplikace - Java EE 7

Page 12: Co musí banka udělat pro zapojení do Zingly?

OracleDB, IBM DB2,

MySQL, PostgreSQL

Databáze - JPA2.0

Page 13: Co musí banka udělat pro zapojení do Zingly?

Github

Maven

Development

*

* komerční support

Page 14: Co musí banka udělat pro zapojení do Zingly?

SOAP

REST

Service API

Page 15: Co musí banka udělat pro zapojení do Zingly?

Postup nasazování

Page 16: Co musí banka udělat pro zapojení do Zingly?

PowerAuth Server

Zingly API ServerInternetové bankovnictví

1. Nasazení PowerAuth 2.0 Serveru

Page 17: Co musí banka udělat pro zapojení do Zingly?

PowerAuth Server

Zingly API ServerInternetové bankovnictví

2. Integrace s IB

Page 18: Co musí banka udělat pro zapojení do Zingly?

PowerAuth Server

Zingly API ServerInternetové bankovnictví

3. Nasazení Zingly API Serveru

Page 19: Co musí banka udělat pro zapojení do Zingly?

Nasazení PowerAuth 2.0 Serveru

https://github.com/lime-company/lime-security-powerauth/blob/master/powerauth-docs/source/tutorial/deployment.md

Page 20: Co musí banka udělat pro zapojení do Zingly?

1. Stáhněte si PowerAuth 2.0 Serverhttps://github.com/lime-company/lime-security-powerauth/releases/tag/0.8

Page 21: Co musí banka udělat pro zapojení do Zingly?

2. Přidejte DB connector na classpathmysql-connector-java-${VERSION}.jar

Page 22: Co musí banka udělat pro zapojení do Zingly?

3. Vytvořte databázové schéma

Page 23: Co musí banka udělat pro zapojení do Zingly?
Page 24: Co musí banka udělat pro zapojení do Zingly?

4. Nastavte parametry pro připojení PowerAuth serveru do DB

Page 25: Co musí banka udělat pro zapojení do Zingly?

spring.datasource.url=jdbc:mysql://localhost:3306/powerauth spring.datasource.username=powerauth spring.datasource.password= spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.hibernate.ddl-auto=none

Page 26: Co musí banka udělat pro zapojení do Zingly?

5. Nasaďte WAR soubor do Java EE aplikačního containeru

Nebo spusťte ”java -jar powerauth-java-server.war”

Page 27: Co musí banka udělat pro zapojení do Zingly?

Demo

Page 28: Co musí banka udělat pro zapojení do Zingly?

PowerAuth Server

Zingly API ServerInternetové bankovnictví

SOAP REST-ish

PowerAuth 2.0 Standard API Zingly Banking API

SOAP REST-ish

Page 29: Co musí banka udělat pro zapojení do Zingly?

PowerAuth 2.0 Admin

Page 30: Co musí banka udělat pro zapojení do Zingly?

Správa aplikací

Page 31: Co musí banka udělat pro zapojení do Zingly?

Přehled aktivací uživatele

Page 32: Co musí banka udělat pro zapojení do Zingly?

Nová aktivace

Page 33: Co musí banka udělat pro zapojení do Zingly?

Detail a správa aktivace

Page 34: Co musí banka udělat pro zapojení do Zingly?

1. Stáhněte si PowerAuth 2.0 Adminhttps://github.com/lime-company/lime-security-powerauth/releases/tag/0.8

Page 35: Co musí banka udělat pro zapojení do Zingly?

2. Nastavte cestu k PowerAuth Serveru

Page 36: Co musí banka udělat pro zapojení do Zingly?

powerauth.service.url=http://localhost:8080/powerauth/soap

Page 37: Co musí banka udělat pro zapojení do Zingly?

3. Nasaďte WAR soubor do Java EE aplikačního containeru

Nebo spusťte ”java -jar powerauth-admin.war”

Page 38: Co musí banka udělat pro zapojení do Zingly?

Demo

Page 39: Co musí banka udělat pro zapojení do Zingly?

PowerAuth Server

Zingly API ServerInternetové bankovnictví

SOAP REST-ish

PowerAuth 2.0 Standard API Zingly Banking API

SOAP REST-ish

PowerAuth Admin

Page 40: Co musí banka udělat pro zapojení do Zingly?

Integrace PowerAuth 2.0 a Internetbankingu

https://github.com/lime-company/lime-security-powerauth/blob/master/powerauth-docs/source/tutorial/internet-banking.md

Page 41: Co musí banka udělat pro zapojení do Zingly?

Admin ~ Internetbanking

Page 42: Co musí banka udělat pro zapojení do Zingly?

1. Přidejte do projektu Maven závislost

Page 43: Co musí banka udělat pro zapojení do Zingly?

<dependency> <groupId>io.getlime.security</groupId> <artifactId>powerauth-java-client</artifactId> <version>0.0.8</version> </dependency>

Page 44: Co musí banka udělat pro zapojení do Zingly?

<dependency> <groupId>io.getlime.security</groupId> <artifactId>powerauth-java-client</artifactId> <version>0.0.8</version> </dependency>

Page 45: Co musí banka udělat pro zapojení do Zingly?

<dependency> <groupId>io.getlime.security</groupId> <artifactId>powerauth-java-client</artifactId> <version>0.0.8</version> </dependency>

Page 46: Co musí banka udělat pro zapojení do Zingly?

<dependency> <groupId>io.getlime.security</groupId> <artifactId>powerauth-java-client</artifactId> <version>0.0.8</version> </dependency>

Page 47: Co musí banka udělat pro zapojení do Zingly?

2. Napojte se na PowerAuth Server

Page 48: Co musí banka udělat pro zapojení do Zingly?

@Configuration @ComponentScan(basePackages = {"io.getlime"}) public class PowerAuthWebServiceConfiguration {

@Bean public Jaxb2Marshaller marshaller() { Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); marshaller.setContextPath("io.getlime.powerauth.soap"); return marshaller; }

@Bean public PowerAuthServiceClient powerAuthClient(Jaxb2Marshaller m) { PowerAuthServiceClient client = new PowerAuthServiceClient(); client.setDefaultUri("http://localhost:8080/powerauth/soap"); client.setMarshaller(marshaller); client.setUnmarshaller(marshaller); return client; }

}

Page 49: Co musí banka udělat pro zapojení do Zingly?

@Configuration @ComponentScan(basePackages = {"io.getlime"}) public class PowerAuthWebServiceConfiguration {

@Bean public Jaxb2Marshaller marshaller() { Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); marshaller.setContextPath("io.getlime.powerauth.soap"); return marshaller; }

@Bean public PowerAuthServiceClient powerAuthClient(Jaxb2Marshaller m) { PowerAuthServiceClient client = new PowerAuthServiceClient(); client.setDefaultUri("http://localhost:8080/powerauth/soap"); client.setMarshaller(marshaller); client.setUnmarshaller(marshaller); return client; }

}

Page 50: Co musí banka udělat pro zapojení do Zingly?

@Configuration @ComponentScan(basePackages = {"io.getlime"}) public class PowerAuthWebServiceConfiguration {

@Bean public Jaxb2Marshaller marshaller() { Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); marshaller.setContextPath("io.getlime.powerauth.soap"); return marshaller; }

@Bean public PowerAuthServiceClient powerAuthClient(Jaxb2Marshaller m) { PowerAuthServiceClient client = new PowerAuthServiceClient(); client.setDefaultUri("http://localhost:8080/powerauth/soap"); client.setMarshaller(marshaller); client.setUnmarshaller(marshaller); return client; }

}

Page 51: Co musí banka udělat pro zapojení do Zingly?

@Configuration @ComponentScan(basePackages = {"io.getlime"}) public class PowerAuthWebServiceConfiguration {

@Bean public Jaxb2Marshaller marshaller() { Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); marshaller.setContextPath("io.getlime.powerauth.soap"); return marshaller; }

@Bean public PowerAuthServiceClient powerAuthClient(Jaxb2Marshaller m) { PowerAuthServiceClient client = new PowerAuthServiceClient(); client.setDefaultUri("http://localhost:8080/powerauth/soap"); client.setMarshaller(marshaller); client.setUnmarshaller(marshaller); return client; }

}

Page 52: Co musí banka udělat pro zapojení do Zingly?

3. Používejte PowerAuthServiceClient ve vaší aplikaci

Page 53: Co musí banka udělat pro zapojení do Zingly?

@Controller @RequestMapping(value = "/ib/settings") public class AuthenticationController {

@Autowired private PowerAuthServiceClient client;

// ... Controller code

List<Activations> aL = client.getActivationListForUser(uid);

}

Page 54: Co musí banka udělat pro zapojení do Zingly?

@Controller @RequestMapping(value = "/ib/settings") public class AuthenticationController {

@Autowired private PowerAuthServiceClient client;

// ... Controller code

List<Activations> aL = client.getActivationListForUser(uid);

}

Page 55: Co musí banka udělat pro zapojení do Zingly?

Blokace / odblokování aktivace

Odstranění aktivace

Nová aktivace a “commit” aktivace

Přehled aktivací

Page 56: Co musí banka udělat pro zapojení do Zingly?

PowerAuth Server

Zingly API ServerInternetové bankovnictví

SOAP REST-ish

PowerAuth 2.0 Standard API Zingly Banking API

SOAP REST-ish

PowerAuth Admin

Page 57: Co musí banka udělat pro zapojení do Zingly?

Nasazení Zingly API Serveru

Page 58: Co musí banka udělat pro zapojení do Zingly?

Open-source *

* již brzy

Page 59: Co musí banka udělat pro zapojení do Zingly?

PowerAuth Server

Zingly API ServerInternetové bankovnictví

SOAP REST-ish

PowerAuth 2.0 Standard API Zingly Banking API

SOAP REST-ish

PowerAuth Admin

Page 60: Co musí banka udělat pro zapojení do Zingly?

PowerAuth Server

Zingly API ServerInternetové bankovnictví

SOAP REST-ish

SOAP REST-ish

PowerAuth 2.0 Standard API Zingly Banking API

Bankovní službyPowerAuth

Admin

Page 61: Co musí banka udělat pro zapojení do Zingly?

Orchestruje obchodní logiku

Služby pro přehledy účtů a transakcí

Vystavuje PowerAuth 2.0 Standard API

Integrace s PowerAuth 2.0 Serverem

Služby pro realizaci platby

Page 62: Co musí banka udělat pro zapojení do Zingly?

Orchestruje obchodní logiku

Služby pro přehledy účtů a transakcí

Vystavuje PowerAuth 2.0 Standard API

Integrace s PowerAuth 2.0 Serverem

Služby pro realizaci platby

Page 63: Co musí banka udělat pro zapojení do Zingly?

1. Stáhněte si Zingly API ServerTBD - TODO - SOON

Page 64: Co musí banka udělat pro zapojení do Zingly?

2. Nastavte cestu k PowerAuth Serveru

Page 65: Co musí banka udělat pro zapojení do Zingly?

powerauth.service.url=http://localhost:8080/powerauth/soap

Page 66: Co musí banka udělat pro zapojení do Zingly?

3. Rozšiřte projekt o vaše specifické technologie a knihovny

Page 67: Co musí banka udělat pro zapojení do Zingly?

4. Naimplementujte bankovní službu

Page 68: Co musí banka udělat pro zapojení do Zingly?

public interface ZinglyService { public List<AccountModel> getAccountsForUser(String userId); public boolean canGetTransactions(String userId, String iban); public List<TransactionModel> getTransactionsForAccount( String iban, Date dateFrom, Date dateTo, BigInteger offset, BigInteger itemCount ); public boolean canExecutePayment(String userId, String iban); public List<ErrorModel> validatePayment(PaymentModel payment); public PaymentModel executePayment(PaymentModel payment);

// ...

}

Page 69: Co musí banka udělat pro zapojení do Zingly?

public interface ZinglyService { public List<AccountModel> getAccountsForUser(String userId); public boolean canGetTransactions(String userId, String iban); public List<TransactionModel> getTransactionsForAccount( String iban, Date dateFrom, Date dateTo, BigInteger offset, BigInteger itemCount ); public boolean canExecutePayment(String userId, String iban); public List<ErrorModel> validatePayment(PaymentModel payment); public PaymentModel executePayment(PaymentModel payment);

// ...

}

Page 70: Co musí banka udělat pro zapojení do Zingly?

Ukázka kódu

Page 71: Co musí banka udělat pro zapojení do Zingly?

PowerAuth Server

Zingly API ServerInternetové bankovnictví

SOAP REST-ish

SOAP REST-ish

PowerAuth 2.0 Standard API Zingly Banking API

Bankovní službyPowerAuth

Admin

Page 72: Co musí banka udělat pro zapojení do Zingly?

Testování integrace

https://github.com/lime-company/lime-security-powerauth/blob/master/powerauth-docs/source/tutorial/console-client-app.md

Page 73: Co musí banka udělat pro zapojení do Zingly?
Page 74: Co musí banka udělat pro zapojení do Zingly?

1. Stáhněte si PowerAuth 2.0 CMDhttps://github.com/lime-company/lime-security-powerauth/releases

Page 75: Co musí banka udělat pro zapojení do Zingly?

2. Připravte si konfigurační soubor

Page 76: Co musí banka udělat pro zapojení do Zingly?

$ cat /tmp/pamk.json { "applicationName": "PowerAuth 2.0 Reference Client", "applicationId": "Xg2sNup4wH7UQdchEld10w==", "applicationSecret": "+k9EBCszvcDOalMK9FZYiQ==", "masterPublicKey": "BByU43YKRNkzB+1/rahhaJC4kiGNiciYrcTBrL8=" }

Page 77: Co musí banka udělat pro zapojení do Zingly?

3. Testujte integraci :-)

Page 78: Co musí banka udělat pro zapojení do Zingly?

$ java -jar powerauth-java-cmd.jar --url "http://localhost:8080/zingly-api" --config-file "/tmp/pamk.json" --status-file "/tmp/pa_status.json" --method "prepare" --password "1234" --activation-code "F3CCT-FNOUS-GEVJF-O3HMV"

Page 79: Co musí banka udělat pro zapojení do Zingly?

$ cat /tmp/pa_status.json { "activationId" : "24ac43a6-375e-4428-843a-84a2faa87e8e" "counter" : 4, "signaturePossessionKey" : "CwCviJR/wGqm8wNrNe4JGA==", "signatureKnowledgeKeyEncrypted" : "WFKHFrezmYuFAUToAQ==", "signatureKnowledgeKeySalt" : "RmDQ8hwsy0V/Gi1GHDKjWw==", "signatureBiometryKey" : "K2ZrnBP/AU2dWheFJOQKvw==", "transportMasterKey" : "kp2sNKVGepV9xtTwLXs/5g==", "encryptedDevicePrivateKey" : "17LLl/C8pYo/YA+w4Z6z1LLZa2U", "serverPublicKey" : "BEWx7a6LnkW7ckbJKUz2IINY5VSL0U6INwM=" }

Page 80: Co musí banka udělat pro zapojení do Zingly?

$ cat /tmp/pa_status.json { "activationId" : "24ac43a6-375e-4428-843a-84a2faa87e8e" "counter" : 4, "signaturePossessionKey" : "CwCviJR/wGqm8wNrNe4JGA==", "signatureKnowledgeKeyEncrypted" : “WFKHFrezmYuFAUToAQ==", "signatureKnowledgeKeySalt" : "RmDQ8hwsy0V/Gi1GHDKjWw==", "signatureBiometryKey" : "K2ZrnBP/AU2dWheFJOQKvw==", "transportMasterKey" : "kp2sNKVGepV9xtTwLXs/5g==", "encryptedDevicePrivateKey" : "17LLl/C8pYo/YA+w4Z6z1LLZa2U", "serverPublicKey" : "BEWx7a6LnkW7ckbJKUz2IINY5VSL0U6INwM=" }

Page 81: Co musí banka udělat pro zapojení do Zingly?

$ cat /tmp/pa_status.json { "activationId" : "24ac43a6-375e-4428-843a-84a2faa87e8e" "counter" : 4, "signaturePossessionKey" : "CwCviJR/wGqm8wNrNe4JGA==", "signatureKnowledgeKeyEncrypted" : "WFKHFrezmYuFAUToAQ==", "signatureKnowledgeKeySalt" : "RmDQ8hwsy0V/Gi1GHDKjWw==", "signatureBiometryKey" : "K2ZrnBP/AU2dWheFJOQKvw==", "transportMasterKey" : "kp2sNKVGepV9xtTwLXs/5g==", "encryptedDevicePrivateKey" : "17LLl/C8pYo/YA+w4Z6z1LLZa2U", "serverPublicKey" : "BEWx7a6LnkW7ckbJKUz2IINY5VSL0U6INwM=" }

Page 82: Co musí banka udělat pro zapojení do Zingly?

$ cat /tmp/pa_status.json { "activationId" : "24ac43a6-375e-4428-843a-84a2faa87e8e" "counter" : 4, "signaturePossessionKey" : "CwCviJR/wGqm8wNrNe4JGA==", "signatureKnowledgeKeyEncrypted" : "WFKHFrezmYuFAUToAQ==", "signatureKnowledgeKeySalt" : "RmDQ8hwsy0V/Gi1GHDKjWw==", "signatureBiometryKey" : "K2ZrnBP/AU2dWheFJOQKvw==", "transportMasterKey" : "kp2sNKVGepV9xtTwLXs/5g==", "encryptedDevicePrivateKey" : "17LLl/C8pYo/YA+w4Z6z1LLZa2U", "serverPublicKey" : "BEWx7a6LnkW7ckbJKUz2IINY5VSL0U6INwM=" }

Page 83: Co musí banka udělat pro zapojení do Zingly?

$ cat /tmp/pa_status.json { "activationId" : "24ac43a6-375e-4428-843a-84a2faa87e8e" "counter" : 4, "signaturePossessionKey" : "CwCviJR/wGqm8wNrNe4JGA==", "signatureKnowledgeKeyEncrypted" : "WFKHFrezmYuFAUToAQ==", "signatureKnowledgeKeySalt" : "RmDQ8hwsy0V/Gi1GHDKjWw==", "signatureBiometryKey" : "K2ZrnBP/AU2dWheFJOQKvw==", "transportMasterKey" : "kp2sNKVGepV9xtTwLXs/5g==", "encryptedDevicePrivateKey" : "17LLl/C8pYo/YA+w4Z6z1LLZa2U", "serverPublicKey" : "BEWx7a6LnkW7ckbJKUz2IINY5VSL0U6INwM=" }

Page 84: Co musí banka udělat pro zapojení do Zingly?

$ cat /tmp/pa_status.json { "activationId" : "24ac43a6-375e-4428-843a-84a2faa87e8e" "counter" : 4, "signaturePossessionKey" : "CwCviJR/wGqm8wNrNe4JGA==", "signatureKnowledgeKeyEncrypted" : "WFKHFrezmYuFAUToAQ==", "signatureKnowledgeKeySalt" : "RmDQ8hwsy0V/Gi1GHDKjWw==", "signatureBiometryKey" : "K2ZrnBP/AU2dWheFJOQKvw==", "transportMasterKey" : "kp2sNKVGepV9xtTwLXs/5g==", "encryptedDevicePrivateKey" : "17LLl/C8pYo/YA+w4Z6z1LLZa2U", "serverPublicKey" : "BEWx7a6LnkW7ckbJKUz2IINY5VSL0U6INwM=" }

Page 85: Co musí banka udělat pro zapojení do Zingly?

$ cat /tmp/pa_status.json { "activationId" : "24ac43a6-375e-4428-843a-84a2faa87e8e" "counter" : 4, "signaturePossessionKey" : "CwCviJR/wGqm8wNrNe4JGA==", "signatureKnowledgeKeyEncrypted" : "WFKHFrezmYuFAUToAQ==", "signatureKnowledgeKeySalt" : "RmDQ8hwsy0V/Gi1GHDKjWw==", "signatureBiometryKey" : "K2ZrnBP/AU2dWheFJOQKvw==", "transportMasterKey" : "kp2sNKVGepV9xtTwLXs/5g==", "encryptedDevicePrivateKey" : "17LLl/C8pYo/YA+w4Z6z1LLZa2U", "serverPublicKey" : "BEWx7a6LnkW7ckbJKUz2IINY5VSL0U6INwM=" }

Page 86: Co musí banka udělat pro zapojení do Zingly?

PowerAuth Server

Zingly API ServerInternetové bankovnictví

SOAP REST-ish

SOAP REST-ish

PowerAuth 2.0 Standard API Zingly Banking API

Bankovní službyPowerAuth

Admin

Page 87: Co musí banka udělat pro zapojení do Zingly?

PowerAuth Server PowerAuth Server

Zingly API Server Zingly API Server

Zingly Multi-Banking Hub Server

Banka A Banka B

Ban

kyUži

vate

PowerAuth Server

Zin

gly

Internetové bankovnictví

Internetové bankovnictví

Page 88: Co musí banka udělat pro zapojení do Zingly?

Děkuji

Petr Dvořák e-mail: [email protected] twitter: @zinglyapp

http://zingly.cz/

Page 89: Co musí banka udělat pro zapojení do Zingly?

31.3., 15:00 - 16:00 Dopad multi-bankingu a otevřených bankovních API do obchodního fungování bank

Page 90: Co musí banka udělat pro zapojení do Zingly?

Otázky? :-)

Petr Dvořák e-mail: [email protected] twitter: @zinglyapp

http://zingly.cz/


Recommended