搞了一个项目,折腾了我一个星期,其中一个问题困扰了我三天。
首先,是为项目添加IdentityServer4 的客户端模式。
安装包为:
startup中的ConfigureServices添加如下代码:
#region 客户端模式
{
//authorize url../connect/token
services.AddIdentityServer()//怎么处理
.AddDeveloperSigningCredential()//添加开发人员签名凭据
.AddInMemoryApiResources(ClientInitConfig.GetApiResources())//能访问啥资源
.AddInMemoryApiScopes(ClientInitConfig.GetApiScopes())//把受保护的Api资源添加到内存中
.AddInMemoryClients(ClientInitConfig.GetClients(Configuration))//把配置文件的Client配置资源放到内存
;
}
//鉴权
services.AddAuthentication("Bearer")
.AddIdentityServerAuthentication(options =>
{
//ids4的地址,目的: 获取公钥,因为获取获取了公钥才能解密
options.Authority = Configuration["App:ServerRootAddress"];
options.ApiName = "UserApi";
options.RequireHttpsMetadata = false;