我正在尝试使用 Google Cloud Identity 平台将我的 Firebase 应用作为服务提供商连接到身份提供商。
使用这个优秀的教程,我能够为另一个 IdP(Jump-Cloud)做到这一点
由于某种原因,它不适用于我实际上需要与之集成的 IdP,并且在这里超出了我的深度,我并不真正了解问题所在。
我已经在 Google Cloud 中设置了所有内容以匹配 IdP ( Kennisnet ) 配置
另一方 Kennisnet 需要 Jump-Cloud 不需要的元数据。我看不到任何从谷歌云获取的方法,所以我使用了一个在线工具来创建以下内容
<?xml version="1.0"?>
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
validUntil="2021-06-11T09:31:00Z"
cacheDuration="PT604800S"
entityID="https://ffleren-dev.web.app/">
<md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="https://ffleren-dev.firebaseapp.com/__/auth/handler"
index="1" />
</md:SPSSODescriptor>
</md:EntityDescriptor>
这大约是我在 afaik 端可以配置的量,但集成会在其端引发错误(错误 500 没有任何详细信息)。我已经询问了他们的日志,他们很友好地发送了它们。
Jun 17 08:52:48 federatie-stg-auth01 hub ERROR: com.alfaariss.oa.authentication.remote.saml2.profile.re.ResponseEndpoint The binding is not supported by this protocol: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect
Jun 17 08:52:48 federatie-stg-auth01 hub ERROR: com.alfaariss.oa.OAServlet Could not process request
所以我现在的问题是:
任何人都可以从这个错误中得到正面或反面吗?我生成的元数据与 Firebase 如何处理 SAML 之间是否存在不匹配?我试图在绑定中更改HTTP-POST
为HTTP-Redirect
,但它显然会产生相同的结果。也许完全是别的东西?
我signInWithPopup
在客户端上使用 AngularFire(与 Firebase.auth 本身的结果相同)。
const provider = new auth.SAMLAuthProvider('saml.kennisnet-staging');
return this.afAuth
.signInWithPopup(provider)
.catch((e) => console.error(e.message));