此处是IdentityServer新手。
我们想将当前基于Owin / jwt承载令牌的身份验证迁移到IdentityServer4。目前,我们的webapi还充当授权服务器(令牌创建,验证等),我们想通过在(IdentyServer4)之间使用authservice来解除耦合,并迁移到openid连接流
我们正在将SPA(Angular)与ASP.NET WebAPI结合使用,并希望结合使用
1)将OpenId与PKCE连接隐式流或授权代码流,以在我们的Angular App中进行身份验证,并借助IdentityServer4作为AuthService保护我们的webapi。对于角形部分,我们计划使用lib-> https://github.com/damienbod/angular-auth-oidc-client
2)定制外部OpenId Connect提供程序(在幕后使用keykloak),它提供oidc授权代码流终结点。我们还计划提供oidc Google,Facebook,Twitter身份验证。
例如,自定义外部oidc提供者授权网址如下:
令牌端点url以发送身份验证代码并接收令牌-> https://externalcustomoidcprovider/auth/openid-connect/token
我不了解这种情况下的身份验证流程,以及如何在IdentyServer和WebApi配置以及angular-auth-oidc-client设置中进行配置。 Spa直接从外部OIDC提供者端点调用授权URL来接收代码和访问令牌?但是,webapi / IdentityServer如何知道验证/处理此令牌?还是我必须在IdentityServer中注册外部OIDC提供程序,然后让SPA调用IdentityServer以获得授权网址,并让IdentiyServer处理身份验证流程? Webapi配置如何验证令牌?
是否可以通过IdentityServer实现这一点?结合这两种auth机制的最佳方法是什么?有任何示例项目可以显示此方案的实际效果吗?
感谢您的任何建议或帮助!