在使用IdentityServer4和OIDC-Client的SPA环境中,使用多个外部提供商执行以下操作的最安全方法是什么?
基本上,如果用户使用Google登录,我需要登录我的内部系统并创建新的声明。这必须在服务器端进行后第三方回调。 IdentityServer4中最安全的配置是什么?在SPA中执行此操作?
流速:
对于#3,我想使用IdentityServer4已经提供的内容而不是滚动我自己的端点。这种情况是否容易受到支持?
基本上,我需要完成此操作但不确定IdentityServer4将如何处理这种情况:
new Oidc.UserManager().signinRedirectCallback().then(function (externalUser) {
//TODO: pass externalUser to IdentityServer4 endpoint where it's exchanged for internal user
window.location = "../Spa/Index";
}).catch(function (e) {
console.error(e);
});
除登录流程外,使用多个外部提供程序进行令牌刷新的最安全方法是什么。我假设我需要定期刷新外部令牌以防我自己的内部令牌过期。
答案 0 :(得分:0)
我们有一个类似的项目,我们的用户可以通过Google和Facebook登录。我们通过IdentityServer添加了Google和Facebook SignIn,并将ID和电子邮件地址存储在客户端应用程序发送到资源服务器(API)的access_token
内,因此资源服务器知道哪个用户已登录。
因此我建议使用内置于IdentityServer4中的Google SignIn,并将详细信息发送到资源服务器(API)。