我目前正在使用 firebase 开发适用于移动设备(IOS 和 android)的 Flutter 应用程序,我需要集成 SAML Shibboleth 身份验证。 经过多次研究,我发现 pub.dev 上的 saml 的 flutter 包已被删除。
我已经确定了三种潜在的解决方案,但我不确定它们的可行性:
-使用 Logto,但此解决方案每月有费用: https://docs.logto.io/tutorial/how-to-build-saml-sign-in-with-flutter-and-logto/
-另一种解决方案可能是直接使用 HTTP 请求实现 SAML 身份验证?
-或者在 flutter 应用程序中使用 Web 视图,但是我不确定这种方法的可行性。
或者其他解决方案?
因为我是初级开发人员,所以我正在寻找一个简单的解决方案。
如果有人有类似情况的经验或可以提供上述解决方案的指导,我将非常感谢您的见解。
通常前端应用程序不适合直接 SAML 通信,因为应用程序无法保守私钥的秘密。私钥的使用对于 SAML 的运作至关重要。
我不知道 Logto 是如何工作的,但乍一看它似乎使用了一个与后端对话的专有 SDK,这在术语中处理 SAML 身份验证。这是一种常见的方法。
不过,我建议在前端和后端之间使用标准协议,例如 OIDC。
我建议要么购买执行此操作的服务,要么自己实施后端服务。
在我的博客上,我有一篇关于如何使用 keycloak 执行此操作的文章。本文是针对 ReactJs 的,但您可以简单地使用 flutter 和 OIDC 库来代替。