如果要实现这个你自己的,下面是我的一些经验技巧:
Office365(这是基于Windows Azure的活动目录):讲一个名为WS联合与SAML协议令牌。到目前为止,有各种平台和语言的图书馆。
谷歌企业应用套件,更容易Office365因为你必须使用纯谷歌的OAuth。有一件事可以帮助您,您可以在使用像“?hd = x.com”这样的querystring参数“hd”进行身份验证时强制Google Apps域。请参阅answer and the comments。
你在做什么并不是不可能,但它需要一些工作和理解所有的协议。
另一种选择是使用身份验证代理,如Auth0。你的应用程序看到auth0为OAuth提供者,你可以连接到你的客户谷歌企业应用套件和办公室365从仪表板或这意味着你可以轻松地自动入职的客户的API。创建连接后,Auth0会给你一个你需要给予你的客户的链接,这样他们可以同意你的应用程序使用他们的目录。从客户端的角度来看,您可以通过使用auth0.js如下达到你所描述的组合框UI:
var auth0 = new Auth0({
//settings provide by auth0
});
var combo = $('#company-combo');
//loads the company combobox directly from auth0
auth0.getConnections(function (err, connections) {
connections.forEach(function (c) {
$('<option>')
.attr('value', c.name)
.text(c.name)
.appendTo(combo);
})
});
//trigger login
$('.login').on('click', function (e) {
auth0.login({
connection: $("option:selected", combo).val()
})
});
一旦用户登录,您的申请将获得profile。此配置文件有一个属性,指示连接/公司。
Auth0还提供了一个统一的API来查询/搜索用户,在这两种情况下,它使用的底层目录,但你又得到了相同的配置文件表示。
免责声明:我的Auth0工作。
我们最近为我们的组织设置了Windows Azure。我会尝试这个SSO。谢谢。 – Rishi