.Net Core 3.1 作为独立的身份服务器
.Net Core 3.1 as a standalone Identity Server
我想使用 .Net Core 3.1 Web 应用程序来允许应用程序(例如 iPhone 或 Web Javascript)使用用户名和密码进行身份验证并接收 Jason Web 令牌( JWT)包含关于用户的声明...如果成功,则 JWT 可以作为承载令牌发送到 API,后者将解码和验证 JWT(令牌将是不对称的并使用 public/private 密钥对)并检索任何嵌入的声明...如果应用程序也可以解码 JWT 以检索任何声明,这可能是一个奖励。
想知道这种方法是否可行吗?而且,如果有任何关于如何做到这一点的讨论或例子,那就太好了。
看看 IdentityServer4 提供的示例。 sample/quickstart 包括您描述的情况。 https://github.com/IdentityServer/IdentityServer4/tree/main/samples/Quickstarts/6_AspNetIdentity/src
API 需要是 IdentityServer4 配置中的范围。它与权限(IdentityServer4)有联系:
services.AddAuthentication("Bearer")
.AddJwtBearer("Bearer", options =>
{
options.Authority = "https://localhost:5001";
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateAudience = false
};
});
客户端,在此示例中为 MVC 客户端,需要是 IdentityServer4 中的客户端。有许多类型的 GrantType。 https://identityserver4.readthedocs.io/en/latest/topics/grant_types.html
services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
options.DefaultChallengeScheme = "oidc";
})
.AddCookie("Cookies")
.AddOpenIdConnect("oidc", options =>
{
options.Authority = "https://localhost:5001";
options.ClientId = "mvc";
options.ClientSecret = "secret";
options.ResponseType = "code";
options.Scope.Add("api1");
options.SaveTokens = true;
});
希望这对你有所帮助
我想使用 .Net Core 3.1 Web 应用程序来允许应用程序(例如 iPhone 或 Web Javascript)使用用户名和密码进行身份验证并接收 Jason Web 令牌( JWT)包含关于用户的声明...如果成功,则 JWT 可以作为承载令牌发送到 API,后者将解码和验证 JWT(令牌将是不对称的并使用 public/private 密钥对)并检索任何嵌入的声明...如果应用程序也可以解码 JWT 以检索任何声明,这可能是一个奖励。
想知道这种方法是否可行吗?而且,如果有任何关于如何做到这一点的讨论或例子,那就太好了。
看看 IdentityServer4 提供的示例。 sample/quickstart 包括您描述的情况。 https://github.com/IdentityServer/IdentityServer4/tree/main/samples/Quickstarts/6_AspNetIdentity/src
API 需要是 IdentityServer4 配置中的范围。它与权限(IdentityServer4)有联系:
services.AddAuthentication("Bearer")
.AddJwtBearer("Bearer", options =>
{
options.Authority = "https://localhost:5001";
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateAudience = false
};
});
客户端,在此示例中为 MVC 客户端,需要是 IdentityServer4 中的客户端。有许多类型的 GrantType。 https://identityserver4.readthedocs.io/en/latest/topics/grant_types.html
services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
options.DefaultChallengeScheme = "oidc";
})
.AddCookie("Cookies")
.AddOpenIdConnect("oidc", options =>
{
options.Authority = "https://localhost:5001";
options.ClientId = "mvc";
options.ClientSecret = "secret";
options.ResponseType = "code";
options.Scope.Add("api1");
options.SaveTokens = true;
});
希望这对你有所帮助