Diese Seite (Version-94) wurde zuletzt am 14-Feb.-2025 11:15 von Administrator geändert.

Diese Seite wurde am 09-Nov.-2024 16:04 von Administrator erstellt.

Du bist nicht autorisiert, diese Seite umzubenennen.

Du bist nicht autorisiert, diese Seite zu löschen.

Versionsgeschichte der Seite

Version Zuletzt geändert Größe Autor Änderungen Kommentar
94 14-Feb.-2025 11:15 13 KB Administrator zur vorherigen
93 31-Jan.-2025 13:04 13 KB Administrator zur vorherigen | zur neuesten
92 22-Jan.-2025 08:44 12 KB Administrator zur vorherigen | zur neuesten
91 06-Jan.-2025 14:30 12 KB Administrator zur vorherigen | zur neuesten
90 06-Jan.-2025 14:11 12 KB Administrator zur vorherigen | zur neuesten
89 06-Jan.-2025 14:01 12 KB Administrator zur vorherigen | zur neuesten
88 06-Jan.-2025 13:59 12 KB Administrator zur vorherigen | zur neuesten
87 06-Jan.-2025 13:31 12 KB Administrator zur vorherigen | zur neuesten
86 06-Jan.-2025 13:22 12 KB Administrator zur vorherigen | zur neuesten
85 06-Jan.-2025 13:08 12 KB Administrator zur vorherigen | zur neuesten
84 06-Jan.-2025 13:08 12 KB Administrator zur vorherigen | zur neuesten
83 06-Jan.-2025 11:51 12 KB Administrator zur vorherigen | zur neuesten
82 06-Jan.-2025 11:49 12 KB Administrator zur vorherigen | zur neuesten
81 06-Jan.-2025 11:44 12 KB Administrator zur vorherigen | zur neuesten

Links

Eingehende Links Ausgehende Links

Versionsunterschiede

Unterschiede zwischen Version und .

Zeile 48: 3 Zeilen hinzugefügt.
At "User E-Mail for SAML 2.0 Name ID" you can have the options specified at CL_OA2C_SAML20_ASSERTION->BUILD_NAME_ID().\\
By default the local SAP username is passed to SF, but SF expects a userId, so this will not work.\\
The only option which made sense to me is to use 998 and specify the userId as Alias at the SAP user.
Zeile 54: Eine Zeile geändert.
User E-Mail for SAML 2.0 Name ID = 998 (see below)
User E-Mail for SAML 2.0 Name ID = see above (998)
Zeile 58: 11 Zeilen gelöscht.
! SAML Subject Name Identifier (user) / Modification
This refers to OA2C_CONFIG at "User E-Mail for SAML 2.0 Name ID".\\
You can have the options specified at CL_OA2C_SAML20_ASSERTION->BUILD_NAME_ID().\\
By default the local SAP username is passed to SF, but SF expects a userId, so this will not work.\\
The only option which made sense to me is to use __998__ and specify the userId as Alias at the SAP user.\\
But you can have only the ALIAS only as upper case in SAP, so the SF userId must be uppercase too (or just numbers).\\
I modified the SAP code at CL_OA2C_SAML20_ASSERTION->BUILD_NAME_ID():
{{{
es_saml20_name_id-_value = to_lower( es_saml20_name_id-_value ).
}}}
Zeile 183: 28 Zeilen geändert.
FORM create_sf_application.
  DATA: ls_app          TYPE ssfapplic,
        ls_appt         TYPE ssfapplict,
        lv_old_app_name TYPE string,
        lv_new_app_name TYPE string.
  lv_old_app_name = 'ZOACQ'.   " erase former custom ones, set blank if none
  lv_new_app_name = ''.
  IF lv_old_app_name <> ''.
    DELETE FROM ssfapplic WHERE applic = lv_old_app_name.
    DELETE FROM ssfapplict WHERE applic = lv_old_app_name.
    WRITE: / |deleted { lv_old_app_name }, rc={ sy-subrc }|.
  ENDIF.
  IF lv_new_app_name <> ''.
    SELECT SINGLE * FROM ssfapplic INTO ls_app WHERE applic = 'OA2CS'.
    ls_app-applic = lv_new_app_name.
    MODIFY ssfapplic FROM  ls_app.
    WRITE: / |modified { lv_new_app_name }, rc={ sy-subrc }|.
    SELECT SINGLE * FROM ssfapplict INTO ls_appt WHERE sprsl = 'E' AND applic = 'OA2CS'.
    ls_appt-applic = lv_new_app_name.
    ls_appt-descript = |OAuth2 Client Identity Provider - { lv_new_app_name }|.
    MODIFY ssfapplict FROM  ls_appt.
    WRITE: / |modified { lv_new_app_name }, rc={ sy-subrc }|.
  ENDIF.
FORM create_sf_application. \\
  DATA: ls_app          TYPE ssfapplic, \\
        ls_appt         TYPE ssfapplict, \\
        lv_old_app_name TYPE string, \\
        lv_new_app_name TYPE string. \\
\\
  lv_old_app_name = 'ZOACQ'.   " erase former custom ones, set blank if none \\
  lv_new_app_name = ''. \\
\\
  IF lv_old_app_name <> ''. \\
    DELETE FROM ssfapplic WHERE applic = lv_old_app_name. \\
    DELETE FROM ssfapplict WHERE applic = lv_old_app_name. \\
    WRITE: / |deleted { lv_old_app_name }, rc={ sy-subrc }|. \\
  ENDIF. \\
\\
  IF lv_new_app_name <> ''. \\
    SELECT SINGLE * FROM ssfapplic INTO ls_app WHERE applic = 'OA2CS'. \\
    ls_app-applic = lv_new_app_name. \\
    MODIFY ssfapplic FROM  ls_app. \\
    WRITE: / |modified { lv_new_app_name }, rc={ sy-subrc }|. \\
\\
    SELECT SINGLE * FROM ssfapplict INTO ls_appt WHERE sprsl = 'E' AND applic = 'OA2CS'. \\
    ls_appt-applic = lv_new_app_name. \\
    ls_appt-descript = |OAuth2 Client Identity Provider - { lv_new_app_name }|. \\
    MODIFY ssfapplict FROM  ls_appt. \\
    WRITE: / |modified { lv_new_app_name }, rc={ sy-subrc }|. \\
  ENDIF. \\
\\
Zeile 227: 2 Zeilen gelöscht.
* with transaction OA2C_GRANT you can create/delete tokens (for your own user only)
* tokens are stored at table OA2C_TOKEN_ADM (and OA2C_TOKEN_SCOPE, not used here). You can delete records here to force re-authentication
Zeile 234: Eine Zeile geändert.
To re-authenticate delete records at OA2C_TOKEN_ADM (or use CL_OA2C_CLIENT->DELETE_TOKENS()?)
To re-authenticate you can potentially use CL_OA2C_CLIENT->DELETE_TOKENS() or use r.OA2C_GENERIC_ACCESS.
Zeile 271: 2 Zeilen gelöscht.
OR
* you have a mismatch in the codes/attributes in the custom classes of the two BAdIs
Zeile 294: 5 Zeilen gelöscht.
! HTTPIO_ERROR_OA2C_NO_SECRET
=> OA2C_CONFIG > Edit and re-enter the client secret > Save
! Direct connect to <server> failed: NIECONN_REFUSED(-10)
=> network / proxy issue, see [note 3518358|https://me.sap.com/notes/3518358/E]