Estoy implementando un IAuthorizationServerHost
personalizado usando la biblioteca DotNetOpenAuth
.
Implementación de ejemplo utiliza dos certificados para CreateAccessToken
(ver Listado 6):
public AccessTokenResult CreateAccessToken(
IAccessTokenRequest accessTokenRequestMessage)
{
var token = new AuthorizationServerAccessToken();
token.Lifetime = TimeSpan.FromMinutes(10);
var signCert = LoadCert(Config.STS_CERT);
token.AccessTokenSigningKey =
(RSACryptoServiceProvider) signCert.PrivateKey;
var encryptCert = LoadCert(Config.SERVICE_CERT);
token.ResourceServerEncryptionKey =
(RSACryptoServiceProvider) encryptCert.PublicKey.Key;
var result = new AccessTokenResult(token);
return result;
}
Donde
STS_CERT se crea para las firmas por el servidor de autorización
SERVICE_CERT está diseñado para decodificar el servidor de recursos
¿Por qué se utilizan certificados diferentes? ¿Es seguro usar solo uno en lugar de los certificados STS_CERT y SERVICE_CERT?