Похоже, что для этой библиотеки требуется открытый ключ, чтобы проверить, что JWT, который FusionAuth возвращает из конечной точки token
, является действительным. Я не эксперт по DotNet, но из некоторых поисков вокруг объекта OpenIdConnectOptions
вы настраиваете все для OIDC. Существует свойство под названием SecurityTokenValidator
, к которому можно добавлять ключи, и это может быть лучшим местом для начала.
Другим решением было бы дать указание библиотеке ASPID Core OIDC использовать API userinfo
вместо JWT, хранящегося в id_token
. Это заставит DotNet перезвонить userinfo
API FusionAuth, а затем FusionAuth обработает всю проверку для вас и ответит претензиями OIDC от JWT. Свойство GetClaimsFromUserInfoEndpoint
объекта OpenIdConnectOptions
выглядит так, как будто это позволяет. Я не мог понять, как сообщить DotNet URL userinfo
API. Вот пример этой конфигурации:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseStaticFiles();
app.UseIdentity();
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
ClientId = Configuration["ClientId"],
ClientSecret = Configuration["ClientSecret"],
Authority = Configuration["Authority"],
ResponseType = OpenIdConnectResponseType.Code,
GetClaimsFromUserInfoEndpoint = true
});
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
Я получил этот код из этого поста в блоге:
https://andrewlock.net/an-introduction-to-openid-connect-in-asp-net-core/
Вам может потребоваться выполнить дополнительный поиск и чтение по интеграции DotNet OIDC, чтобы все это заработало. Там не так много информации, но несколько человек написали блоги на эту тему, которые могут помочь.