...
bridgeは、様々な方法で実装することができます。以下はその一例です。
- Yellowfinの一部として統合する(Yellowfinウェブアプリケーション内のJSP、サーブレット、またはフィルターとして)
- サードパーティ製ソースとYellowfinと通信をする、スタンドアロンアプリケーションとして統合する(GUI、コンソール、またはウェブアプリケーション)
- サービパーティ製アプリケーションの一部として統合する
bridgeの最適な実装場所は、環境と含まれるコンポーネントに応じて異なります。
...
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
こちらのサービスは、Yellowfinに接続し、指定されたユーザーのログオントークンを取得します。ユーザーは、ユーザーID(ログオンID方法に応じて、電子メールアドレス、または他のタイプのIDになります)を使用して指定されます。このトークンがYellowfinのログオンURLとともに渡されると、認証されたユーザーのログイン画面を無効にし、即座にセッションが開始されます。 こちらの関数は、Yellowfinのヘッダーを非表示にしたり、ログイン後に特定のレポートやダッシュボードへ直接移動するなど、追加のタスクを実行するための様々なログインセッションパラメーターを渡すためにも使用されます。これらのログインセッションオプションについて、より詳細な情報は、こちらの項目を参照してください。 リクエスト要素LOGINUSER関数は、指定されたユーザーのYellowfinへのシングルサインオンを実行します。以下の要素は、こちらのリクエストとともに渡されます。 注意:AdministrationPersonオブジェクトのコンテンツは、ログインするユーザーを定義するために使用されます。
| 以下の表 | 以下の表 | 以下は、こちらの関数のために、「AdministrationPerson」オブジェクトに設定しなくてはいけない主要なパラメーターです。
AdministrationPerson 要素 | データ型 | 説明 |
UserId | String | ログインするユーザーのユーザーIDです。これは、ログインIDの方法に応じて、ユーザーID、または電子メールアドレスになります。 |
Password | String | 新規ユーザーのパスワードです。 |
以下のSOAPの例は、この呼び出しに渡すことのできるパラメーターを表示しています。
Code Block | ||
---|---|---|
| ||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.web.mi.hof.com/"> <soapenv:Header/> <soapenv:Body> <web:remoteAdministrationCall> <arg0> <loginId>admin@yellowfin.com.au</loginId> <password>test</password> <orgId>1</orgId> <function>LOGINUSER</function> <person> <userId>admin@yellowfin.com.au</userId> <password>test</password> </person> </arg0> </web:remoteAdministrationCall> </soapenv:Body> </soapenv:Envelope> |
応答要素
返される応答には、これらのパラメーターが含まれます。
応答要素 | データ型 | 説明 |
StatusCode | String | Webサービス呼び出しのステータスです。値の選択肢は、以下の通りです。
|
LoginSessionId | String | 一意のログイントークンです。こちらのトークンは、ユーザーをYellowfinへ直接誘導するために、ログインURLへ付加されます。 |
サービスは、今回のSOAPの例に基づき、以下の応答を返します。
Code Block | ||||
---|---|---|---|---|
| ||||
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:remoteAdministrationCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/"> <return> <errorCode>0</errorCode> <loginSessionId>689bce5624f1e5a312eb5ef7801ed9fc</loginSessionId> <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages> <messages>Web Service Request Complete</messages> <sessionId>c8021e27fcc2ce507ff17ec1846919a5</sessionId> <statusCode>SUCCESS</statusCode> </return> </ns2:remoteAdministrationCallResponse> </S:Body> </S:Envelope> |
手順
Javaの例を使用して、こちらの呼び出しを実行するための詳細な手順は、以下を参照してください。
Expand | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||
|
Anchor | ||||
---|---|---|---|---|
|
ログイントークンを使用したYellowfinのリダイレクト
webサービスの呼び出し(AdministrationResponseのコンテンツ。LoginSessionId)から受信したトークンを使用することで、ユーザーをURLへ誘導することができます。
Code Block | ||
---|---|---|
| ||
http://<YELLOWFIN-SERVER>/logon.i4?LoginWebserviceId=<TOKEN> |
こちらのURLはYellowfinの認証画面をバイパスすることで、ユーザーをYellowfinへ直接誘導します。
Note |
---|
トークンには、有効期限があります。5分以内に使用しなくてはならず、一度使用すると、再び使用することができません。サードパーティ製アプリケーションからYellowfinへ継続して呼び出しを実行する場合は、再度LOGINUSER webサービスを呼び出さなくてはいけません。 |
JavaScript APIを使用したトークンの使用
SSOトークンは、組み込まれたJavaScript APIウィジェットとともに使用することができます。トークンは、スクリプトレットURLへ以下のように追加されます。
Code Block | ||
---|---|---|
| ||
<script type="text/javascript" src="http://localhost/JsAPI?dashUUID=e9a6ab0a-bcb0-4fe6-9663-4dd33e58f08e&token=<TOKEN>"></script> |
ログインセッションオプション
このシングルサインオンリクエストにより作成されたセッションの機能のみを切り替える変数、またはスイッチを渡すことができます。これらのオプションは、AdministrationRequest内のパラメーター属性を介して渡すか、リダイレクトURLへ付加することで有効にすることができます。より詳細な情報は、こちらを参照してください。
完成例
以下の、LOGINUSERの例を使用することができます。こちらを使用するには、以下の手順に従います。
- 以下のコードをコピーして、「ws_admin_singlesignon.jsp」として保存します。
- root(Yellowfin/appserver/webapps/ROOT)フォルダーにファイルを配置します。
- 環境に応じて、ホスト、ポート番号、管理ユーザー、ログインするユーザーの詳細を調整します。
- インターネットブラウザから、「http://<host>:<port>/ws_admin_singlesignon.jsp」を実行します。
Code Block | ||||
---|---|---|---|---|
| ||||
<% /* ws_admin_singlesignon.jsp */ %> <%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ page import="com.hof.util.*, java.util.*, java.text.*" %> <%@ page import="com.hof.web.form.*" %> <%@ page import="com.hof.mi.web.service.*" %> <% String url = "http://localhost:8080"; //provide your Yellowfin URL AdministrationServiceService s_adm = new AdministrationServiceServiceLocator("localhost",8080,"/services/AdministrationService", false); // adjust host and port number AdministrationServiceSoapBindingStub adminService = (AdministrationServiceSoapBindingStub) s_adm.getAdministrationService(); AdministrationServiceRequest rsr = new AdministrationServiceRequest(); rsr.setLoginId("admin@yellowfin.com.au"); // provide your Yellowfin webservices admin account rsr.setPassword("test") // change to be the password of the account above rsr.setOrgId(1); rsr.setFunction("LOGINUSER"); AdministrationPerson ap = new AdministrationPerson(); ap.setUserId("user@yellowfin.com.au"); // provide existing Yellowfin user to login ap.setPassword("usertest"); // password of the user above rsr.setPerson(ap); String[] parameters = new String[] {"ENTRY=TIMELINE","DISABLEHEADER=TRUE"}; rsr.setParameters(parameters); AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr); String token = ""; if ("SUCCESS".equals(rs.getStatusCode()) ) { token = rs.getLoginSessionId(); response.sendRedirect(url + "/logon.i4?LoginWebserviceId=" + token); } else { out.write("Single Sign on Failure"); return; } %> |
...
Expand | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
LOGINUSERNOPASSWORD webサービスは、ユーザー名のみを使用して、ユーザーをログインさせることができます。 関数の有効化こちらの関数を有効化するには、Yellowfinデータベースの構成テーブルに、追加のパラメーターを設定しなくてはいけません。
注意:データベースへの変更を反映するために、Yellowfinを再起動しなくてはいけない場合があります。 こちらの設定がYellowfinのデータベースに追加されなかった場合は、webサービスエラー26:UNSECURE_LOGIN_NOT_ENABLEDが発生します。 こちらの呼び出しのパラメーターオプションは、LOGINUSERのものと同様です。例:
|
...