2011-07-11 2 views
1

私はMicrosoft.IndentityModel(= Windows Indentity Foundation)を使用してSTSにカスタムSecurityTokenSecurityTokenHandlerを実装しようとしています。WIFのカスタムSecurityTokenHandler

トークンは、シグネチャ(X509証明書を使用)を使用してシンプルなxmlドキュメントにシリアル化され、時には(必ずしも)暗号化されません(ターゲットレルムに依存します)。

これまではかなりうまくいっていましたが、SecurityTokenHandler.CreateSecurityTokenReference(SecurityToken token, bool attached)につきました。これはSecurityKeyIndetifierClauseを返します。

SecurityKeySecurityKeyIndentifierSecurityKeyIndentifierClauseは一般的で、私のsceanrio(rsa署名(および暗号化)xmlトークン)は具体的に何ですか?

MSDNにはほとんどドキュメントがありません。このトピックで役立つものは何も見つかりませんでした。

ありがとうございます。

P .:私は、samlのようなトークン形式でビルドを使用するのが最も簡単で推奨される方法を知っていますが、トークンは影響を受けない特定の形式を予期するレガシーシステムによって評価されます。

答えて

2

は、私は私の自己は、質問の答えを見つけました。これは、ベアラトークンの実装では必要ありません。したがって、あなただけのセキュリティトークンの対応するプロパティに空のリストを返すことができます。

public override ReadOnlyCollection<SecurityKey> SecurityKeys 
{ 
    get { return new List<SecurityKey>().AsReadOnly(); } 
} 

SecurityKeyIdentifierClause

としては、すでにSecurityKeyIdentifierClauseは、一意の識別子の一種である他の回答で指摘しましたセキュリティトークンのこれはSecurityTokenResolverによって使用され、対応するSecurityTokenを指定してSecurityKeyIdentifierClauseに戻します。

public override SecurityKeyIdentifierClause CreateSecurityTokenReference(SecurityToken token, bool attached) 
{ 
    if (token == null) 
     throw new ArgumentNullException("token"); 

    return new LocalIdKeyIdentifierClause(token.Id); 
} 

SecurityKeyIdentifier

SecurityKeyIdentifier:パラメータをLOCALIDとして

は、おそらくあなた自身のSecurityTokenHandler実装のための最善の解決策は、あなたのトークンのIDでLocalIdKeyIdentifierClauseを返すことですSecurityKeyIdentifierClausesのコレクションです。今まで必要だったときはSystem.IdentityModel.Tokensの実装をここで使用できます。あなたの自己によってこれを世話する必要は通常ありません。

0

キー識別子は、カスタムトークンで使用され、いくつかのことを行います。彼らはトークンを記述し、そして/または他の関連するトークンを指し示す(トークンはちょうどポインタかもしれない - おそらくパフォーマンス理由などのために)。 CanWriteKeyIdentifierClauseから

  • 戻り偽:あなたはキー識別子を必要としない場合は、2つのことを行うことができます

    公共オーバーライドブールCanWriteKeyIdentifierClause(SecurityKeyIdentifierClause securityKeyIdentifierClause)偽 { リターンを。 }

  • 戻りCreateSecurityTokenReferenceからデフォルト(またはnull)値:

    SecurityKeyIdentifierClause CreateSecurityTokenReference(セキュリティトークンのトークンは、添付BOOL)

    公共オーバーライド {戻りデフォルト(SecurityKeyIdentifierClause)。

    SecurityKey

    A SecurityKey暗号化操作のために使用されます。一方 }

関連する問題