Я разрабатываю сервер аутентификации/авторизации с помощью IdentityServer3, и до сих пор все работало нормально.
Я пытаюсь проверить клиент гибридного потока с помощью X509Certificate вместо хешированного секрета в образцах.
У меня вопрос: как настроить клиентское приложение для отправки сертификата для потока аутентификации?
Я видел в исходном коде для X509CertificateSecretParser.cs для получения сертификата клиента переменная среды owin "ssl.ClientCertificate" должна иметь значение, но я не могу найти, где установлено это значение, даже в исходном коде Microsoft.Owin .
Я также пытаюсь использовать сертификат, который я загружаю на сервер, в качестве сертификата SSL для клиентского приложения, но это тоже не работает.
Код для настройки секрета клиента:
[my client].ClientSecrets.Add(new Secret
{
Value = Convert.ToBase64String(cert.Export(X509ContentType.Cert)),
Type = Constants.SecretTypes.X509CertificateBase64
});
Код для настройки аутентификации клиентского приложения:
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
Authority = ...,
Scope = ...,
ClientId = ...,
RedirectUri = ...,
ResponseType = "code id_token token",
ClientSecret = "" , //What should I do with this?
SignInAsAuthenticationType = "Cookies",
Notifications = new OpenIdConnectAuthenticationNotifications
{
RedirectToIdentityProvider = ...,
AuthorizationCodeReceived = ...
}
});