2012-03-06 3 views
1

私はSAP's SAPUI5 frameworkを使い始めていますが、ログオントークン(MYSAPSSO2)を使用するためにシングルサインオンを取得しようとしていますが、トークンをフェッチしたり、トークンをOData HTTPリクエスト。私は上記にリンクされているブログの記事の例では、ユーザ名/パスワードを使用しますが、トークンを使用していません: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) 

私は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ログオントークンの経験を持っている場合(それは新しいですので、誰もまだこののことを聞いていなかった場合、私は驚かないだろうが)、私は興味があります。

答えて

5

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

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

したがって、SAPに正常に認証されると、レスポンスのHTTPヘッダーであるSSOトークンが取得されます。

など。

セットクッキー:MYSAPSSO2 = AjQxMDM ..... BABhHAFcA%3d%3d;パス= /; domain = esworkplace.sap.com

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

セットクッキー:MYSAPSSO2 = AjQxMDM ..... BABhHAFcA%3d%3d;パス= /; ......%MYSAPSSO2 = AjQxMDMBABhH:

クッキー:ドメイン= yourproxydomain.comブラウザがプロキシに要求を行う

次の時間は、それが自動的に次のように、リクエストヘッダにこのセッションCookieが含まれます2fjmaRu5sSb28M6rEg%3d%3d

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

こちらがお役に立てば幸いです。

+0

SAPUI5のSAP認証プロバイダに関するいくつかのガイダンスを期待していましたが、これが私たちもやらなければならないことだと思います。ただし、SAPポータルでホストされているSAPUI5アプリケーションの場合、ブラウザーには既にMYSAPSSO2トークンがあり、同じドメインにある場合は、SAP NetWeaver Gatewayに渡す可能性が高いため、心配する必要はありません。 –

0

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

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

+0

私はSAPUI5でのOData要求オブジェクトとビットの周りに演奏し、それがパブリックインターフェイスを提供していないので、それはすべてのことは簡単には、クッキーを追加することはありません。私はそれを私の要求に付けるために舞台裏で潜り込む必要があります。また、SAP NetWeaver GatewayのODataエンドポイントがMYSAPSSO2クッキーで動作することも完全にはわかりません。私は彼らがそうすると思います。 SAPが彼らの仕事を変えてしまったら、私は驚くだろう。 –

+0

新しいSAPテクノロジでは常に挑戦しています。ゲートウェイを使用してSAPデータをJSON Restful Apisとして変換する代わりに、オープンソースコードを使用しています。詳細は次のとおりです:http://code.google.com/p/zjsonこれを設定すると、SAPに頼るのではなく、クッキーを渡す標準的なJavaの方法を使用することができます。ゲートウェイは確かに有望ですが、私はむしろ移行する前にそれがより成熟するのを待っています。 – Dhananjay

+0

RFCをODataモデルに変換する.NETプロキシを実際に使用してゲートウェイを使用しているわけではありません:)しかし、私たちは依然としてそのトークンを電信に渡す方法が必要です。だから誰でもSAPUI5要求オブジェクトクッキーを含める。 –

2

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

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

敬具 ステファン

+0

イントラネットアプリケーション(特にSAPポータル外でホストされているアプリケーション)にSAPUI5を使用している場合、私は主にSAPの長期的な認証の方向性に関心があります。 –