Login Daten Management

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Login Daten Management

Beitrag von sap_enthusiast (Specialist / 102 / 29 / 23 ) »
Hallo zusammen,

ich bin dabei eine Lösung für eine sichere und sinnvolle Login Datenmanagement in SAP zu erarbeiten.
Szenario:
Im Laufe eines Workflows muss eine SOAP Webservice aufgerufen werden. Von Parametern abhängig können es unterschiedliche Benutzer/Passwort Kombinationen sein.
Mein Idee wäre gewesen in SOAP je Benutzer einen logischen Port anzulegen und dann im Programm den Aufruf dynamisch zu gestalten.

Hättet ihr eine bessere Idee wie man das lösen kann?

Danke für euren Input!
sap_enthusiast

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Login Daten Management

Beitrag von a-dead-trousers (Top Expert / 4450 / 227 / 1196 ) »
Die Lösung ist gut, weil du da die Passwörter im SAP Keystore ablegen kannst und sie nicht irgendwo "Plaintext" herumliegen. Was das bestimmen der logischen Ports angeht, gibt es auch eine API-Methode um alle zu einem Webservice hinterlegten Einstellungen abzufragen (mit Ausnahme der Passwörter natürlich). Du musst dir also nicht zwangsläufig eine Naming-by-Konvention Strategie überlegen sondern kannst auch auf zusätzliche Informationen vom logischen Port zugreifen (z.B. Benutzername usw.)

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
sap_enthusiast

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Login Daten Management

Beitrag von sap_enthusiast (Specialist / 102 / 29 / 23 ) »
Vielen Dank dir!
Kannst mir ggf sagen welche API oder Klasse das ist? Ich suche die ganze Zeit finde aber nix...

Vielen Dank!

Re: Login Daten Management

Beitrag von a-dead-trousers (Top Expert / 4450 / 227 / 1196 ) »
IF_SRT_PUBLIC_QUERY_HANDLER=>GET_LP_NAMES
IF_SRT_PUBLIC_LOGICAL_PORT=>GET_PROPERTIES

Zum Instanzieren brauchst du CL_SRT_PUBLIC_FACTORY.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
sap_enthusiast

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Login Daten Management

Beitrag von sap_enthusiast (Specialist / 102 / 29 / 23 ) »
@a-dead-trousers

Vielen Dank! Es sieht richtig gut aus.
Ich habe einen kleinen Schnipsel hier kopiert falls jemand so eine ähnliche Herausforderung stößt.

Code: Alles auswählen.

DATA : lr_proxy      TYPE REF TO proxy_class,
       ls_input      TYPE ddic_struc,
       ls_output     TYPE ddic_struc,
       lv_port_found TYPE abap_bool.

CONSTANTS: lc_proxy_class_name    TYPE c LENGTH 30 VALUE 'name_of_proxy_class',
           lc_port_user_prop_name TYPE c LENGTH 35 VALUE 'AuthenticationMethod.Basic.Username'.

CLEAR lv_port_found.

TRY.

    DATA(lo_query_handler) = cl_srt_public_factory=>get_query_handler( ).
    DATA(lt_ports) = lo_query_handler->get_lp_names( proxy_name = lc_proxy_class_name ).

    LOOP AT lt_ports ASSIGNING FIELD-SYMBOL(<ls_port>).

      DATA(lo_port_handler) = cl_srt_public_factory=>get_logical_port_handler( proxyclass = lc_proxy_class_name
                                                                               lp_name    = <ls_port> ).
      DATA(lt_port_properties) = lo_port_handler->get_properties( ).

      LOOP AT lt_port_properties ASSIGNING FIELD-SYMBOL(<ls_port_properties>).

        IF <ls_port_properties>-name-name = lc_port_user_prop_name.
          IF ls_user-username = <ls_port_properties>-value.
            lv_port_found = abap_true.
            EXIT.
          ENDIF.

        ENDIF.

      ENDLOOP.

      IF lv_port_found = abap_true.
        DATA(lv_port) = <ls_port>.
        EXIT.
      ENDIF.

    ENDLOOP.

    CREATE OBJECT lr_proxy
      EXPORTING
        logical_port_name = lv_port.

    CLEAR lr_proxy.


  CATCH cx_root.
    CLEAR lr_proxy.
ENDTRY.


Seite 1 von 1

Vergleichbare Themen

1
Antw.
8240
Views
User Log-Daten / letzter Login
von Baltasa » 13.04.2006 11:10 • Verfasst in ABAP® Core
4
Antw.
2856
Views
Login-Script?
von Anfänger » 29.11.2010 13:35 • Verfasst in ABAP® für Anfänger
0
Antw.
1119
Views
Login Userexit
von masterw » 24.11.2006 00:02 • Verfasst in ABAP® Core
0
Antw.
2267
Views
Login auf Website
von DerAndi » 17.07.2009 14:57 • Verfasst in ABAP® Core
0
Antw.
6055
Views
LogIn SapGUI aus Web Dynpro (SSO)
von Phil » 16.11.2010 10:24 • Verfasst in Web Application Server

Über diesen Beitrag



Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

line_exists evaluieren
vor 6 Stunden von Radinator gelöst 6 / 64
Was zum Knobeln....
vor 8 Stunden von a-dead-trousers 5 / 193
BAPI_GOODSMVT_CREATE
vor 4 Tagen von waltersen 4 / 801

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

line_exists evaluieren
vor 6 Stunden von Radinator gelöst 6 / 64
Was zum Knobeln....
vor 8 Stunden von a-dead-trousers 5 / 193
BAPI_GOODSMVT_CREATE
vor 4 Tagen von waltersen 4 / 801

Unbeantwortete Forenbeiträge

Erweiterung in ME51N/ME52N:
vor einer Woche von ABAPlerv 1 / 1286
Erweiterung in ME51N/ME52N:
vor einer Woche von ABAPlerv 1 / 1229