WIFを使用してカスタムSTSを構築しています。SecurityTokenServiceクラスを継承した後、WSTrustServiceHostとIWSTrust13SyncContractを使用して、STSをWCFサービスとしてホストしました。そして、それは単なるプロトタイプSTSなので、BasicHttpBindingを使用していました。
クライアント側では、WSTrustChannelFactoryを使用してSTSに接続し、出力クレームを正常に取得できます。
しかし、認証情報(ユーザー名とパスワード)を追加しようとすると、STSに渡すことができないことがわかりました。
1、BasicHttpBindingを使用していた場合、クライアント側のfactory.Credentials.UserName.UserNameおよび.Passwordを介して指定したにもかかわらず、STSでユーザー名とパスワードが見つかりません。
2、UserNameWSTrustBinding(SecurityMode.Transport)を使用するように変更しましたが、STSでユーザー名とパスワードを取得できません。
3、STSでは、メソッドGetScope、GetOutputClaimsIdentityのパラメーターは、クライアント側から指定したものではなく、サーバーコンソールアプリケーションを実行するプリンシパルです。
4、別のUserNameSecurityTokenHandlerを登録し、そのValidateTokenメソッドをオーバーライドしました。しかし、STSはこのメソッドを呼び出さなかったようです。そして、STSは、CreateTokenの実装がないという例外を提起しました。
5、組み込みのWindowsUserNameTokenHandlerを試しましたが、同じ例外が発生しました。
誰かが見て、対処方法について私にいくつかの提案をすることができますか?