【问题标题】:Sync with Azure Active Directory with a multi-tenant app (receiving user notifications)通过多租户应用与 Azure Active Directory 同步(接收用户通知)
【发布时间】:2016-05-05 13:22:19
【问题描述】:

我在我的网站上开发了一项允许使用 Azure 登录的功能。

所以我网站中的用户可以使用以下方式登录:

  • Azure (OAuth2)。我们正在使用多租户应用程序。我们只是使用该应用程序来登录用户。所以我们并没有真正使用 Access-Token 来发出请求。我们只是使用 access-token 来获取用户邮箱(用 JWT 解码)。

  • 他们可以在我的网站上设置他们自己的电子邮件密码。


这就产生了一个问题:

想象一个人开始在一家公司工作。 IT 团队给他一封属于他们的 azure 帐户(带有他们的帐户域)的电子邮件。这个团队在我的站点上也有一个帐户(配置了他们在 Azure 上使用的相同域)。因此,该用户将尝试使用他的凭据登录我的网站。我们将在他们的公司帐户上创建他的个人资料(由于电子邮件域)。他设置了他的密码。有时他使用 Azure 登录,有时他使用他的电子邮件密码登录。

下个月,这个人被解雇了。 IT 团队将他从 Azure 中删除。虽然,IT 团队忘记了在我的网站上删除他。因此,该用户有权使用他的电子邮件密码凭据登录,并且仍然能够查看私人信息(他甚至可以删除私人文件)。


我想知道是否有办法将我的应用与使用它的每个目录同步。所以我将能够接收用户操作通知(如用户删除)。收到对端点的呼叫,其中包含有关用户重要操作的信息,这将是很棒的。这样我们就可以从我们的平台上删除用户。这样公司就可以忘记删除我网站上的用户,而不会出现信息被盗问题。

PS:我已经看到您使用 SAML 进行注销同步,但我想知道我们是否能够接收其他类型的通知,因为我们不想在此注销时注销用户天蓝色。

【问题讨论】:

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


    【解决方案1】:

    如果您有前用户租户管理员的权限访问他们的目录,您可以使用Microsoft Graph API检查用户是否在列表中

    【讨论】:

    • 这是个好主意。问题是:我什么时候必须检查用户是否属于该帐户?假设我每次他登录时都这样做,那么如果他已经登录,我就不会删除该用户。所以我仍然需要接收通知。另一种选择是使用 SAML 读取注销通知,但我不希望我的用户每次从 azure 注销时都从我的网站注销
    • 据我所知,Azure AD 不会发送您正在寻找的此类通知。我不认为你需要一个。当用户在您的网站上提供他的凭据时,在您授予他授权之前,您使用外部公司的目录验证他的电子邮件地址。如果电子邮件帐户不存在或被标记为不活动,则您不授予他访问权限。
    【解决方案2】:

    我一直在与 microsoft 支持人员交谈,但无法让 microsoft 调用我们的端点来接收一些通知。

    因此,唯一的解决方案是请求管理员权限,或者从 Oauth2 获得 refresh_token,检查用户是否仍然出现在 Graph (https://graph.microsoft.com/v1.0/me) 上。

    【讨论】:

      猜你喜欢
      • 2016-08-04
      • 1970-01-01
      • 2017-10-10
      • 2020-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-22
      • 1970-01-01
      相关资源
      最近更新 更多