я в настоящее время генерации SAML токены ADFS, как это:Как проверить SAML маркер компьютера ADFS
WSTrustChannelFactory factory = null;
try
{
// use a UserName Trust Binding for username authentication
factory = new WSTrustChannelFactory(
new UserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential),
new EndpointAddress("https://adfs.company.com/adfs/services/trust/13/usernamemixed"));
factory.TrustVersion = TrustVersion.WSTrust13;
factory.Credentials.UserName.UserName = "user";
factory.Credentials.UserName.Password = "pw";
var rst = new RequestSecurityToken
{
RequestType = RequestTypes.Issue,
AppliesTo = new EndpointReference(relyingPartyId),
KeyType = KeyTypes.Bearer
};
IWSTrustChannelContract channel = factory.CreateChannel();
GenericXmlSecurityToken genericToken = channel.Issue(rst)
as GenericXmlSecurityToken;
}
finally
{
if (factory != null)
{
try
{
factory.Close();
}
catch (CommunicationObjectFaultedException)
{
factory.Abort();
}
}
}
Теперь предположим, что я создаю веб-приложение, которое использует эти маркеры для проверки подлинности. Насколько я знаю, что рабочий процесс должен быть таким:
- Создать токен
- клиент получает генерируется маркер (после действительного входа в систему)
- клиент кэширует маркер
- клиент использует маркер для следующего входа в систему
- веб-приложение проверяет токен, не нужно вызывать ADFS
Как я могу проверить, что токен, который представляет клиент, действителен? Нужен ли мне сертификат сервера ADFS для расшифровки токена?
Я всегда мог сохранить маркер к БД, хотя ... – hoetz