【发布时间】:2015-04-24 15:13:15
【问题描述】:
我目前正在研究如何为我们的 Web 服务实施单点登录。 到目前为止,这是我想出的。
- 如果我们 WebService 的客户拥有 AzureActiveDirectory,如果我们为 SAML、Oauth2、OpenID 或我们选择并支持 Azure 的任何授权协议提供必要的接口,他们就可以使用其 Active Directory 用户帐户登录到我们的 WebService。
- 客户还可以将他们的本地网络 Active Directory 同步到他们的 Azure AD 并使用他们的域帐户登录到我们的 WebApplication。
- 客户需要使用 myapps.microsoft.com 门户来“包装”身份验证。
- 一旦一切设置正确,身份提供程序 (AzureAD) 将提供使用(例如)经过身份验证的用户身份。
这是我的问题的开始。 当然,我需要以某种方式将 AzureAD 提供的身份映射到我们的 WebService 的某个帐户 - 我们不能简单地使用提供的身份。
据我了解,您可以授予 AzureAD 以当前登录用户的名义在目标 WebService 上创建帐户的权利。 (其名称为:在 Azure 管理门户中启用自动用户配置)。
但是,在使用 Box、Canvas 或 Google 应用程序进行测试时,我失败了。要么我遇到错误,要么在谷歌应用程序的情况下,我只是被提示使用我的 azure AD 测试帐户登录,然后要求输入我的 google 帐户的密码和用户名(我将 SSO 设置为 azure AD 信任关系 - 所以这个不应该发生)
有人可以提供一些关于如何完成以下任务的见解吗?
一旦用户通过 SSO 身份验证,我想为我们的 WebSerivce 创建一个帐户,然后将该用户的凭据仅保存在该特定用户的 Active Directory 中。 因此,如果用户第二次登录,我们可以检查是否已经存在一个帐户并使用该帐户登录用户。
(微软告诉我,这可能通过 Azure Rights Management 实现,但我真的找不到很好的文档)
我们不希望存储关系:“Microsoft AD 身份 我们的 WebServiceAccount 凭据”,因为我们无法以我们不知道其中内容的方式安全地加密数据。 (或者有,我还不知道)
“奖金问题”: 我也可以支持桌面应用程序的 SSO 吗? (我需要提供代理 Web 应用程序还是桌面应用程序可以直接执行此操作?)
【问题讨论】:
标签: azure active-directory single-sign-on azure-active-directory