Я настроил сервер идентификации Thintecture с идентификационной федерацией (google, facebook, live id) и WCF SOAP-службой.Преобразовать токен SAML в токен JWT с помощью IdentityServer
Теперь мне нужна конечная точка останова WCF (webHttpBinding) для приложения Windows Phone. Я не хочу передавать маркер 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);
Спасибо за помощь.
Спасибо, за ответ. Мне нужны два токена ... один SAML для рабочего стола WCF (WPF, Windows Store) и один для клиентов REST (Windows Phone, Android, iOS) или можно использовать JWT в обоих сценариях? Завтра я попробую службу ACS Wrap Service ..., которая преобразует SAML в JWT/SWT. Я не сейчас, это сработает? И, отвечая на ваш вопрос, я использую WS-Federation с (с обнаружением домашнего царства) Google, Live Id и Facebook. Я перехватываю запрос веб-запроса между Identity Sarver и Facebook, например, и получает токен SAML. Когда я получаю токен SAML, я пытался использовать WS-Trust для получения JsonWebToken. – zielu1
Да, это не сработает - вы можете преобразовать его вручную (но для этого требуется ключ подписи) или использовать ACS для его преобразования. Ни один из них не является идеальным решением;) Вы можете расширить IdSrv, чтобы предоставить вам такую услугу, конечно. – leastprivilege
Расширение IdSrv - отличная идея ... это выглядит очень естественным и простым решением. Я попробую этот путь. – zielu1