2012-03-06 6 views
1

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

// 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.

ответ

5

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

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

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

E.g.

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

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

set-cookie: MYSAPSSO2 = AjQxMDM ..... BABhHAFcA% 3d% 3d; Путь = /; домен = yourproxydomain.com

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

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

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

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

+0

Я думаю, что это то, что нам тоже нужно будет делать, хотя я надеялся на некоторое руководство по поставщику аутентификации SAP для SAPUI5. Однако для приложений SAPUI5, размещенных в SAP-портале, нет необходимости беспокоиться, так как браузер уже имеет токен MYSAPSSO2 и, скорее всего, передаст это на шлюз SAP NetWeaver, при условии, что он находится в том же домене , –

0

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

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

+0

Я играл немного с объектом запроса OData в SAPUI5, и это не делает его все, что легко добавить печенья, так как он не предлагает до общедоступного интерфейса. Я должен буду погрузиться в кулисы, чтобы прикрепить его к моим запросам. Я также не совсем уверен, что конечные точки OData в SAP NetWeaver Gateway работают с файлом cookie MYSAPSSO2. Я бы предположил, что они это делают; Я был бы удивлен, если бы SAP заставила их работать по-другому. –

+0

Его всегда сложно работать с новыми технологиями SAP. Мы использовали код с открытым исходным кодом вместо использования шлюза для преобразования данных SAP в JSON Restful Apis. Вот подробности: http://code.google.com/p/zjson. После этого вы можете использовать стандартный способ передачи файлов cookie Java вместо того, чтобы полагаться на SAP. Шлюз определенно перспективен, но я предпочел бы, чтобы он стал более зрелым, прежде чем мигрировать. – Dhananjay

+0

Мы даже не используем Gateway, на самом деле используя .NET-прокси, который преобразует RFC в OData-модели :) Но нам все еще нужен способ получить этот токен через провод, поэтому мне было любопытно, изменил ли кто-либо объект запроса SAPUI5 включить куки. –

2

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

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

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

+0

Меня больше всего интересует долгосрочное направление аутентификации SAP при использовании SAPUI5 для приложений интрасети, особенно тех, которые размещаются за пределами портала SAP. –