Hilfe
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

Probleme bei Integration von REST API für Privatkunden

MoritzG
Autor
3 Beiträge

Hallo zusammen,

 

ich bin dabei den Zugriff auf die Comdirect Schnittstelle in meinem Pet-Project zu integrieren. Ich habe ein paar Fragen und hoffe es kann mir jemand weiterhelfen. Falls ja, schonmal danke im Voraus!

 

Meine momentane Situation:

Ich habe die Doku Schritt für Schritt verfolgt und bin in dem OAuth2-Verfahren soweit gekommen, dass ich nach Schritt 2.5 "CD Secondary Flow" ein "200 OK" bekomme.

Leider bekomme ich bei allen weiteren Anfragen an "ACCOUNT" ein "403 Forbidden" zurück und ich weiß nicht wieso.

 

Frage 1: "Abruf Session-Status"

So wie ich es verstehe geht es in Schritt 2.2 darum ein Session-Objekt für alle weiteren Schritte anzufordern. 

Ist Schritt 2.2 auch dafür da um zu ermitteln, ob die TAN-Authentifizierung bereits erfolgt ist?

Kann man diesen Schritt auch im späteren Verlauf wiederholen, um dem Programm die Möglichkeit zu geben, zu ermitteln, ob die TAN bereits vom Nutzer freigeben wurde?

 

Frage 1.1: "Abruf Session-Status"

In der Beschreibung zum Session-Objekt steht, dass "activated2FA" angibt, ob eine 2-Faktor-Authentifizierung vorliegt.

Bedeutet "true" in diesem Fall, dass das Verfahren 2-Faktor-Authentifizierung im Allgemeinen vorliegt ,unabhängig von der Freigabe, oder ob die 2-Faktor-Authentifizierung erfolgreich durchgeführt wurde?

 

Frage 2: "sessionId"

Im Beispiel-Header bei Punkt 2.2 "Abruf Session-Status" ist angegeben, dass die "sessionId" diesem Wert entspricht: "123_beliebige_ID_fuer_Session_12".

Im Moment erzeuge ich für die "sessionId" eine zufällige zehn-stellige Nummer und für die requestId eine sieben-stellige.

Soll der Nutzer zufällige "sessionIds" und "requestIds" generieren? Wenn ja, wie lang sollen diese sein?

 

Frage 2.1: "sessionId"

In der Angabe zum Path bei Punkt 2.3 "Anlage Validierung einer Session-Tan" ist angeben dass eine "sessionId" benötigt wird.

Bei der Beschreibung dieser "sessionId" ist angeben, dass es sich um den "identifier" aus dem Session-Objekt handelt.

In der Beschreibung des Session-Objekts unter 2.2.1 ist angegeben, dass der "identifier" die UUID der Session und nicht meine zufällig generierte "sessionId" ist.

Im Weiteren steht in jedem Beispiel zur "x-http-request-info" sowie in jedem Beispiel zum Body bei "sessionId" die Angabe "123_beliebige_ID_fuer_Session_12".

Wann verwendet man die von mir generierte "sessionId" und wann die von Comdirect erzeugte UUID?

 

Frage 3: "Aktivierung einer Session-Tan"

In meiner photoTan-App bekomme ich nach Schritt 2.3 "Anlage Validierung einer Session-TAN" einen Auftrag zur Tan-Freigabe auf meine Photo-Tan-App auf meinem Handy geschickt.

Im Header der Response nach Schritt 2.3 konnte ich nachvollziehen, dass es sich dabei um das Verfahren "P_TAN_PUSH" handelt.

In der Beschreibung zum Response-Header unter 2.3 steht bei "challenge", dass im Falle von P_TAN_PUSH die challenge entfällt.

Heißt das, dass ich Punkt 2.4 "Aktivierung einer Session-TAN" auslassen kann?

Wenn ich Schritt 2.4 auslasse, bekomme ich nach Schritt 2.5 "CD Secondary Flow" kein "200 OK" mehr sondern ein "400 Bad Request".

 

Frage 3.1: "Aktivierung einer Session-Tan"

Wenn ich Schritt 2.1 bis 2.3 ausführe, das Programm kurz warten lasse um meine Photo-Tan zu authentifizieren und dann Schritt 2.4 und Schritt 2.5 ausführe bekomme ich jeweils ein "200 OK".

