Javascript Firebase web客户端和OIDC提供程序问题
我已经在Google Identity Platform控制台中配置了一个OIDC提供程序(链接到KeyClope OIDC提供程序)。这是我的单页应用程序中的代码:Javascript Firebase web客户端和OIDC提供程序问题,javascript,firebase,firebase-authentication,google-identity-toolkit,Javascript,Firebase,Firebase Authentication,Google Identity Toolkit,我已经在Google Identity Platform控制台中配置了一个OIDC提供程序(链接到KeyClope OIDC提供程序)。这是我的单页应用程序中的代码: provider = new firebase.auth.OAuthProvider('oidc.keycloak'); firebaseAuth.auth.signInWithPopup(provider) .then(value => { log.info(`It worked!`, valu
provider = new firebase.auth.OAuthProvider('oidc.keycloak');
firebaseAuth.auth.signInWithPopup(provider)
.then(value => {
log.info(`It worked!`, value);
})
.catch(err => {
log.info('Something went wrong:', err);
});
弹出窗口出现,我可以登录到KeyClope,但弹出窗口消失后,浏览器中会抛出以下错误:
{code: "auth/admin-restricted-operation", message: "This operation is restricted to administrators only."}
我正在使用最新版本的Firebase客户端SDK和AngularFire2,并且我已成功配置电子邮件/密码身份验证。
在Google Identity Platform中,我有:
发行人(URL):
及
回调URL:
https://myapp-12345.firebaseapp.com/__/auth/handler
客户端是否需要进行其他配置?问题可能出在OIDC提供程序(keydape)及其配置上吗?您似乎已在Google Cloud Identity Platform设置(在Google Cloud控制台)中禁用了客户端SDK的用户注册。这在
用户操作
下的设置
部分。应选中复选框启用创建(注册)
。感谢您的帮助。我的想法是否正确?这使公众能够注册我的应用程序,并且没有办法限制只注册特定提供商的用户?如果您不希望用户创建自己的帐户,而只希望管理员(通过云控制台或管理员sdk)创建用户,则此设置非常有用。这对于企业来说是典型的。您不希望员工创建自己的帐户。明白。我有两类用户:通过组织注册的用户(OIDC和SAML)和使用电子邮件/密码登录的用户。我不想允许后者注册,但必须为所有组启用注册,否则第一组无法登录。我明白了。这是有道理的。目前我认为你不能两者兼而有之。尝试为此提交功能请求:或通过。另一个选项是提前将SAML和OIDC用户上载到Auth项目。这是一个可行的选择吗?
https://myapp-12345.firebaseapp.com/__/auth/handler