SAMLからクレームを作成しようとすると、エラー "WIF10201:有効なキーマッピングが見つかりませんでした"
-
21-12-2019 - |
質問
第三者からSiteMinder IDPから来ているSAMLレスポンスを検証しようとしています。私はそれらによって提供された証明書をインストールしました。 ValidateToken メソッド(System.IdentityModel.Tokens)を呼び出してクレームを作成すると、次のエラーが発生します。
WIF10201:有効なキーマッピングが見つかりません securityToken: 'system.identityModel.tokens.x509SecurityToken'と 発行者: '発行者uri'
私は誤りを見つけるために深く掘り下げられ、それはメソッド getissuername (System.IdentityModel.Tokens)によって投げられます。
問題はどこですか?私はこの問題のためにグーグルされましたが、私の訴訟に固有のものは見つかりませんでした。私のクライアントからのSAMLトークンに問題があるか、実装に欠けているものがあります。私は連合承認にかなり新しいので、使用されている用語で不正確さを言い訳してください。
Gaurav
解決
OKは解決策を見つけましたが、その背後にある読み取りを全く理解できません(私がもっと知っているときに答えを更新します)。
この新しいトークンにSAML2応答を変換するというこのアプローチをフォローしてから、その新しいトークンでコードが実行されましたが、エラーは発生しました。
注:次のエラーを回避するために、検証トークンメソッド(もともとしたもの)をオーバーライドする必要があります。
“ID4154: A Saml2SecurityToken cannot be created from the Saml2Assertion because it contains a SubjectConfirmationData which specifies an InResponseTo value. Enforcement of this value is not supported by default. To customize SubjectConfirmationData processing, extend Saml2SecurityTokenHandler and override ValidateConfirmationData.”
.
ありがとう。
他のヒント
あなたはおそらくあなたはおそらく発行者名を(トークン内で指定されている)証明書にマッピングされている構成を見つけるでしょう(おそらく拇印で指定されています)。私はあなたがあなたのweb.configのいくつかの構成でこれを解決すると思います。p.eを見てください。>マイクロソフトの検証発行者名レジストリページにはいくつかのサンプル設定が含まれています。これを正しく設定すると、完全にあなたの状況に依存します。
私はこの誤りにも走っていますが、私の決議は異なっているので、将来の参考のためにメモを作りたいと思いました。Windows Server 2012でADFS(3.0)クレームベースの認証を使用しているカスタムMVCアプリケーションでWIF10201エラーが発生しました.MVCアプリケーションのweb.config
では、ADFSトークン署名キーの拇印が記録されます。署名証明書が期限切れになっているとき、ADFSは新しいキーを作成します。新しいキーには "PRIMARY"とマークされ、古いキーはADFSコンソール(AD FS / Service / Certificates)の「セカンダリ」としてマークされています。そのため、私のweb.config
では、もちろん、まだ古い(セカンダリ)キーの拇印がありました。新しい(プライマリ)キーの拇印と交換するとすぐに、エラーが消えた。