Wenn ich Schritt 2.1 bis 2.4 direkt hintereinander ausführe bekomme ich nach 2.4 ein "400 Bad Request".

Wenn ich Schritt 2.1 bis 2.3 ausführe, das Programm kurz warten lasse um meine Photo-Tan zu authentifizieren, 2.4 auslasse, und dann Schritt 2.5 ausführe, bekomme ich ein "400 Bad Request"

Wozu dient Punkt 2.4 "Aktivierung einer Session-Tan" genau? Geht es darum die Tan zu authentifizieren? Oder geht es darum die Tan nach der Authentifizierung zu aktivieren? Wenn ja, warum ist das notwendig?

 

Frage 4:  Ist Schritt 2.5 "CD Secondary Flow" optional?

Ich möchte lediglich meine Konto und Umsatzdaten von "ACCOUNTS" abfragen und benötige keinen Zugriff auf Banking- oder Brokerage-Schnittstellen.

 

 

Nochmal Danke im Voraus, falls sich jemand die Zeit nimmt mir zu helfen!

 

 

Viele Grüße,

 

Moritz.

 

 

Dies sind die Details der Rückmeldungen vom Server:

In diesem Fall habe ich Schritt 2.1 bis 2.3 ausgeführt, das Programm 10 Sekunden warten lassen, während ich die Tan freigebe,  Schritt 2.4, 2.5 und Schritt 4.1.1 "Abruf AccountBalances alle Konten" ausgeführt.

 

Response Schritt 2.4:

statusCode: 200 OK

Body: 

{"identifier":"3434221F3B9442A6A4FF494ECE3962B5","sessionTanActive":true,"activated2FA":true}

Headers:

Server: nginx
Date: Sun, 23 Oct 2022 11:43:06 GMT
Content-Type: application/json;charset=UTF-8
Connection: close
Vary: Accept-Encoding
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
Cache-Control: no-cache, no-store, max-age=0
Referrer-Policy: strict-origin-when-cross-origin
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Frame-Options: sameorigin
X-XSS-Protection: 1; mode=block
Content-Language: en-US
set-cookie: qSession=22172003.7418472395:6917a5fd86c6; domain=.comdirect.de; path=/; secure

 

Response Schritt 2.5:

statusCode: 200 OK

Body:  {"access_token":"8f1a6d1d-a14c-477c-acff-c150b10a5f03","token_type":"bearer","refresh_token":"5dd92fd2-22fe-43ac-b61b-bd54db7ef088","expires_in":599,"scope":"BANKING_RW BROKERAGE_RW MESSAGES_RO REPORTS_RO SESSION_RW","kdnr":"<replaced for privacy>","bpid":<replaced for privacy>,"kontaktId":<replaced for privacy>}

Headers:

cache-control=[no-store]
connection=[close]
content-language=[en-US]
content-type=[application/json;charset=UTF-8]
date=[Sun
23 Oct 2022 11:57:18 GMT]
referrer-policy=[strict-origin-when-cross-origin]
server=[nginx]
set-cookie=[qSession=22172003.6a0b1e77157c4f4dd3031d5; domain=.comdirect.de; path=/; secure]
strict-transport-security=[max-age=31536000; includeSubDomains]
vary=[Accept-Encoding
Accept-Encoding
Origin
Access-Control-Request-Method
Access-Control-Request-Headers]
x-content-type-options=[nosniff]
x-frame-options=[sameorigin]
x-xss-protection=[1; mode=block

 

Response Schritt 4.1.1:

statusCode: 403 Forbidden

Body: no body

Headers:

cache-control=[no-cache
no-store
max-age=0]
connection=[keep-alive]
content-language=[en-US]
content-length=[0]
content-type=[*/*;charset=UTF-8]
date=[Sun
23 Oct 2022 11:57:18 GMT]
referrer-policy=[strict-origin-when-cross-origin]
server=[nginx]
strict-transport-security=[max-age=31536000; includeSubDomains]
vary=[Origin
Access-Control-Request-Method
Access-Control-Request-Headers]
x-content-type-options=[nosniff]
x-frame-options=[sameorigin]
x-xss-protection=[1; mode=block]

0 ANTWORTEN