問題タブ [worklight-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ibm-mobilefirst - WorkLight アダプター応答ヘッダーへの Cookie の添付
WorkLight 5.0.6 を使用してモバイル アプリを開発しており、アダプターから返される応答に安全な Cookie を添付したいと考えています。
クラスター化された実稼働環境で特定の WL サーバーにセッションを「バインド」したくないため、WorkLight 認証レルムを使用していません。バックエンド システムに対してユーザーの詳細を認証するサインオン アダプターを呼び出して、セッションを認証します。サインオン アダプター呼び出しからの応答の一部として、認証された情報を含む安全な Cookie (http のみ) を作成し、それをサインオン アダプターから返される応答に添付したいと考えています。Cookie は、サーバーへのアプリケーション呼び出しから作成された後続のアダプターのヘッダーにも含まれている必要があります。
よろしく、
ibm-mobilefirst - IBM Worklight 6.0 - Worklight Server にアダプターをデプロイした後の wl_antiXSRFRealm エラー
現在、Worklight v6.0 Enterprise Edition を使用してプッシュ通知のデモに取り組んでいます。
デモの一環として、Worklight studio で新しい Worklight プロジェクトを作成しました。
- プッシュ通知のサンプル プロジェクトも同じワークスペースにインポートしました
- 提供された authenticationConfig.xml ファイルをプッシュ通知サンプル プロジェクトから新しいプロジェクトにコピーしました (ファイルを置き換えます)。
- また、新しいプロジェクトの application-descriptor.xml を変更して、authenticationConfig.xml ファイルの securityTest を参照するようにしました。
テスト サーバー (Eclipse 開発環境の一部) で PushNotifications アダプターをテストすると、アダプターは正しく動作します。ブラウザ呼び出しでサーバーをテストしますhttp://hostName:10080/ProjectName/invoke?adapter=PushAdapter&procedure=submitNotification¶meters=["user","testdata"]。
しかし、新しいアプリとアダプターを QA Worklight サーバーにデプロイすると、アダプターに問題が生じます。新しいサーバーを指すブラウザーからアダプターに再度アクセスすると、次のエラーが表示されます。
/*-secure- {"challenges":{"wl_antiXSRFRealm":{"WL-Instance-Id":"i9k34qhnj7r25s8ab7v2m0sf3l"}}}*/
デバイスで実行されているアプリはサーバーに接続できます。アダプター エンドポイントを使用して、外部サーバーにデモの通知を書き込んでもらいたいと考えています。
ibm-mobilefirst - IBM Worklight 6.0 - クライアントがログアウト/ログインすると、基本認証を使用するアダプターが認証ヘッダーを更新しない
アダプター・ベースの認証を使用する Worklight v6.0 アプリケーションがあります。
アダプターは、基本認証を使用してバックエンド REST サービスを呼び出す HTTP アダプターです。
アダプタとバックエンド サービスの間にセッションや Cookie はありません。アダプター記述子で、cookiePolicy を IGNORE_COOKIES に設定しました。アダプターからバックエンドへの各要求は、その要求の基本認証ヘッダーで認証されます。
アダプターの各プロシージャーでは、connectAs が endUser に設定されています。
これはすべてうまくいきます。モバイル アプリはアダプターで保護されたプロシージャを呼び出します。これにより認証がトリガーされ、認証が正常に完了し、プロシージャが再度呼び出されます。ネットワーク トレースで、アダプターからバックエンド。モバイル アプリが既に認証されているときにアダプター呼び出しを行う場合、アダプターは正しい Basic Auth ヘッダーを使用して back en を呼び出すだけです。複数のモバイル アプリが同時に接続され、異なるユーザーとしてログインしている場合、アダプターはそれを呼び出したユーザーの正しい Basic Auth ヘッダーを使用します。
唯一機能しないのは、モバイル アプリがアダプターを呼び出し、user1 として認証し、バックエンドから user1 の正しい結果を取得し、WL.Client.logout() を呼び出し、アダプターを別の呼び出しを行い、認証する場合です。今回はユーザー2として。
アダプタ プロシージャでは、WL.Server.getActiveUser() を呼び出してアクティブなユーザーを確認します。確かに、ユーザーは正しい (user2) です。しかし、呼び出しがバックエンドに送信されると、Worklight が追加する Basic Auth ヘッダーに user1 の資格情報が含まれるため、モバイル アプリは間違った結果を取得します。
アプリを終了して再起動すると、すべて問題なく、ユーザー 2 として直接認証し、user2 の正しい結果を得ることができます。問題となる唯一のケースは、モバイル・アプリと Worklight Server の間の単一セッションで別のユーザーとしてログアウト/ログインし直す場合です。
これは、Worklight アダプターでの基本認証の使用に関する既知の制限ですか? ログアウト時にモバイル・クライアントと Worklight Server の間の接続を強制的にリセットする方法はありますか? (アプリを再起動するまで)
websphere - IBM Worklight 5.0.6 - worklight.properties の暗号化
インフォメーション・センターの手順に従って、機密情報を worklight.properties に暗号化しようとしています。
このステップでは、
*暗号化された値はすべて、worklight_enc_password という特別な変数に格納されている同じ秘密鍵を使用します。この変数は、オペレーティング システムの環境変数として定義されています。
Windows システムの場合: IBM Worklight Server を実行しているユーザーの下で環境変数を設定します。Windows NT サービスで実行している場合は、レジストリ エディタを使用してパスワードをサービス プロパティとして定義します。詳細については、Microsoft のサポート Web サイトを参照してください。*
HKKEY_CURRENT_USER/Environment の下の登録エディターに worklight_enc_password を追加して、アプリケーションをデプロイしようとしました。ただし、SystemOut.log では、「java.lang.RuntimeException: プロパティ xxx.enc の値を解読できません。暗号化パスワードは、環境変数 xxx.enc で定義する必要があります」が返され続けました。
Windows XP でこの変数「worklight_enc_password」をどこに設定すればよいですか?
環境: Windows XP、Worklight 5.0.6、WAS ND 8.5
ibm-mobilefirst - IBM Worklight 5.0.6 - ログインに 1 回ではなく 2 回のクリックが必要
アプリでフォームベースの認証とチャレンジ ハンドラー (サンプル コード) を使用しています。問題は、ログイン ボタンを 1 回クリックするだけではユーザーを認証できないことです。2 回クリックする必要があります。なんで?
すべてのアダプター機能を保護しました。
私のチャレンジハンドラー:
authenticationConfig.xml
私の processLogin() 関数
ValidateUsersおよびListSummariesDetailsアダプター関数は、上記のmyAppSecurityTestCustomを使用して保護されます。
android - IBM Worklight 5.0.5 - ハイブリッド アプリケーションでアプリケーション認証性を有効にできない
Worklight のアプリケーション認証性機能を実装してテストしようとしてきましたが、機能させることができませんでした。このサイトのすべての投稿と WL インフォメーション センターの情報を確認しましたが、うまくいきませんでした。誰かが私を助けてくれることを期待して、私が行ったことと、私が見ている結果の詳細な説明を提供しています.
環境: Windows 7 Enterprise にインストールされた Worklight Studio 5.0.5 Consumer エディション Windows 7 Enterprise にインストールされた Worklight Server 5.0.5 Consumer エディション
WL サーバーは、Worklight Server インストールによって提供される Websphere Application Server Liberty プロファイル内で実行されています。
WL サーバーは、インストール パッケージによって提供される derby データベースを使用しています。
実装手順:
authenticationConfig.xml にセキュリティ テストを追加 (コメント解除)
/li>.war ファイルを再構築し、Worklight Server にデプロイしました。
「connectOnStartup : true」になるように initOptions.js を変更します。
application-descriptor.xml を変更し、Android アプリケーションのセキュリティ テストを指定し、publicSigningKey を追加しました
アプリケーションを再構築し、WL サーバーにデプロイしました。
署名済みの .apk ファイルを作成し、アプリケーション センターにアップロードします。
アプリケーションを物理デバイス (Samsung Galaxy Tab 2、Android 4.1.1) にインストールします。
アプリケーションを起動します。
WL コンソールまたは物理デバイスから「プレビュー」モードでアプリケーションを起動すると、同じエラーが表示されます。私が受け取っているエラーは次のとおりです。
{"errorCode":"UNEXPECTED_ERROR","errorMsg":"userIdentityForAPI が null です。アプリケーションの認証要件を確認してください (決して、onStartup、onDemand ではありません)。これらの設定は、デプロイされたアプリケーションと一致する必要があります"}
構成で見逃したものはありますか?
ibm-mobilefirst - 一部の WL.Client Adapter Invocation トラフィックを別の URL を介して WL サーバーに再ルーティング/転送します (PCI 支払いおよびセキュリティ要件のため)?
ワークライト 5.0.6.1
アプリケーションとサーバーの PCI 監査を回避するためにIntel ( http://info.intel.com/rs/intel/images/Intel_Expressway_Tokenization_Broker.pdf )の PCI アプライアンスを使用することについて、クライアントから特定の要件があります。
したがって、支払いデータに関係するアダプター呼び出しは、ワークライト・サーバーに到達する前に、このハードウェア・アプライアンスを通過する必要があります。他のすべてのアダプター呼び出しは、ワークライト・サーバーに直接行く必要があります (アプライアンスが過負荷にならないようにするため)。2 つの異なる URL を持つが、バックグラウンドで同じワークライト サーバーを使用するという考え方です。アプライアンスを介した呼び出しはワークライト サーバーに対して透過的であると想定されるため、ワークライトの機能は影響を受けません。
これに関する私の質問は次のとおりです。
同じワークライト・サーバーに 2 つの異なる URL を持ち、アダプター呼び出しのためにクライアントからこれらの URL を交互に使用するためのワークライトのベスト・プラクティス (これはネイティブで実行されると想定しているため、直接更新などではありません)?
クライアント・コード内の JavaScript コードを介してアダプター呼び出しに使用されるワークライト・サーバー URL を動的に上書きすることは可能ですか? たとえば、WL.Client AJAX アダプター呼び出しの前のどこかからワークライト URL を取得/返す特定の JS 関数を上書きしますか?
また、呼び出されている AdapterName の正規表現などに基づいて、ロードバランサーがルートを切り替えることも検討しています。しかし、それが可能かどうか、およびパフォーマンスへの影響がどのようなものかは、現時点ではわかりません。