1

我使用身份联合(google、facebook、live id)和 WCF SOAP 服务配置了 Thintecture Identity Server。

现在我需要用于 Windows Phone 应用程序的 WCF Rest Endpoint (webHttpBinding)。我不想在授权标头中传递 WSTrust SAML 令牌。是否可以将 SamlToken 转换为 JWT 令牌以及如何:)?

以下是我尝试过的代码,但不起作用。

var factory = new WSTrustChannelFactory(
    new WindowsWSTrustBinding(SecurityMode.Transport),
    new EndpointAddress("https://identityserver.local/issue/???"))
{
    TrustVersion = TrustVersion.WSTrust13
};

var rst = new RequestSecurityToken
{
    RequestType =  RequestTypes.Issue,
    KeyType = KeyTypes.Bearer,
    TokenType = TokenTypes.JsonWebToken,
    AppliesTo = new EndpointReference("http://my.realm/")
};

var securityToken = xmlToken.ToSecurityToken();
var response = factory.CreateChannelWithIssuedToken(securityToken).Issue(rst);

感谢帮助。

4

1 回答 1

0

您可以配置 IdentityServer 以返回 JWT。转到全局配置并将默认令牌类型更改为 JWT(与默认 http 令牌类型相同的值)。那应该这样做。

更新:您为什么要使用 WSTrust - IdSrv 不支持通过 WS-Trust 使用例如 google 的身份验证。

于 2013-07-01T16:05:22.657 回答