問題タブ [spring-saml]
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.
spring - Spring SAML で SAML レスポンスを処理する
Spring SAMLを使用して Service Provider を開発しました。いくつかのIdPを構成しましたが、それぞれに属性の命名規則が異なります。
- AuthNプロセスが成功した後、SAML 応答全体を ( Tomcatの
logs/catalina.out
ファイルに) ログに記録できますか? EntityID
特定の IdPと、返された をマップする属性との間の関連付けを定義するためのネイティブ機能はありuserID
ますか?- OID 形式についても読んでいます。この種のデータを適切にデコードするにはどうすればよいですか?
アップデート:
ドキュメントによると、最初の質問については、次のようにデバッグ ログと認証ログの両方をセットアップします。
次に、 a を次のように定義log4j.properties
します。
そしてMavenを適切に設定することによってpom.xml
それにもかかわらず、完全な SAML 応答は表示されません (XML メッセージを期待しています)。出力は次のとおりです。
最後の 2 行は私が手動で定義したことに注意してください。
java - Spring SAML を使用して https からメタデータをロードする
httpsプロトコルを使用して、Web からいくつかのメタデータをインポートしたいと思います。
ドキュメントを読むと、次のステップが見つかりました。
デフォルトでは、HTTPS 経由で HTTP ベースのプロバイダーを使用してメタデータをロードすると、JDK で構成された信頼検証が実行されます。keyStore で証明書を使用する場合は、HTTP クライアントが使用する socketFactory を変更する次の Bean を追加します。
Java Config で変換すると、次のようになります。
しかし、org.springframework.security.saml.trust.httpclient.TLSProtocolSocketFactory
クラスの結果は見つかりませんでした。Spring SAMLのバージョン1.0.0-RC2
を使用しています。
私は何か間違ったことをしていますか?
このエラーを修正し、必要に応じてメタデータをロードするにはどうすればよいですか?
アップデート
SNAPSHOT リポジトリを使用することで、TLSProtocolSocketFactory クラスを使用できます。SSOCircle の証明書をキーストアにインポートしましたが、それにもかかわらず、アプリケーションは次のようなエラーを返します。
更新 2
あなたの提案に従ってコードを修正しました。すべての証明書をキーストアにインポートしましたが、起動時にアプリケーションが次のエラーを返します。
使用される証明書は GoDaddy によって検証されることに注意してください。
java - Weblogic 12c での Spring SAML
私は現在、認証の一部としてSpring SAML ( http://projects.spring.io/spring-security-saml/ ) プロジェクトを利用するアプリケーションに取り組んでいます。まだRCであることは知っていますが、私たちが取り組んでいるアプリケーションもそうです。ライブラリは統合されており、Tomcat7 にデプロイすると完全に機能しますが、Weblogic 12c (12.0.1.2) にデプロイすると問題が発生します。エラーをスローしないWeblogicでは、アサーション値は空のエラーなしとして復号化されます。
問題は Xerces ライブラリにあるようです。Spring SAML (OpenSAML のため) は、私が知る限り 2.10.0 を必要としますが、Weblogic は Xerces ライブラリの 2.8.0 を提供します。適切な xercesImpl および xml-apis jar をプロジェクトの WEB-INF/lib フォルダー。これにより、Spring SAML の復号化の問題が修正されますが、JSP ページを解析する Weblogics の機能が損なわれます。以下に、アップグレードされていない Xerces 例外とアップグレードされた Xerces 例外のスタック トレースの一部を含めました。Spring SAML がデフォルトの機能を壊さずに Weblogic で機能できるように、この問題を適切に修正する方法を誰かが知っている場合は、大いに感謝します。
これはXercesを更新する前のスタックトレースです
Xercesを2.10.0にアップデートした後のスタックトレースです。
spring-security - Spring Security SAML のオンとオフを切り替える方法
他の認証メカニズムに加えて、Spring Security saml をアプリケーションにかなり標準的に実装しています。既定の SAML は構成されませんが、フォームから構成できるため、既定では SAML を無効にする必要があります。SAML のオン/オフを簡単に切り替えられるようにしたいのですが、これを行う最善の方法がわかりません。
1 つのアプローチは、saml が有効かどうかを確認し、有効な場合は samlFilter チェーンを無視するカスタム FilterChainProxy を実行し ( Spring Security のデフォルト フィルター スタックから 1 つのフィルターを削除する方法は? )、同様の実装を行うことのようです。メタデータ ジェネレーター フィルター。
どんなアドバイスも素晴らしいでしょう。
これが私の設定です:
メタデータ ジェネレーター フィルター:
サム フィルター:
編集:これが私の実装です。これは少しハックであり、非推奨の方法に依存していますが、機能します
以下のスニペットは、MetadataGeneratorFilter を無効にします。
autowired である samlFilter / FilterChainMap もあります。saml が有効になっている場合は、このチェーンをそのままにしておきます。無効になっている場合は、saml を有効または無効にするサービスの空のマップにチェーンを設定します。
初期化時に、filterchainmap 値を取得します。
以下のメソッドでは、フィルター チェーン マップを、Spring xml で提供される元のマップ (有効な場合) または空のマップ (無効な場合) に設定します。
spring - roor dir を使用すると SAML エンドポイントが一致しない
サービス プロバイダーの SAML コンテキストをセットアップするために、次のような構成を使用しています。
次のエラーが返されます (不要な「スラッシュ」だけがあります)。
どうすれば修正できますか?
java - SAML メタデータ エントリの署名信頼の確立に失敗しました
リモート ソースからメタデータを取得するために、次のようにExtendedMetadataDelegate
Beanを定義しました。
署名の信頼を確実に確立するために、関連するキーを JDK キーストアとアプリケーション キーストアの両方に追加しました (2 番目の手順では不十分な場合があります)。それにもかかわらず、webapp を実行するとエラーが発生します。
次のように設定すると、エラーが消えます。
...しかし、使用されているメタデータを確認したい。
このエラーを解決する方法はありますか?
アップデート:
次のようにセットアップしようとしましたExtendedMetadata
が、エラーが続きます。
java - Spring フレームワーク 4.0 および Spring security 3.2.4 の Spring Security SAML 拡張機能
Spring ベースのアプリケーションにアノテーション構成を使用したいと考えています。また、SSO の目的で SAML2.0 の消化と生成が必要です。
Spring 4.0 および Spring security 3.2.4 でのみサポートされるアノテーション構成
Spring セキュリティ SAML 1.0 の統合は可能ですか?
更新: Vladimír Schäfer によって提供されたサンプル プロジェクトは本当に役に立ちます。
しかし、sso ログイン後、ページはサービス プロバイダー アプリの認証失敗 URL にリダイレクトされました。
SAML 応答は次のとおりです。
これは、SP のタイム ゾーンが IDP と異なるためだと思われます。これをスキップするにはどうすればよいですか?
authentication - Spring-SAML 認証に失敗しました: HttpSession が SPRING_SECURITY_CONTEXT の null オブジェクトを返しました
spring-saml2-sample アプリを使用して Shibboleth IDP に接続しています。最終的に、http ポストを使用して正しい saml リクエストを IDP に送信することができましたが、ログイン後、SP 側で次のように返されます。
org.springframework.security.web.context.HttpSessionSecurityContextRepository - HttpSession が SPRING_SECURITY_CONTEXT に対して null オブジェクトを返した
spring security version 3.1.2 に移行することで問題が解決したというこのような投稿がありましたが、saml2-sample アプリに同梱されているバージョンです。何か不足していますか?saml2-sample アプリはあまり変更していません。web.xml は同じで、ライブラリも同じです。
どんな助けでも大歓迎です。