2

SAP の SAPUI5 フレームワークを使い始めており、ログオン トークン (MYSAPSSO2) を操作するためにシングル サインオンを取得しようとしていますが、トークンを取得したり、OData HTTP 要求にトークンを添付したりできる場所がどこにもありません。 . 上記にリンクしたブログ投稿の例では、ユーザー名/パスワードを使用していますが、トークンは使用していません。

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

SDKで提供されている ODataModel.js ファイルを見ても、コンストラクターはログオン トークンを取得しません。

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

SAPUI5 で SSO/MYSAPSSO2 ログオン トークンを使用した経験がある人がいれば、興味があります (ただし、これは新しいものなので、まだ誰も聞いたことがなくても驚かないでしょう)。

4

3 に答える 3

5

私はあなたが参照しているブログの著者です。あなたの質問に答えてみましょう。

3 月 15 日のコメントでは、プロキシ アプローチについて説明しています。プロキシが SSO トークンを受信したら、SET-COOKIE ヘッダーを使用してそれをクライアントに渡す必要があります。

したがって、SAP への認証に成功すると、応答の HTTP ヘッダーである SSO トークンを取得します。

例えば

セット Cookie: MYSAPSSO2=AjQxMDM.....BABhHAFcA%3d%3d; パス=/; ドメイン=esworkplace.sap.com

プロキシは単にそれをクライアントのブラウザに渡し、ドメイン名をプロキシのドメイン名に変更する必要があります。そうしないと、クライアントはそれを使用しません。

セット Cookie: MYSAPSSO2=AjQxMDM.....BABhHAFcA%3d%3d; パス=/; ドメイン=yourproxydomain.com

次回ブラウザがプロキシにリクエストを行うと、次のように、このセッション Cookie がリクエスト ヘッダーに自動的に含まれます。

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

プロキシは、HTTP 要求ヘッダーからその Cookie を読み取り、それを使用して呼び出しを行うことができます。

これが役立つことを願っています。

于 2012-03-21T16:11:14.963 に答える
2

私は SAPUI5 を担当しています。この問題を完全に理解しているかどうかは 100% 確信が持てませんが、答えようと思います。データを読み取るための SAPUI5 呼び出しは XMLHttpRequests を使用するため、すべての証明書または Cookie が要求とともに自動的に送信されます。さらに、Gateway はこれらの (有効な) 証明書を受け入れることが期待されます。したがって、Istak からの回答に従い、適切なドメインで Cookie を使用すると、UI5 で API を必要とせずに機能するはずです。

とにかく、私が何かを逃した場合は、もっと詳しく説明してください。

よろしくステファン

于 2012-03-22T12:58:35.763 に答える
0

SAPUI5 と oData についてはよくわかりませんが、SSO で SAP バックエンド システムに接続する Java EE Web アプリケーション / sencha touch ベースのアプリで MYSAPSSO2 トークンを使用しました。http 要求でトークンを Cookie として渡すだけです。

これを行うには多くの方法があります。私が使用したのはSimpleClientHttpRequestFactoryでした。または、UrlConnection 自体でそれを行うこともできます。

于 2012-03-09T03:58:36.550 に答える