問題タブ [picketlink]
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.
java - tomcat7 の picketlink SPFilter 統合でロールが送信されない
ここで非常に明白な何かが欠けていると思いますが、検索と試行に約 4 時間を費やしましたが、解決策にたどり着けなかったので、何か助けがあるかもしれません。私はこのガイドに従っていました: https://docs.jboss.org/author/display/PLINK/Standalone+Web+Applications%28All+Servlet+Containers%29 SP と IDP を接続してログインを実行できました。セッションにユーザー プリンシパルが表示されます。ただし、Tomcat セキュリティを追加するとすぐに、上記の例のようにアプリケーションの一部を保護するために機能しません。web.xml の関連部分は次のとおりです。
/loginarea/ の下にある何かにアクセスしようとすると、SPFilter やコードにアクセスすることさえせずに 403 が返されます。ただし、他の URL の下にあるコードから、ユーザー プリンシパルを読み取ることができ、Tomcat ユーザーが含まれています (クイックスタートの例から)。興味深いことに、ロールを読み取ろうとすると、常に null が返されます。
プリンシパル userPrincipal = (プリンシパル) request.getSession().getAttribute(GeneralConstants.PRINCIPAL_ID); <-- 正しいユーザー名を持つプリンシパルを返します
ロールのリスト = (リスト) request.getSession().getAttribute(GeneralConstants.ROLES_ID); <- null
security-constraint を削除すると、問題なくアプリとコントローラーにアクセスできます。例から基本的なリダイレクト idp を使用しています。
よろしくレオン
certificate - 中間証明書を使用しない署名の検証
階層内に祖先またはルート証明書のみを持つ署名を検証することは可能ですか?
免責事項: 私は証明書処理の初心者なので、素朴な用語を許してください。
次の状況を考えてみましょう。
- 2 つの当事者 ( ID プロバイダーの場合はIdP 、サービス プロバイダーの場合はSPと呼びましょう) と、IdP と SP の両方によって確実に信頼されているいくつかの中央認証局CAがあります。
- CA には、IdP と SP の両方に知られている独自の証明書CertCAがあります (何らかのエイリアスで IdP と SP のキーストアにインポートされます) 。
- Out CA は、IdP 用 ( CertIdP ) と SP 用( CertSP ) の証明書を 1 つずつ発行します。
- IdP はキーストアに CertIdP を持ち、そのパスワードを知っているため、IdP は CertIdP でメッセージに署名できます
- SP/CertSP も同様
- ここで、SP が CertIdP を認識しておらず、IdP が CertSP を認識していないと仮定します。彼らは、CertIdP と CertSP の署名に使用された CertCA しか知りません。(私が理解しているように、証明書階層 CertIdP --> CertCA <-- CertSP here-) があります。
- IdP は、署名付きメッセージを SP に送信したいと考えています。メッセージを作成し、CertIdP を使用して署名します。
- SP は、CertIdP を使用して IdP によって署名されたメッセージを受信します。上記のように、SP には CertIdP がなく、親証明書 CertCA のみがあります。
私の質問は次のとおりです: SPは、親証明書CertCAのみを持つCertIdPによって署名されたメッセージの署名を検証できますか?
バックストーリー、なぜそれが欲しいのですか。
PicketLink を使用して SAML ベースの SSO を実装しています。PicketLink のSAML2SignatureValidationHandlerを使用して署名を検証しています。これを実現するには、サービス プロバイダー (SP) のキーストアに IdP の証明書が必要です。署名された SAML アサーションが SP に渡されると、このハンドラーは IdP の証明書を使用して署名を検証します。
上記のプロセスはうまく機能しますが、組織的な問題がいくつかあります。このプロセスは、SP が検証用の IdP の証明書を持っていることを前提としています。何か変更があった場合、SP 側で IdP の証明書を置き換える必要があります。多数の SP (数千ではなくても数百) が存在する可能性があるため、これはかなりの労力です。
CertIdP と CertSP の両方が、IdP と SP の両方によって確実に信頼されている同じ機関 (CA) によって発行されているため、署名の検証に CA の証明書を使用できるという考えがありました。これが機能する場合、IdP と SP の間で証明書を交換する必要がなくなる可能性があります。CA の証明書も非常に「長寿命」であるため、交換する必要があるのは永遠に 1 回だけです (この場合の永遠は約 10 ~ 20 年です)。
ただし、親 CertCA のみを持つ CertIdP で署名された署名を検証することが技術的に可能かどうかはわかりません。出来ますか?それとも、ここで完全に間違った方向に進んでいますか?
関連する場合は、SP 側で Java/JBoss プラットフォームを使用しています。IdP はサードパーティ ソフトウェアです。
アップデート:
これは、IdP から現在取得している署名です。
jboss7.x - JPA を使用した PicketLink での基本的な HTTP 認証が失敗する
フォーム認証で問題なく使用されている picketlink 設定が機能しています。
現在、システムの別のセクションに HTTP 認証を追加しようとしていますが、追跡が困難なエラーで失敗しています。エラーのスタック トレース:
blah.blah.RealmTypeEntity_$$_jvst83e_bc
奇妙なことの 1 つは、jvst 部分はそのままであるにもかかわらず、最後にあるクラスの名前 ( ) が展開ごとに変わることです。
web.xml:
IdentityConfiguration が提供され、RealmTypeEntity.class
マップされています。ただし、明らかにRealmTypeEntity_$$_jvst83e_bc
バリアントがマッピングされておらず、これらがどこから来たのかは明らかではありません。
多くのピケリンクと同様に、Google からの支援はほとんどないようです :-(
どんな助けでも大歓迎です。
java - @RolesAllowed が正しく機能しない
メソッドへのアクセスを、特定のロールを持つユーザーのみに制限する必要があります。IdentityManager は正しく構築されています。
私はこのコントローラークラスを持っています。
そして、このクラスはAccessDeniedException
上記のメソッドによってスローされたものを処理しsaveUserChanges
ます。
問題は、AccessDeniedException
が正しくスローされ、SecurityExceptionHandler
クラスによってキャッチされることですが、メソッドsaveUserChanges()
はとにかく実行されます。
そうですか?saveUserChanges()
ユーザーが「tt」ロールを持っていない場合、メソッドが実行されないようにしたい。
rest - Picketlink Defaultlogincredentials は Rest サービスにボディ ライターがありません
Picketlink クイックスタート ガイドに従っています。
Tomee 1.7 でユーザー用のログイン Rest サービスを作成しました。クイックスタート ガイドによって提供される contentType を使用します。(application/x-authc-username-password+json) パラメータとして Picketlink Defaultlogincredentials オブジェクトを取ります。
UI から json オブジェクトを渡すと、次のエラーが発生します。応答クラス Defaultlogincredentials のメッセージ本文ライターが見つかりませんでした。
また、contentType を application/json に設定しようとしました。
Rest サービスは、コンテンツをオブジェクトに解析する方法を知りません。
pom.xml とクイックスタート プロジェクトを調べて、依存関係や構成設定を見逃していないかどうかを確認しました。違いは、クイックスタートが jboss で実行され、私は tomee で試していることです。
Tomee の Rest サービスを取得してコンテンツを Defaultlogincredentials オブジェクトに解析するにはどうすればよいですか?
java - グループに割り当てられたロールの Picketlink @RolesAllowed
アプリケーションに picketlink を使用しています。どなたか助けていただければ幸いです。
アプリケーションには多くのグループ (管理者、カスタマー サービスなど) があり、各グループには多くの役割 (新しいユーザーの作成、新しい従業員の作成、給与処理の開始など) を設定できます。
ユーザーを 1 つ以上のグループに割り当て、グループを 1 つ以上のロールに割り当てることができます。通常、グループに割り当てられたユーザーは、グループのすべての役割を継承すると考えていました。グループに割り当てられたユーザーに BasicModel.hasRole を使用すると、そのグループに割り当てられたすべてのロールに対して true が返されます。これは予想どおりです。ただし、残りのエンドポイントで @RolesAllowed アノテーションを使用すると、同じユーザーに対して常にアクセス拒否例外が返されます。誰かが提案できる回避策があれば?@RolesAllowed で、許可されたロールを持つグループ内のユーザーが通過できるようにしたい。
または、使用できる他の注釈はありますか?
java - Picketlink ソース コンパイル エラー
ソースから picketlink をコンパイルしようとしていますが、mvn install または mvn package を実行すると同じエラーで失敗し続けます。
「PicketLink Identity Management API」で常に失敗し、エラーが発生する
バージョン 2.5.0、2.5.1、2.5.2、2.6.0、および 2.6.1 で試しました。
何が問題なのですか?どうすれば修正できますか?
ありがとう