Аутентификация пользователя с использованием учетных данных SAP из не-SAP Environment - PullRequest
0 голосов
/ 11 сентября 2018

Я разрабатываю веб-приложение, в которое пользователи должны войти.

Могу ли я использовать аутентификацию SAP из SAP с RFC или чем-то подобным?

Пользователи будут вводить свое имя пользователя и пароль SAP, затем SAP контролирует информацию и дает мне знать, что эта информацияправильно или нет.

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Вы можете использовать SAP Logon Ticket для входа в систему вашего пользователя из SAP Netware.Пожалуйста, проверьте документ ниже.

Общее содержание: https://help.sap.com/saphelp_nw73/helpdata/en/d0/dc33c460a243929b7ec120f55af101/frameset.htm

Настройка SAP для создания заявки на вход: https://help.sap.com/saphelp_nw73/helpdata/en/4a/b6df333fec6d83e10000000a42189c/frameset.htm

0 голосов
/ 12 сентября 2018

Да, это возможно. Всякий раз, когда вы хотите выполнить функционально удаленный функциональный модуль из-за пределов системы SAP, вам все равно нужно войти в эту систему. Вы можете использовать предоставленную пользователем информацию для входа в систему вместо использования фиксированного имени пользователя и пароля для подключения к веб-приложению к системе SAP.

Обратите внимание, что функциональные модули, которые вы хотите вызвать, будут выполняться с полномочиями, назначенными пользователю, которого вы используете для входа в систему. Таким образом, пользователям вашего веб-приложения потребуется авторизация для вызова функциональных модулей.

Реализация во многом зависит от библиотеки RFC, которую вы решите использовать. Например, в SAP .Net Connector 3.0 вы всегда используете RfcDestinationManager, где вам необходимо заранее зарегистрировать свои пункты назначения. Но вы можете создать собственное назначение и переопределить имя пользователя и пароль в этом месте назначения перед тем, как его использовать.

using SAP.Middleware.Connector;

public RfcDestination GetDestination(string destinationName, string username, string password) 
{
    dest = RfcDestinationManager.GetDestination(destinationName);
    customDest = dest.CreateCustomDestination();
    customDest.Client = dest.Client;
    customDest.User = username;
    customDest.Password = password;
    return customDest;
}

в этом фрагменте предполагается, что пункт назначения уже зарегистрирован в RfcDestinationManager, либо через код, либо через конфигурацию. Он не должен содержать действительный логин, имя пользователя и пароль могут быть пустыми (так как вы все равно их переопределите). Но место назначения с Hostname, System Number и Id должно быть там (хотя вы, вероятно, тоже можете их переопределить, так что вам может понадобиться только пустое место назначения с именем для начала).

если вы только хотите проверить информацию для входа в систему и не хотите выполнять функциональные модули в контексте пользователя, вы все равно можете создать второе соединение с системой SAP и проверить, можете ли вы подключиться , Третий вариант - использовать функциональный модуль SUSR_CHECK_LOGON_DATA и просто проверить имя пользователя и пароль.

Использование имени пользователя и пароля для всех вызовов RFC имеет несколько преимуществ: вы можете контролировать полномочия в системе SAP. SAP Netweaver имеет комплексную модель авторизации, которая позволяет назначать пользователям очень специфические полномочия, позволяя создавать роли для различных сценариев использования, например, read-only пользователей, maintainers и admins (в контексте вашего веб-приложения). ). И когда вы используете стандартные функциональные модули для обновления данных в системе SAP, фактический пользователь, который выполнил изменение через ваше веб-приложение, впоследствии будет виден как пользователь, выполняющий изменение, а не пользователь общего веб-приложения.

...