Azure 和单点登录方法

Azure and Single sign on approache

我需要扩展我们的 SSO 实施,以便它在作为 SaaS 安装在 Azure 上时也可以覆盖我们的应用程序。我正在阅读文档,但一如既往地感到困惑。 我想要找到的是我们的应用程序(服务器是用 C 编写的)使用 Azure 检查从客户端发送的用户凭据是否正确的方法。 有人可以提供一些网页来解释这个问题吗?

干杯。 es

如果您不熟悉身份验证和 Azure AD,那么在我看来,您应该首先熟悉 OAuth 2.0 提供的现代身份验证流程。

授权流程

举几个最常见的流程:

  • 客户端凭据授予
    • 不需要end-user授权?
    • 客户端进行机器对机器授权。例如。 cron 作业或计划任务
  • 授权码授予
    • 需要用户授权的 Web 应用程序
    • 被认为是最安全的选择,因为令牌直接传递给 back-end
  • 资源所有者密码凭据授予
    • 被认为是一个非常不安全的替代方案,仅在注意到 else 适合时才使用
    • 凭据在 POST 请求中发送到授权服务器
  • 隐式授权
    • 主要用于 single-page-applications(SPA)
    • 令牌直接发送到客户端浏览器
  • 设备代码
    • 与以前的流程相比相对较新
    • 适用于用户难以与应用程序直接交互的场景,例如IoT 应用程序或智能电视应用程序(想象一下用您的电视遥控器写一个 24 个字符的密码...)
    • 登录 URL 并将代码传递给用户,用户使用提供的信息在桌面上登录
    • 启动应用程序保持轮询服务直到超时或通过身份验证
    • 使用桌面登录后,启动应用程序即已登录

熟悉这些将有助于您确定它们的用例和限制。

单身sign-on

您提到您的应用程序需要 SSO,在这种情况下,我建议您熟悉 授权码授予隐式授予 流动。这些是您发现在要求用户 sign-in 的网站中使用的最常见流程。

SSO 将工作假设:

  • 在同一个 Azure AD 中
  • 在同一浏览器中打开
  • 用户已登录任一应用
    • 身份验证 cookie 必须存在且可读
  • 同意应用程序(管理员或用户)

进一步阅读

查看这些页面以获取有关如何选择正确的流程以及如何实施它们的更多信息:

此外,如果您真的对 Azure AD 身份验证感兴趣,那么 Vittorio Bertocci 写的一本非常好的书值得一​​读:

Vittorio Bertocci 是 Microsoft 的首席项目经理,对这个主题非常了解。