問題タブ [opensaml]
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.
saml - IDP が開始した SLO が機能しない
OpenAM が IDP の役割を果たしているアプリケーションに SAML ベースの SSO を使用しています。SP ベースの SSO、SLO、および IDP ベースの SSO をテストしました。すべて正常に動作していますが、IDP ベースの SLO は動作していません。ユーザーが IDP からログアウトすると、SP で通知を受け取りますが、この要求には含まれていません。ユーザー情報やブラウザの Cookie など、
- これらの通知はバックチャネリングされていますか?
- そうでない場合、SP側のセッションをフェッチして、そのような通知が来たときに無効にするにはどうすればよいですか?
また、Javaで利用可能ないくつかのサンプル実装はありますか?
single-sign-on - 同じ SAML 応答を 2 回、複数回受け入れる必要がありますか?
SAML フェデレーション ソフトウェアは、許可された SAML トークンの有効期間内である限り、同じ SAML 応答を受け入れる必要がありますか?
簡単に言えば、 IDP (識別プロバイダー) が SAML 応答を発行し、SP (サービス プロバイダー) がそれを受け入れて処理します。同じ未変更の SAML 応答を最初に使用した直後に再使用できますか? SAML 発行のタイムスタンプが許容範囲内であることを前提としています。
セキュリティ上、SAML トークン (応答) の使用を 1 回だけに制限することは理にかなっています。これにより、たとえ「中間者」によって盗まれたとしても、再利用できなくなります。しかし、それを実装するために、ソフトウェアは SAML 応答に関する情報をどこかに保存する必要があります: シリアル番号、全体のハッシュ?
可能性に関する説明や実装例へのリンクをいくつか提供してください。
ありがとうございました!アレックス。
opensaml - org.opensaml.xml.validation.ValidationException: Apache xmlsec IdResolver は ID 参照の要素を解決できませんでした
SAML アサーション署名を検証しようとしていますが、次のエラーが発生します:
OpenSAML 2.6.1、XMLSec 1.5.6、および JDK7u51 を使用しています。このエラーを取り除く方法はありますか?
saml - SAML の実現可能性
共通の一元化された認証システムが必要な 4 ~ 5 つの Web ベースのアプリケーションがあるシナリオがあります。この場合、SAML ベースのアプローチがどれほど実現可能か、つまり、ユーザーがこれらの Web アプリケーションのいずれかにアクセスするたびに、ユーザーはリダイレクトされます。 IDPにリダイレクトするSAMLサーバーへ、または私がこのドメインに慣れていないようなアーキテクチャのためのより良いソリューションです
java - 復号化されたアサーションの Opensaml アサーション署名の検証に失敗しました
Opensaml を使用して SAML アサーションを復号化しました。復号化はエラーなしで行われますが、そのアサーションの署名を検証しようとすると、エラーで失敗します
「org.apache.xml.security.signature.MissingResourceFailureException: URI #eimakmeiiebhiefoopoogamnnbibdpkfloophhdd のリファレンスに XMLSignatureInput がありません」
(暗号化を使用しなかった場合の同じ構成では、署名の検証は正常に行われます)
xml - SAML 応答オブジェクトのマーシリング
こんにちは、SAMLResponse オブジェクトをマーシャリングしようとすると、次のエラーが発生します。何か案は ?
saml - IdP が authnRequest を含む変数の名前を認識する方法
saml ID プロバイダーを実装します。サービス プロバイダーは、SAMLRequest などの名前を持つ非表示入力に authnRequest を含む HTML を送信します。
しかし、IdP がこの名前 (SAMLRquest) をどのように認識しているか、実際にはこの名前をハードコーディングしました。他の方法があるかどうかを尋ねます。
saml - SAMLResponse に埋め込まれた署名付きアサーションを検証する
私は OpenSaml ライブラリを使用しており、署名されていない SAMLResponse に埋め込まれた署名付きアサーション (XML 署名) を検証したいと考えています。検証は常に失敗します。親 (応答) なしで署名されたアサーションを検証する方法はありますか? または、それを行う別の方法はありますか?
single-sign-on - ID プロバイダーのメタデータが見つかりません
テスト目的で、localhost で Shibboleth サービス プロバイダーと ID プロバイダーの両方を構成しようとしています。
問題は、保護されたリソースにアクセスしようとすると、「ID プロバイダーのメタデータが見つかりません」というエラーが表示されることです。
ソフトウェア構成とこの特定のエラー修正に関連するすべてのチュートリアルとディスカッションを既に読みましたが、何もうまくいきません。
SP の shibboleth2.xml 構成:
SP 構成による idp.metadata.xml 参照:
私のエラーの一般的な理由として、両方のファイルのentityIDが等しいことに注意してください。
保護されたサイトはローカル IIS でホストされ、次の方法でアクセスできます。
エラーが発生する URL。
SP と IdP の両方で可能なステータス URL はすべて、成功した結果を返します。
何か案は?
saml-2.0 - SAML 2.0 EncryptedAssertion を復号化すると、名前空間宣言が削除されますか?
暗号化された SAML アサーションを受け取る Web サービスを作成しています。SAML アサーションが暗号化される前に検証できました。
サービスが EncryptedAssertion を復号化すると、アサーション署名を検証できません
その理由を調べるために、次のような小さなテストを作成しました。
- 署名されたアサーション (検証可能) を作成します - assertion1
- assertion1 の署名を検証しました - このテストはパスします
- assertion1 を暗号化して EncryptedAssertion を取得します
- EncryptedAssertion を復号化してアサーションを取得します - assertion2
- assertion2 の署名を検証します - このテストは失敗します
assertion1 ノードと assertion2 ノードを比較すると、違いは 1 つだけです。Assertion1 では、xmldsig 名前空間が Assertion ルート要素と ds:Signature 要素の両方で宣言されています。Assertion2 では、Signature 要素の xmldsig 名前空間宣言が削除されています。
XML に関しては、これは完全に有効な変換であり、XML は引き続き有効です。私の問題は、この変更が行われると、アサーションの署名が現在欠落しているプレフィックス宣言を考慮に入れているため、署名が無効になることです。
OpenSAML Encrypter/Decrypter に、受信した XML を「改善」しないように指示し、最初に入力として使用されたものを Encrypter に返す方法はありますか?
xmldsig 名前空間の 2 つの宣言を含む XML を構築するクライアントを変更することは、実際にはオプションではありません。そうですね。しかし、このサービスのクライアントは別の会社によって開発されており、可能であれば、この種の入力の問題に対してサービスを堅牢にしたいと考えています。
assertion1 を暗号化するテスト コードは次のとおりです。
これは、EncryptedAssertion を復号化するテスト コードです。
これは assertion1 の始まりです:
これは assertion2 の始まりです。assertion1 と比較して、Signature ノードの xmlns:ds 宣言が欠落していることに注意してください。
更新: これは、assertion2 の署名を検証しようとしたときに発生する例外です (復号化後に xmlns:ds がない場合)。回答で提案されているように decrypter.setRootInNewDocument(true) を呼び出すと、検証呼び出しが正常に完了します。