Azure Active Directory SSO - 帐户映射

时间:2015-02-23 10:15:34

标签: azure active-directory single-sign-on azure-active-directory

iam目前正在研究如何为我们的WebService实现单点登录。 这就是我到目前为止所提出的。

  1. 如果我们的WebService的客户有AzureActiveDirectory,他们可以使用他们的活动目录用户帐户登录到我们的WebService,如果我们提供SAML,Oauth2,OpenID或我们选择的任何授权协议以及azure支持的nessecary接口。
  2. 客户还可以将其本地网络Active Directory同步到其Azure AD,并使用其域帐户登录我们的WebApplication。
  3. 客户需要使用myapps.microsoft.com门户来“包装”身份验证。
  4. 一旦设置正确,身份提供商(AzureAD)将提供(例如)经过身份验证的用户身份。
  5. 这是我的问题开始了。 当然,我需要以某种方式将AzureAD提供的身份映射到我们的WebService的某个帐户 - 我们不能简单地使用提供的身份。

    据我了解,您可以授予AzureAD以当前登录用户名称在目标WebService上创建帐户的权限。 (其名称为:在天蓝色管理门户中启用自动用户配置)。

    然而,当使用Box,Canvas或Google应用程序测试时,我失败了。要么我得到一个错误,或者在谷歌应用程序的情况下,我只是被允许登录我的天蓝色AD测试帐户,然后要求我的密码和我的谷歌帐户的用户名(我将SSO设置为天蓝色的AD信任关系 - 所以这不应该发生)

    有人可以提供一些有关如何完成以下操作的见解吗?

    一旦用户通过SSO进行身份验证,我想为我们的WebSerivce创建一个帐户,然后仅将该用户的凭据保存在该特定用户的Active目录中。 因此,如果用户第二次登录,我们可以检查是否存在已存在的帐户,并使用此帐户登录用户。

    (微软告诉我,这可能是Azure Rights Management的可能,但我真的找不到那方面的好文档)

    存储关系:我们不希望“Microsoft AD Identity< - >我们的WebServiceAccount凭证”,因为我们不能以我们不知道在那里知道什么的方式安全地加密数据。 (或者有,我还不知道)

    “奖金问题”: 我也可以支持桌面应用程序的SSO吗? (我是否需要提供代理Web应用程序,或者桌面应用程序可以直接执行此操作吗?)

2 个答案:

答案 0 :(得分:2)

请在此处查看我对类似问题的回答:asp.net azure active directory user profile data

但是 - 我想知道你是否需要不同的东西。您是否希望您的客户已拥有目录和Azure AD帐户(可能通过Office 365订阅),并使用这些帐户登录您的Web应用程序,或者您的应用程序方案是否需要在客户的Azure中创建/配置用户帐户AD目录?只要客户的管理员同意允许您的应用程序写入其目录,就可以通过图形API(根据您的链接)完成配置。您可以在github上找到一些示例,我建议您查看https://msdn.microsoft.com/en-us/library/azure/dn499820.aspxhttps://msdn.microsoft.com/en-us/library/azure/dn646737.aspx代码示例。

HTHS,

答案 1 :(得分:1)

我认为,没有测试它。使用Graph API,我可以为任何目录用户保存自定义数据,从而有效地实现我所需的功能。 这是我发现非常有用的文档。

https://msdn.microsoft.com/en-us/library/hh974476.aspx