ASP Net Identity JWT API 令牌的负载要求是什么
What are the payload requirements for ASP Net Identity JWT API tokens
我有一个 ASP.NET Web Api,它使用 ASP.NET 身份来管理用户和角色对 API 的访问。我有一个案例,我试图创建一个 JWT 令牌,以便外部公司可以访问我的端点之一。我一直在尝试使用 this SO article - Second answer 中显示的代码创建我自己的 JWT。我的 JWT 令牌正在正确解码,但不允许访问我的端点,即使我分配了正确的角色也是如此。我想知道有效载荷中是否还需要其他信息,因为系统基于 ASP.NET 身份。
这是我在我的 JWT
中包含 的负载
{
iss: "http://mycompany.com",
name: "Company Test",
role: "CompanyTest",
aud: "<Audience ID of my application>",
exp: 1485433642
}
以下是 我遗漏 我的 JWT 创建的一些有效载荷,它们包含在 ASP.NET Identity 生成的 JWT 令牌中。我想知道它们是否必不可少,因此必须包含在 JWT 的有效负载中。
{
"nameid": "<user unique identifier here from Identity table>",
"unique_name": "<Email account of user>",
"http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider": "ASP.NET Identity",
"AspNet.Identity.SecurityStamp": "<Security stamp column from Identity table>"
}
我在尝试创建自己的 JWT 令牌时遗漏了这些值,因为我没有绑定对特定帐户的访问权限。我只是想创建一个外部公司无需登录即可使用的持久令牌。
我想出了问题的答案,所以我想我会 post 在这里。您不需要额外的有效负载对象。原来我遇到的问题是 iss:
负载。我已将其设置为生产环境,但在本地进行测试。更改 iss: http://localhost:12345
后,即使用户不在我的 ASP.NET 身份系统中,我也能够访问端点。
所以只是为了确认..我需要的是我的有效负载中的以下数据
{
iss: "http://localhost:12345",
name: "Company Test",
role: "CompanyTest",
aud: "<Audience ID of my application>",
exp: 1485433642
}
我有一个 ASP.NET Web Api,它使用 ASP.NET 身份来管理用户和角色对 API 的访问。我有一个案例,我试图创建一个 JWT 令牌,以便外部公司可以访问我的端点之一。我一直在尝试使用 this SO article - Second answer 中显示的代码创建我自己的 JWT。我的 JWT 令牌正在正确解码,但不允许访问我的端点,即使我分配了正确的角色也是如此。我想知道有效载荷中是否还需要其他信息,因为系统基于 ASP.NET 身份。
这是我在我的 JWT
中包含 的负载{
iss: "http://mycompany.com",
name: "Company Test",
role: "CompanyTest",
aud: "<Audience ID of my application>",
exp: 1485433642
}
以下是 我遗漏 我的 JWT 创建的一些有效载荷,它们包含在 ASP.NET Identity 生成的 JWT 令牌中。我想知道它们是否必不可少,因此必须包含在 JWT 的有效负载中。
{
"nameid": "<user unique identifier here from Identity table>",
"unique_name": "<Email account of user>",
"http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider": "ASP.NET Identity",
"AspNet.Identity.SecurityStamp": "<Security stamp column from Identity table>"
}
我在尝试创建自己的 JWT 令牌时遗漏了这些值,因为我没有绑定对特定帐户的访问权限。我只是想创建一个外部公司无需登录即可使用的持久令牌。
我想出了问题的答案,所以我想我会 post 在这里。您不需要额外的有效负载对象。原来我遇到的问题是 iss:
负载。我已将其设置为生产环境,但在本地进行测试。更改 iss: http://localhost:12345
后,即使用户不在我的 ASP.NET 身份系统中,我也能够访问端点。
所以只是为了确认..我需要的是我的有效负载中的以下数据
{
iss: "http://localhost:12345",
name: "Company Test",
role: "CompanyTest",
aud: "<Audience ID of my application>",
exp: 1485433642
}