小编bla*_*aap的帖子

.Net Core JwtBearer 中间件使用 Amazon Cognito

所以我在 .net Core angular 应用程序中使用 Cognito(使用 amazon-javascript-sdk),我试图验证我在 .net core 后端从亚马逊获得的 access_token,以便我可以保护我的 Web Api . 使用 Amazon cognito JWKS 我能够验证 access_token 并因此允许/拒绝访问我的 api。问题是我现在在我的 startup.cs 中硬编码了 JWK 密钥。我从 JWKS 了解到的是,这些密钥可以轮换(没有发现亚马逊是否这样做),所以我想以某种方式告诉我的中间件从端点获取密钥。我阅读了一些有关发现文档和其他内容的内容,但找不到有关如何配置中间件以自动执行此操作的任何内容。

对于 OpenId,您可以使用 MetadataAddress 指向https://cognito-idp .{awsregion}.amazonaws.com/{userPool}/.well-known/openid-configuration,这将获得所有必要的配置。如果您使用 JwtBearer 中间件,我觉得 IssuerSigningKey(JWK) 应该存在类似的东西。我希望指向 JWK url,而不是设置一个硬编码的密钥,中间件将在其中找到密钥并执行它的魔法。JWKS 还包含多个密钥,因此我希望中间件自行确定要使用哪个密钥。

相关代码:

services.AddAuthentication(options =>
{
    options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(jwt =>
{
    jwt.TokenValidationParameters = new TokenValidationParameters
    {
        IssuerSigningKey = MagicFunction("hardcodedRSAModules","hardcodedRSA")
        ValidIssuer = "https://cognito-idp.us-east-2.amazonaws.com/{userpool}",
        ValidateIssuerSigningKey = true,
        ValidateIssuer = true,
        ValidateLifetime = true,
        ValidateAudience = false,
        ClockSkew = …
Run Code Online (Sandbox Code Playgroud)

.net jwt amazon-cognito .net-core jwk

7
推荐指数
1
解决办法
1272
查看次数

sqldependency的替代方案

我有一个mssql表,可以保存聊天信息.它具有计算列,具有数百万行,并由第三方应用程序使用/填充.现在我想使用此表在我的网站上显示聊天记录,并且将来有可能使用signalr发送消息.我使用sqldependency进行了几次测试,它只能用于我的情况下无法帮助的特定查询(我必须排除计算列,不能按最后一次msg排序,不能设置前100条消息等)

那么我的问题是什么呢?使用每隔x秒轮询数据库的Web服务?

旁注,我根本没有影响桌子.

c# sqldependency signalr

6
推荐指数
1
解决办法
3251
查看次数

标签 统计

.net ×1

.net-core ×1

amazon-cognito ×1

c# ×1

jwk ×1

jwt ×1

signalr ×1

sqldependency ×1