SAPUI5 и входные токены / SSO? - PullRequest
1 голос
/ 06 марта 2012

Я начинаю работу с SAPUI5 Framework SAP и пытаюсь настроить единый вход для работы с токенами входа в систему (MYSAPSSO2), но нигде не вижу, чтобы я мог получить токен или прикрепите токен к HTTP-запросу OData. Пример в сообщении блога, на который я ссылался выше, использует имя пользователя / пароль, но не использует токен:

// Specify the SAP Gateway SalesOrder service as an OData model
var salesOrderService =
    "https://gw.esworkplace.sap.com/sap/opu/sdata/IWFND/SALESORDER",

// The SalesOrder service requires authentication
// get the username/password from the SDN page.
username = "[username]",
password = "[password]",

// SAP Gateway only supports XML, so don't use JSON
asJson = false,
salesOrderModel = new ODataModel(salesOrderService, asJson, username, password)

Даже когда я смотрю на файл ODataModel.js, предоставленный в SDK , конструктор не принимает токены входа в систему:

/**
 * Constructor for a new ODataModel.
 *
 * @param {string} sServiceUrl required - base uri of the service to request data from
 * @param {string} [bJSON] (optional) true to request data as JSON
 * @param {string} [sUser] (optional) user
 * @param {string} [sPassword] (optional) password
 *
 * @class
 * Model implementation for oData format
 *
 * @extends sap.ui.model.Model
 *
 * @author SAP AG
 * @version 1.2.0
 *
 * @constructor
 * @public
 */

Мне любопытно (хотя, поскольку он новый, я не удивлюсь, если бы об этом никто даже не слышал), если у кого-то есть опыт работы с токенами входа SSO / MYSAPSSO2 с SAPUI5.

Ответы [ 3 ]

5 голосов
/ 21 марта 2012

Я автор блога, на который вы ссылаетесь.Позвольте мне попытаться ответить на ваш вопрос.

Ваш комментарий от 15 марта описывает прокси-подход.Вам следует попытаться сделать следующее: как только ваш прокси-сервер получил токен SSO, вы должны передать его клиенту с помощью заголовка SET-COOKIE.

Таким образом, при успешной аутентификации в SAP вы получаете токен SSOHTTP-заголовок ответа.

Например,

set-cookie: MYSAPSSO2 = AjQxMDM ..... BABhHAFcA% 3d% 3d;Путь = /;domain = esworkplace.sap.com

Ваш прокси-сервер должен просто передать его в браузер клиента и изменить имя домена на имя прокси-сервера, иначе клиент не будет его использовать.

set-cookie: MYSAPSSO2 = AjQxMDM ..... BABhHAFcA% 3d% 3d;Путь = /;domain = yourproxydomain.com

В следующий раз, когда браузер отправит запрос вашему прокси, он автоматически включит этот сеансовый cookie в заголовок запроса, например:

Cookie: MYSAPSSO2 = AjQxMDMBABhH ......% 2fjmaRu5sSb28M6rEg% 3d% 3d

Ваш прокси-сервер может прочитать этот файл cookie из заголовков HTTP-запроса и использовать его для совершения вызова.

Надеюсь, это поможет.

2 голосов
/ 22 марта 2012

Я отвечаю за SAPUI5 - хотя я не уверен на 100%, полностью ли я понимаю проблему, я постараюсь ответить. При вызове SAPUI5 для чтения данных используются XMLHttpRequests, поэтому все сертификаты или файлы cookie отправляются вместе с запросами автоматически. Кроме того, ожидается, что Gateway примет эти (действительные) сертификаты. Поэтому, следуя ответу Istak и используя куки с подходящим доменом, он должен работать без API в UI5.

Во всяком случае, если я что-то пропустил, объясните, пожалуйста, подробнее.

С наилучшими пожеланиями Stefan

0 голосов
/ 09 марта 2012

Не уверен насчет SAPUI5 и oData, я использовал токен MYSAPSSO2 с веб-приложениями Java EE / приложениями Sencha Touch, которые связывают внутренние серверы SAP с SSO. Вы просто передаете токен как cookie в запросе http.

Есть много способов сделать это, я использовал SimpleClientHttpRequestFactory или вы можете сделать это в самом UrlConnection.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...