Sto implementando un IAuthorizationServerHost
personalizzato utilizzando la libreria DotNetOpenAuth
.
L'implementazione di esempio utilizza due certificati per CreateAccessToken
(vedi elenco 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;
}
Dove
STS_CERT is created for signatures by the authorization server
SERVICE_CERT is designed for decoding the resource server
Perché vengono utilizzati certificati diversi? È sicuro utilizzare solo uno invece di entrambi i certificati STS_CERT e SERVICE_CERT?