サービスをSAML2.0サービスプロバイダ(SP)に設定しています。 SAMLリクエストを生成する必要があり、SAMLレスポンスを受け入れる必要があります。 SAMLレスポンス(IDPによって開始されたアサーションを持つ)は、要求なしで来るかもしれません。これは単なるSSOとSAMLの世界であり、私はこれを大いに活用しています。SAML会話に使用されるエンコーディングとは何ですか?
私の感覚は、SAMLリクエストまたはレスポンスが収縮しているかどうかです。 SPがSAML要求を収縮させることは良い習慣のようです。
リクエストとレスポンスもBase64エンコードされています。しかし、ここに私の質問があります。 SAMLレスポンスを取得したとしましょう。それはBase 64 Encodedです。私がそれをデコードすると、バイト配列が得られます。これが収縮しないと仮定すると、XMLとして扱うために、バイト配列から文字列を取得する必要があります。
この文字列のエンコーディングについて教えてください。
ので、C#で/ MVC/NETの世界:。
public ActionResult ConsumeSamlAssertion(string samlResponse)
{
if (string.IsNullOrWhiteSpace(samlResponse))
{
return Content("Consumption URL hit without a SAML Response");
}
// MVC Already gives me this URL-decoded
byte[] bytes = Convert.FromBase64String(samlResponse);
// For this question, assume that this is not deflated.
string samlXmlIfAscii = Encoding.ASCII.GetString(bytes);
string samlXmlIfUtf8 = Encoding.UTF8.GetString(bytes);
// Which is correct? Or is there a different one?
は、これは私が(見ての希望のためではないです)見逃しているいくつかの標準にですか?
多くのありがとうございます。
ちょっとアンデルス、ありがとう! .NETスタックについて興味があります。私が詳細に見てきた唯一のものはコンポーネントスペースです。それは、私の歯を磨くことを含むすべてを行うためにSAMLを使用するオプションを与えるようです。ちょっと高価ですが、これは世界の終わりではありませんが、私はSAMLをちょっとしたものにしたいと思っています。ほとんどの場合、ドキュメントを見ると、単にDLLの設定自体が複雑で恐ろしいものになっているようです。あなたは他の提案がありますか?率直な答えを感謝します。 –
私はgithub.com/KentorIT/authservicesの作成者ですので、私が最もよく知っている.NET SAML2ライブラリです(もちろん、私が一番いいと思うのは;-) –
ありがとう、ありがとう。私はそれをチェックすることを楽しみにしています。 –