RequestSecurityToken Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет элемент wst:RequestSecurityToken (RST), который используется для запроса токена безопасности.
public ref class RequestSecurityToken : System::IdentityModel::Protocols::WSTrust::WSTrustMessage
public class RequestSecurityToken : System.IdentityModel.Protocols.WSTrust.WSTrustMessage
type RequestSecurityToken = class
inherit WSTrustMessage
Public Class RequestSecurityToken
Inherits WSTrustMessage
- Наследование
Примеры
Пример кода, используемый в этом разделе, взят из Custom Token
примера. В этом примере представлены пользовательские классы, которые позволяют обрабатывать простые веб-маркеры (SWT), и он включает реализацию пассивной службы sts, которая может обслуживать маркер SWT. StS реализуется классом, производным от SecurityTokenService. Многие методы SecurityTokenService класса, вызываемые из конвейера выдачи маркеров, принимают RequestSecurityToken объект как один, если их параметры. Сведения об этом и других примерах, доступных для WIF, и о том, где их можно скачать, см. в разделе WiF Code Sample Index.
В следующем примере кода показана реализация метода SecurityTokenService.GetScope. Метод принимает RequestSecurityToken в качестве одного из своих параметров, а свойства этого параметра используются для задания свойств Scope объекта, возвращаемого методом .
// Certificate Constants
private const string SIGNING_CERTIFICATE_NAME = "CN=localhost";
private const string ENCRYPTING_CERTIFICATE_NAME = "CN=localhost";
private SigningCredentials _signingCreds;
private EncryptingCredentials _encryptingCreds;
// Used for validating applies to address, set to URI used in RP app of application, could also have been done via config
private string _addressExpected = "http://localhost:19851/";
/// <summary>
/// This method returns the configuration for the token issuance request. The configuration
/// is represented by the Scope class. In our case, we are only capable of issuing a token to a
/// single RP identity represented by the _encryptingCreds field.
/// </summary>
/// <param name="principal">The caller's principal</param>
/// <param name="request">The incoming RST</param>
/// <returns></returns>
protected override Scope GetScope(ClaimsPrincipal principal, RequestSecurityToken request)
{
// Validate the AppliesTo address
ValidateAppliesTo( request.AppliesTo );
// Create the scope using the request AppliesTo address and the RP identity
Scope scope = new Scope( request.AppliesTo.Uri.AbsoluteUri, _signingCreds );
if (Uri.IsWellFormedUriString(request.ReplyTo, UriKind.Absolute))
{
if (request.AppliesTo.Uri.Host != new Uri(request.ReplyTo).Host)
scope.ReplyToAddress = request.AppliesTo.Uri.AbsoluteUri;
else
scope.ReplyToAddress = request.ReplyTo;
}
else
{
Uri resultUri = null;
if (Uri.TryCreate(request.AppliesTo.Uri, request.ReplyTo, out resultUri))
scope.ReplyToAddress = resultUri.AbsoluteUri;
else
scope.ReplyToAddress = request.AppliesTo.Uri.ToString() ;
}
// Note: In this sample app only a single RP identity is shown, which is localhost, and the certificate of that RP is
// populated as _encryptingCreds
// If you have multiple RPs for the STS you would select the certificate that is specific to
// the RP that requests the token and then use that for _encryptingCreds
scope.EncryptingCredentials = _encryptingCreds;
return scope;
}
/// <summary>
/// Validates the appliesTo and throws an exception if the appliesTo is null or appliesTo contains some unexpected address.
/// </summary>
/// <param name="appliesTo">The AppliesTo parameter in the request that came in (RST)</param>
/// <returns></returns>
void ValidateAppliesTo(EndpointReference appliesTo)
{
if (appliesTo == null)
{
throw new InvalidRequestException("The appliesTo is null.");
}
if (!appliesTo.Uri.Equals(new Uri(_addressExpected)))
{
throw new InvalidRequestException(String.Format("The relying party address is not valid. Expected value is {0}, the actual value is {1}.", _addressExpected, appliesTo.Uri.AbsoluteUri));
}
}
Комментарии
Элемент wst:RequestSecurityToken (message) содержит параметры и свойства, используемые для запроса маркера безопасности из службы маркеров безопасности (STS). Сообщение (или элемент) называется RST. Класс RequestSecurityToken содержит свойства, представляющие элементы RST. RST может сформировать запрос, соответствующий любой из привязок запросов, определенных WS-Trust; например, привязка выдачи, привязка продления, привязка Проверить или Отмена. Многие свойства в RequestSecurityToken классе соответствуют элементам, которые присутствуют только в определенных типах запросов в соответствии с этими привязками. В зависимости от типа запроса, который представляет конкретный RequestSecurityToken объект, или параметров, присутствующих в конкретном запросе, который он представляет, некоторые свойства объекта могут иметь значение null
.
StS возвращает ответ на запрос в сообщении, содержавшем элемент wst:RequestSecurityTokenResponse (RSTR). Это сообщение представлено классом RequestSecurityTokenResponse .
Дополнительные сведения об элементе, представляемом этим классом, см. в спецификации WS-Trust, которая применяется к вашему сценарию: WS-Trust от февраля 2005 г., WS-Trust 1.3 или WS-Trust 1.4.
Конструкторы
RequestSecurityToken() |
Инициализирует новый экземпляр класса RequestSecurityToken. |
RequestSecurityToken(String) |
Инициализирует новый экземпляр класса RequestSecurityToken с указанным типом запроса. |
RequestSecurityToken(String, String) |
Инициализирует новый экземпляр класса RequestSecurityToken с указанным типом запроса. |
Свойства
ActAs |
Получает или задает токен безопасности для удостоверения, в роли которого пытается выступать запрашивающая сторона. |
AdditionalContext |
Получает или задает дополнительные сведения о контексте, необходимые для запроса. |
AllowPostdating |
Получает или задает содержимое элемента wst:AllowPostdating. (Унаследовано от WSTrustMessage) |
AppliesTo |
Получает или задает содержимое элемента wsp:AppliesTo. (Унаследовано от WSTrustMessage) |
AuthenticationType |
Получает или задает содержимое элемента wst:AuthenticationType. (Унаследовано от WSTrustMessage) |
BinaryExchange |
Получает или задает содержимое элемента wst:BinaryExchange. (Унаследовано от WSTrustMessage) |
CancelTarget |
Получает или задает токен для отмены в запросе WS-Trust на отмену. |
CanonicalizationAlgorithm |
Получает или задает содержимое элемента wst:CanonicalizationAlgorithm. (Унаследовано от WSTrustMessage) |
Claims |
Получает типы требований, запрашиваемые клиентом (запрашивающей стороной). |
ComputedKeyAlgorithm |
Получает универсальный код ресурса (URI), представляющий требуемый алгоритм, используемый, когда вычисляемые ключи используются для выданных токенов. |
Context |
Получает или задает содержимое атрибута Context в RST или RSTR. (Унаследовано от WSTrustMessage) |
Delegatable |
Получает или задает значение, определяющее, должен ли выданный токен быть помечен как допускающий делегирование. |
DelegateTo |
Получает или задает удостоверение, которому должен быть делегирован выданный токен. |
Encryption |
Получает или задает сведения о токене и ключе, используемые при шифровании. |
EncryptionAlgorithm |
Получает или задает содержимое элемента wst:EncryptionAlgorithm. (Унаследовано от WSTrustMessage) |
EncryptWith |
Получает или задает содержимое элемента wst:EncryptWith. (Унаследовано от WSTrustMessage) |
Entropy |
Получает или задает содержимое элемента wst:Entropy. (Унаследовано от WSTrustMessage) |
Forwardable |
Получает или задает значение, определяющее, должен ли выданный токен быть помечен как допускающий переадресацию. |
Issuer |
Получает или задает поставщика токена wst:OnBehalfOf. |
KeySizeInBits |
Получает или задает содержимое элемента wst:KeySize внутри сообщения RequestSecurityToken (RST). (Унаследовано от WSTrustMessage) |
KeyType |
Получает или задает содержимое элемента wst:KeyType внутри сообщения RequestSecurityToken (RST). (Унаследовано от WSTrustMessage) |
KeyWrapAlgorithm |
Получает или задает содержимое элемента wst:KeyWrapAlgorithm. (Унаследовано от WSTrustMessage) |
Lifetime |
Получает или задает содержимое элемента wst:Lifetime внутри сообщения RequestSecurityToken (RST). (Унаследовано от WSTrustMessage) |
OnBehalfOf |
Получает или задает токен для удостоверения, от имени которого делается запрос. |
Participants |
Получает или задает участников, которые имеют право использовать выданный токен. |
ProofEncryption |
Получает или задает токен, используемый для шифрования токена проверки. |
Properties |
Получает контейнер свойств для расширения объекта. (Унаследовано от OpenObject) |
Renewing |
Получает или задает семантику возобновления для запроса WS-Trust Renew. |
RenewTarget |
Получает или задает токен для возобновления в запросе WS-Trust на возобновление. |
ReplyTo |
Получает или задает адрес, используемый для отклика проверяющей стороне. (Унаследовано от WSTrustMessage) |
RequestType |
Получает или задает элемент wst:RequestType. (Унаследовано от WSTrustMessage) |
SecondaryParameters |
Получает или задает параметры, для которых запрашивающая сторона не является инициатором. |
SignatureAlgorithm |
Получает или задает содержимое элемента wst:SignatureAlgorithm. (Унаследовано от WSTrustMessage) |
SignWith |
Получает или задает содержимое элемента wst:SignWith. (Унаследовано от WSTrustMessage) |
TokenType |
Получает или задает содержимое элемента wst:TokenType. (Унаследовано от WSTrustMessage) |
UseKey |
Получает или задает содержимое элемента wst:UseKey. (Унаследовано от WSTrustMessage) |
ValidateTarget |
Получает или задает токен для проверки в запросе WS-Trust на проверку. |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |