問題タブ [opensso]
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.
liferay - liferay が OpenSSO と統合されている場合にループをリダイレクトする
私が到達した結論は、リダイレクトがliferayで認証しようとしているが、どういうわけか探しているものを取得できず、openssoに戻り、これが無限に繰り返されるということです。ここで同様の問題が報告されていることがわかります。残念ながら、うまくいきませんでした。
その後、liferay コードをデバッグすることにし、com.liferay.portal.servlet.filters.sso.opensso.OpenSSOUtil と com.liferay.portal.servlet.filters.sso.opensso.OpenSSOFilter にブレーク ポイントを設定しました。このコードが書かれていることを理解する方法は、最初に OpenSSOUtil.processFilter() メソッドに行き、liferay で構成した openSSO 設定情報を取得し、後でメソッド OpenSSOUtil.isAuthenticated() を呼び出して認証されているかどうかを確認することです。この特定の実装は基本的に、送信された Cookie 情報を読み取り、メソッド OpenSSOUtil._setCookieProperty() を呼び出して、liferay に Cookie プロパティを設定しようとします。ここで失敗します。HttpServletRequest オブジェクトを使用して liferay クラス com.liferay.util.CookieUtil から [iPlanetDirectoryPro] という名前の Cookie を読み取ろうとしますが、取得するのはすべて NULL です。
以下はクラスのコードですcom.liferay.util.CookieUtil
opensso が送信した Cookie を liferay が見つけられない理由を誰か教えてください。Cookie 値の有効化に関する Opensso 設定に関連している場合は、OpenSSO で次の場所に移動しました: [構成] -> [サーバーとサイト] -> -> [セキュリティ] -> [Cookie] -> [Cookie 値のエンコード] をオンにします ([はい] に設定)
何が機能するか: このループが実行されているときに、別のタブを開き、明示的にアプリケーションにログインします。アプリケーションからサインアウトすると、opensso からもサインアウトされます。これは私には奇妙です。
詳細については、このリダイレクト ループが発生している間、次の URL でこれらの情報セットが得られます
http://opensso.ple.com:9090/openam/identity/getCookieNameForToken
authentication - openSSO/openAM システムからユーザー名を取得するには?
現在、openAM を使用して、Java EE Web エージェントを使用して小さな Web アプリケーションを保護しています。誰かがアプリにアクセスしようとすると、openAM インスタンスにリダイレクトされ、ログインしてアプリに移動します。シンプルなもの。
私が望むのは、openAM が正常に使用されたユーザー名を Web アプリに渡すことです。これには「セッション属性」を使用する必要があると理解しています。管理画面で Java EE Web エージェントに移動し、[アプリケーション] タブを開いて [セッション属性の処理] を確認します。HTTP_COOKIE が取得の選択肢であることがわかりました。
1) ユーザー名が適切に設定されていれば、Cookie のプレーンテキストとして表示されると期待する必要がありますか? 2) ユーザー名を取得するには、セッション マッピングにどのような値を入力すればよいですか? これに対応するデータストアの値を見つけるにはどうすればよいですか?
ありがとう
java - OpenSSOはどうなりましたか?
OpenSSOは多くのJBossおよびSun/Oracleのドキュメントで参照されていますが、プロジェクトは消滅したようです。ウィキペディアのOpenSSOページでさえ、死んだホームページにリンクしています。プロジェクトに何が起こったのですか?名前が変更されたり、別のプロジェクトに統合されたりしましたか?
oauth - OpenID、OpenSSO、OAuth
OpenIDについての私の理解は、1つのサイトにすべてのIDと周辺情報を含める方法を提供しますが、他のOpenID準拠(およびユーザーが信頼する)サイトがその情報をユーザーの識別と認証に再利用できるようにする方法を提供します。基本的に、ユーザーがインターネットに対して持つログイン資格情報(ユーザー名とパスワード)の数を最小限に抑えます。
OpenSSOについての私の理解では、1つのサイトにサインインし、最初のサイトが信頼する他のすべてのサイトに自動的にログインすることができます。基本的に、ユーザーがこれらのさまざまなサイトにログインする必要がある回数を最小限に抑えます。
OAuthについての私の理解は、ユーザーがサードパーティのサイトに特定のサイトにある情報への特定のアクセスを許可できるようにすることです。基本的に、OpenSSOと同様に、ユーザーがこれらのさまざまなサイトにログインする必要がある回数を最小限に抑えます。OpenSSOとの違いは、OpenSSOがユーザーをすべての参加サイトに一度にログインさせ(完全な特権をオンにして)、OAuthがこれらの参加サイトへのよりきめ細かいアクセスを許可することです。
それで、最初に、私が言ったことが間違っているなら、私を訂正することから始めてください!
私が多かれ少なかれ正しいと仮定すると、私は次の質問をします/次の項目について説明が必要です:
- OAuthではなくOpenSSOを選択するのはいつですか?ユーザーがいずれかのサイトにログインしたときに他の参加サイトが持つアクセスを制限したい場合だけですか?
- これらのテクノロジーごとに異なるセキュリティリスクを検討し、アプリに統合する必要がありますか?それとも、それ自体が安全であると見なされますか(基本的に、アプリがそれらを使用する場合、アプリはオープンではないので安心できますか?新しい攻撃)?
これらの技術は非常に密接に関連しているので、ここで「木々の間の森」全体を見るのは難しいので、よろしくお願いします。
jboss7.x - JBoss EAP 6 / JBoss AS 7 用の OpenAM/OpenSSO エージェント
OpenAM/OpenSSO SSO 機能を JBoss EAP 6 または JBoss AS 7 に追加したいと考えています。つまり、JBoss に SSO Java EE エージェントをインストールする必要があります。Forgerock の OpenAM ダウンロード ページでは、以前のバージョンの JBoss のエージェントを入手できますが、新しい JBoss EAP 6 / JBoss AS 7 は (現時点では) サポートされていません。
そのようなエージェントがどこかで利用できるか、または近い将来に利用可能になるか知っていますか? そうでない場合、OpenAM で動作するように JBoss 構成を変更する方法を知っていますか?
java - openam クライアント sdk セッション ID が無効です
Tomcat 7 で openam を使用しています。次の行は常に例外 SSOTokenManager manager = SSOTokenManager.getInstance(); を生成します。SSOToken ssoToken = manager.createSSOToken(リクエスト);
無効なセッション ID
設定か何かに問題があると思います
何か助けて???
amSSOProvider:09/18/2012 01:18:01:882 PM EEST: スレッド [http-bio-9090-exec-151,5,main] は HttpRequest com.iplanet.dpro.session.SessionException から SSOToken を作成できませんでした: 無効ですセッションID。com.iplanet.dpro.session.Session.getSession(Session.java:1062) com.iplanet.sso.providers.dpro.SSOProviderImpl.createSSOToken(SSOProviderImpl.java:92) com.iplanet.sso.SSOTokenManager.createSSOToken (SSOTokenManager.java:241) で main.TestServlet2.doGet(TestServlet2.java:48) で javax.servlet.http.HttpServlet.service(HttpServlet.java:621) で javax.servlet.http.HttpServlet.service(HttpServlet. java:723) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) org.apache.catalina.core .
com.iplanet.sso.SSOException: 無効なセッション ID。com.iplanet.sso.providers.dpro.SSOProviderImpl.createSSOToken(SSOProviderImpl.java:111) で com.iplanet.sso.SSOTokenManager.createSSOToken(SSOTokenManager.java:241) で main.TestServlet2.doGet(TestServlet2.java:48) ) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain. java:304) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) org.apache.catalina.core org.apache.catalina.authenticator.AuthenticatorBase の .StandardContextValve.invoke(StandardContextValve.java:170)。com.iplanet.dpro.session.SessionException: 無効なセッション ID。com.iplanet.dpro.session.Session.getSession(Session.java:1062) com.iplanet.sso.providers.dpro.SSOProviderImpl.createSSOToken(SSOProviderImpl.java:92)
liferay - Liferay はスクリーンネームでユーザーを取得できません
スクリーンネームでユーザーを取得しようとするliferayの自動ログインフックを書いています。次のコードを使用してユーザーを取得しています。これは主にOpenSSOAutoLoginのバリエーションです。
User user = UserLocalServiceUtil.getUserByScreenName(companyId, screenName);
これは、liferay に記録されるスクリーン名が大文字の場合を除いて、ほとんどの場合に機能します。たとえば、liferay に保存されているスクリーン名が「TEST」の場合、ユーザーを取得できません。スタック トレースは次のように表示されます。
トレースには、「キー screenName=test を持つユーザーは存在しません」と明確に示されています。ここで「test」は小文字で書かれていますが、 getUserByScreenName() メソッドは大文字のスクリーンネームで呼び出されました。
いくつかの調査の後、小文字の変換がliferay UserLocalServiceImplで実行されることがわかりました。検索が失敗する理由だと思いますが、よくわかりません。
誰でもそれを確認できますか?liferay のスクリーン名は常に小文字にする必要がありますか?
アドバイスをありがとう。
tomcat - 認可のための OpenAM Tomcat J2EE エージェントの設定
OpenAM を使用して、Tomcat 6 でステージングされたテスト Web アプリケーションへの承認を構成したいと考えています。最終的な目標/ユースケースは次のようになります。
- ユーザー bob はグループ employee に属しています
ユーザー john はグループ マネージャーに属しています
従業員とマネージャーのみが employee.jsp ページにアクセスできます
- マネージャのみが manager.jsp ページにアクセスできます
認証部分に関するドキュメントがたくさんあり、私の環境で適切に構成されています。ログインする前に、「パブリック」ページにアクセスできます (構成した URI を強制しません)。しかし、「employee.jsp」などの保護されたページにアクセスしようとするとすぐに、OpenAM のログイン モジュールにリダイレクトされ、認証が必要になります。 . グループ従業員 (バッキング ユーザー ストアは Active Directory) に属するボブとして認証できますが、リダイレクト後もアクセスが拒否されます。このためのアクセスをどのように構成できますか? このリソースを保護するためにデプロイされるポリシー エージェントは j2ee_agent です。Web エージェントの方が関連性が高いようですが、Tomcat には j2ee エージェントがデプロイされていることがわかりました。何かご意見は?
ありがとう。
環境:
- ADを使用して、Windows 2008サーバー上でステージングされたtomcat 6にデプロイされたwebapp
- サーバーに集中化された構成で同じTomcat 6インスタンスにデプロイされたj2eeポリシーエージェント
- Windows 2008 Server AD をユーザー ストアとして使用して、jboss 7 内にデプロイされた別の Linux ボックス上の openam サーバー。
session - ColdFusion アプリ内の Open SSO で設定されたセッション変数の値を取得する
ユーザーのログイン時に Open SSO アプリケーションで設定されるセッション変数があります。ColdFusion アプリケーションからこの変数にアクセスする必要があります。それを行う方法はありますか?GetPageContext().getSession() を試しましたが、うまくいかないようです。
authentication - openam/opensso がロールのユニバーサル ID の代わりにロール名を返すようにする
アプリケーションでユーザーを認証するために OpenAM 9.5.2 を使用しています。認証はうまく機能しますが、最終的なアプリケーションからユーザー メンバーシップを取得する際に問題が発生します。
openam でグループ「somegroup」を定義し、ユーザーをこのグループに追加しました。私のアプリケーションでは、認証されたユーザーがこのグループのメンバーであるかどうかをテストしたいと考えています。私がそれをテストしている場合:
結果が出false
ます。実際、私はテストする必要があります
true
応答を得るために。
sso エージェント構成で特権属性マッピング リストを定義して にマッピングできることはわかっていますid=somegroup,ou=group,dc=opensso,dc=java,dc=net
がsomegroup
、ロールとグループが外部データベースに保存されているため、私の状況には適していません。データベースでロールを定義し、sso エージェント conf でマッピングするのは便利ではありません。
私の質問: openamsomegroup
に長いユニバーサル ID の代わりに「短い」(つまり) グループ名を使用させる方法はありますか?