4

オンプレミスの Windows Service Bus インストールで使用できるトークンを ADFS から取得しようとしています。次のメッセージが表示されるため、ADFS が正しく構成されていない可能性があります。

MSIS3127: 指定された要求は失敗しました。

トークンにアクセスするコードは次のとおりです。

    string adrecaSTS = "trust/13/usernamemixed";

    WS2007HttpBinding binding = new WS2007HttpBinding();

    binding.Security.Message.EstablishSecurityContext = false;
    binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
    binding.Security.Message.ClientCredentialType = MessageCredentialType.UserName;
    binding.Security.Mode = SecurityMode.TransportWithMessageCredential; //https

    string baseSSLUri = @"https://<myadfs>/adfs/services/";



    WSTrustChannelFactory trustChannelFactory = new WSTrustChannelFactory(binding, new EndpointAddress(baseSSLUri + adrecaSTS));
    trustChannelFactory.TrustVersion = TrustVersion.WSTrust13;
    trustChannelFactory.Credentials.UserName.UserName = "username";
    trustChannelFactory.Credentials.UserName.Password = "password";

    WSTrustChannel tokenClient = (WSTrustChannel)trustChannelFactory.CreateChannel();

    //create a token issuance issuance
    RequestSecurityToken rst = new RequestSecurityToken(RequestTypes.Issue);

    //call ADFS STS
    SecurityToken token = tokenClient.Issue(rst);

エンドポイントは ADFS で有効になっており、クライアント (別のドメインのラップトップ) は ADFS からの証明書を信頼しています。

ある種の信頼またはそれ以上の何かを設定する必要がありますか? このエラー メッセージは特に役に立ちません。

4

3 に答える 3

1

ここを参照してください:

https://github.com/thinktecture/Thinktecture.IdentityServer.v2/blob/master/src/Libraries/Thinktecture.IdentityServer.Protocols/WSFederation/HrdController.cs

ValidateToken メソッドにはほとんどのコードが含まれていますが、最初に汎用トークンから InnerXml を抽出し、それを SAML セキュリティ トークンに変換する必要があります (ここでもトークン ハンドラーを使用します)。

于 2013-09-27T09:44:41.200 に答える
0

問題が見つかりました。管理者アカウントとしてログオンしようとしていました。通常のユーザーを使用した場合、機能しました。

KeyType.Symmetric の KeyType を持つように RequestSecurityToken を変更する必要もありました。

于 2013-09-25T20:17:54.700 に答える