原文参考:Switching to Hybrid Flow and adding API Access back
接上篇:IdentityServer-Protecting an API using Client Credentials
首先配置OpenID:
原文参考:Adding User Authentication with OpenID Connect
下载相关UI:Quickstart UI repo
下载下来后主要有3个文件夹
需要把前面两个文件夹的部分内容复制到项目中
Quickstart目录中复制如下内容
Views目录中复制如下内容
Shared目录中只需要复制一个文件
复制完成后将上面的类除Controller外统一修改命名空间:【项目名称】.Models
Controller类修改命名空间:【项目名称】.Controllers
目的是在Views中不需要在引入命名空间,因为原来的Views\\_ViewImports.cshtml 中有引用
接下来配置Client进行测试
在postman中测试Hybrid模式需要注意加上scope,否则会报错
在配置Client的时候可以设置是否启用提示页:
new Client { ClientId = "mvc", ClientName = "MVC Client", AllowedGrantTypes = GrantTypes.HybridAndClientCredentials, RequireConsent = false, ClientSecrets = { new Secret("secret".Sha256()) }, RedirectUris = { "http://localhost:5002/signin-oidc" }, PostLogoutRedirectUris = { "http://localhost:5002/signout-callback-oidc" }, AllowedScopes = { IdentityServerConstants.StandardScopes.OpenId, IdentityServerConstants.StandardScopes.Profile, "api1" }, AllowOfflineAccess = true }
RequireConsent=false表示不显示提示直接授权通过。
代码地址:IdentityCenter