我想知道在网站上进行单点登录的最佳技术是什么.这意味着如果您进入多个网站,您将以"透明"的方式进行身份验证.我正在使用php + curl为不同的网站设置cookie,但我真的想知道是否存在标准的方法来实现它.
我在我的应用程序中实现了authlogic来处理用户身份验证.我也使用omniauth进行外部身份验证.但是,该应用程序将是其他开发人员将与现有网站集成的服务,我想允许他们支持使用我们的应用程序进行单点登录.是否有支持单点登录的gem还是我需要创建自己的登录系统吗?
更一般地说,谁在Windows平台上成功使用WIF/ADFS/SSO,是否值得实施,它将成为持久技术的可能性有多大?
从表面上看,通过阅读有关该主题的一些白皮书(PDF),文章和书籍,这似乎是一个完美的解决方案 - 特别是对于拥有内部网站的公司,该网站向外部用户和合作伙伴公开某种程度的功能.好吧(或计划将来).但它听起来几乎过于完美.我所获得的大部分信息都来自微软自己.
我想我的具体问题是:
我有一台服务器,我使用dokuwiki来托管主页和维基.服务器可用www.domain.com,维基可用wiki.domain.com.在内部,两个子域都是从不同的目录提供的.
但是,这意味着,每个想要注册的人都必须注册这两个域,并为两个子域管理一组重复的用户帐户.
我想要的是拥有一个系统,任何人都可以在这两个页面上注册,只需登录任何域并获得访问权限.对于两个域,仍应单独管理ACL,因为我可能多次使用命名空间名称.
我查看了dokuwiki auth插件的列表,但是我无法找到任何有用的用于此目的.另一个想法是在两个安装中对auth数据目录进行软链接或硬链接.但是,这仍然意味着用户必须多次登录.此外,我不确定我的主机是否真的允许这样的目录链接,或者这可能会搞砸这两个安装.
有没有其他方法来创建这样的设置?
我遇到了使用SSO登录facebook的崩溃.我在任何类似的论坛都找不到任何报告.
当我们在Facebook网站上更改用户密码时,在大约15秒内,android facebook客户端将通过通知栏通知用户facebook身份验证失败.如果用户做出反应并登录,我们的应用程序SSO将毫无问题地获取新令牌.
如果用户更改密码,在用户对Facebook应用程序通知做出反应并使用新密码登录之前启动我们的应用程序facebook请求(如下载朋友列表),我们会收到SSO崩溃,这会错误地通知我们的应用程序用户取消登录.
不知何故,facebook应用程序登录对话框(蓝色对话框)和SSO登录对话框(白色对话框)无法共存.如果它们同时打开,SSO启动了Facebook客户端崩溃的实例,但有以下异常:
04-25 10:40:39.790: E/AndroidRuntime(5991): FATAL EXCEPTION: main
04-25 10:40:39.790: E/AndroidRuntime(5991): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.facebook.katana/com.facebook.katana.ProxyAuth}: java.lang.NullPointerException
04-25 10:40:39.790: E/AndroidRuntime(5991): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
04-25 10:40:39.790: E/AndroidRuntime(5991): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
04-25 10:40:39.790: E/AndroidRuntime(5991): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-25 10:40:39.790: E/AndroidRuntime(5991): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
04-25 10:40:39.790: E/AndroidRuntime(5991): at android.os.Handler.dispatchMessage(Handler.java:99)
04-25 10:40:39.790: E/AndroidRuntime(5991): at android.os.Looper.loop(Looper.java:130)
04-25 10:40:39.790: E/AndroidRuntime(5991): at android.app.ActivityThread.main(ActivityThread.java:3691)
04-25 10:40:39.790: E/AndroidRuntime(5991): at java.lang.reflect.Method.invokeNative(Native Method)
04-25 10:40:39.790: E/AndroidRuntime(5991): at java.lang.reflect.Method.invoke(Method.java:507)
04-25 10:40:39.790: E/AndroidRuntime(5991): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
04-25 10:40:39.790: E/AndroidRuntime(5991): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
04-25 10:40:39.790: E/AndroidRuntime(5991): …Run Code Online (Sandbox Code Playgroud) 我被指派在我们的产品中找到一种实施SSO的方法.我们有几个Winform应用程序和一个asp.net 4.0 Web应用程序(不是MVC).
所有产品都是使用.Net 4.0构建的,Web应用程序是ASP.NET 4.0.一些Winforms通过Web服务(asmx)与我们的API进行通信,有些则直接使用我们的API.Web应用程序也使用相同的API.我们提供一组Web服务(asmx),它们使用相同的API到外部客户端.
目前,我们在系统中拥有自己的身份验证实现(用户,密码,角色),我们希望用SSO替换它.或者这两种认证制度能以某种方式共存吗?Winforms用于Intranet,Web应用程序在Intranet中使用,我们还为客户端托管Web应用程序(可从Internet访问).
用户是在我们的系统中创建的,但同时我们使用自己的工具从Active Directory导入用户.Active Directory确实是主要的用户来源.
我读过有关Windows Identity Foundation的内容,我想知道是否可以使用它来实现SSO.但我不明白的是如何在winform应用程序中直接使用API时使用WIF.
我想要实现的是从我们的系统中删除所有用户管理并使用Active Directory作为用户源.我想这意味着使用ADFS 2.0创建声明等.
我可以在此实现中使用.Net Framework 4.5(我知道WIF现在是.Net Framework 4.5中的一等公民).
你有什么建议怎么做?WIF是在winforms应用程序和Web应用程序中实现SSO的最佳替代方案吗?
我正在研究需要在 WebShpere 和 PHP Web 应用程序之间实现 SSO 的项目。
然而,在我查看了实现 SSO 的可能方法之后,我发现了用于在不同 IBM 技术之间实现 SSO 的 LTPA 令牌。
但是 LTPA 令牌 2 是加密的 cookie 文件。如果我想使用此文件中的信息(例如(用户 ID、用户名、电子邮件等),我应该解密它。
我对 LTPA 令牌 2 进行了深入搜索,以下是我从 IBM 找到的最佳定义。
LTPA2 签名是使用 SHA-1 作为散列算法和 RSA(1024 位密钥)作为加密算法生成的。附加数字签名后,用户数据和签名将使用从 LTPA 密钥文件中获得的 3DES 或 AES 密钥进行加密(请参阅“使用 LTPA 令牌”和“生成 LTPA 令牌”)。
但我仍然试图在没有运气的情况下解密这个令牌。
有什么帮助吗?
在使用 simplesamlphp 作为服务提供者成功接收 SAML 2.0 令牌后,我收到以下错误。
Oct 21 17:30:15 simplesamlphp DEBUG [6b6e3c270f] GenerateGroups - attribute 'eduPersonAffiliation' not found.
Oct 21 17:30:15 simplesamlphp DEBUG [6b6e3c270f] Session: doLogin("default-sp")
Oct 21 17:30:15 simplesamlphp WARNING [6b6e3c270f] Unable to find the SAML 2 binding used for this request.
Oct 21 17:30:15 simplesamlphp WARNING [6b6e3c270f] Request method: 'GET'
Oct 21 17:30:15 simplesamlphp ERROR [6b6e3c270f] SimpleSAML_Error_Error: UNHANDLEDEXCEPTION
Oct 21 17:30:15 simplesamlphp ERROR [6b6e3c270f] Backtrace:
Oct 21 17:30:15 simplesamlphp ERROR [6b6e3c270f] 0 /var/www/simplesamlphp/www/module.php:180 (N/A)
Oct 21 17:30:15 simplesamlphp …Run Code Online (Sandbox Code Playgroud) 使用 Azure AD 进行身份验证时,是否有人知道是否可以将用户名作为请求中的参数发送到https://login.microsoftonline.com/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee以便已填充此字段在登录提示中?
我正在使用 azure 活动目录执行 sso。我已经在 azure 上完成了设置并打开了钥匙。我在 laravel 上使用 Metrogistics/laravel-azure-ad-oauth ( https://packagist.org/packages/metrogistics/laravel-azure-ad-oauth ) 包来做到这一点。但是,当我点击 url http://localhost:8000/login/microsoft 时,我被重定向到 microsoft 登录页面并给出了一条错误消息。
我已将以下配置添加到 env 文件中,并执行了任何包要求的操作。
AZURE_AD_CLIENT_ID=XXXXXXXXXXXXXXXXXX(这是来自 azure 的应用程序 ID) AZURE_AD_CLIENT_SECRET=XXXXXXXXX(在 azure 上创建了一个新密钥)
我在网上搜索已经两天了,但找不到解决方案。我在这里缺少什么?
谢谢,