Я использую промежуточное ПО UseOpenIdConnectAuthentication для основного приложения ASP.Net для аутентификации с поставщиком токенов диспетчера доступа Dells Cloud (настройка для обеспечения аутентификации OpenId/OAuth2). Ниже приведен код:OpenIdConnectAuthenticationHandler: message.State имеет значение null или пусто
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
AuthenticationScheme = "ClientCookie",
CookieName = CookieAuthenticationDefaults.CookiePrefix + "ClientCookie",
ExpireTimeSpan = TimeSpan.FromMinutes(5),
LoginPath = new PathString("/signin"),
LogoutPath = new PathString("/signout")
});
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
RequireHttpsMetadata = false,
SaveTokens = true,
ClientId = "XYZClient_Id",
ClientSecret = "XYZ_ClientSecret",
ResponseType = OpenIdConnectResponseType.Code,
PostLogoutRedirectUri = "https://example.com",
Configuration = new OpenIdConnectConfiguration {
AuthorizationEndpoint = "https://CAM.COM/CloudAccessManager/RPSTS/OAuth2/Default.aspx",
TokenEndpoint = "https://CAM.COM/CloudAccessManager/RPSTS/OAuth2/Token.aspx",
UserInfoEndpoint = "https://CAM.COM/CloudAccessManager/RPSTS/OAuth2/User.aspx",
Issuer= "urn:CAM.COM/CloudAccessManager/RPSTS",
}
});
Но я застрял в одной точке в течение нескольких часов. Я получаю следующую ошибку:
SecurityTokenInvalidSignatureException: IDX10500: проверка подписи не удалась. Там нет ключей безопасности, чтобы использовать для проверки подписи
Я получаю код и состояние обратно в URL строку запроса https://example.com/signin-oidc?code=somecode&state=somestate
Любой тип руководства ценится.
UPDATE Добавлена Эмитент ключ подписи:
TokenValidationParameters = new TokenValidationParameters
{
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration.GetValue<string>("AppSettings:ClientSecret")))
}
Это сэкономило много времени и может начать работу с ручным добавлением ключей подписи, поскольку мой провайдер не предоставляет конечную точку обнаружения конфигурации. Также спасибо за мгновенный ответ – CodeZero
Если ответ будет полезен, не стесняйтесь его повышать/отмечать как принятое;) – Pinpoint