Azure和单点登录

时间:2018-04-10 09:37:57

标签: azure single-sign-on saas

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

欢呼声。 es

1 个答案:

答案 0 :(得分:1)

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

授权流程

提及一些最常见的流程:

  • 客户端凭据授予
    • 不需要最终用户授权?
    • 客户端执行机器加工授权。例如。 cron工作或预定任务
  • 授权码授予
    • 要求用户授权的网络应用
    • 被认为是最安全的选择,因为令牌直接传递给后端
  • 资源所有者密码凭据授予
    • 被认为是一种非常不安全的替代方案,只有在注意到其他方面才适用
    • 凭据在POST请求中发送到授权服务器
  • 隐含授权
    • 主要用于单页应用程序(SPA)
    • 令牌直接发送到客户端浏览器
  • 设备代码
    • 与之前的流程相比相对较新
    • 适合直接用户与应用程序进行交互的情况,例如:物联网应用程序或智能电视应用程序(想象一下用电视遥控器写一个24个字符的密码......)
    • 登录URL和代码将传递给用户,用户使用提供的信息在桌面上登录
    • 启动应用程序将轮询服务保持到超时或经过身份验证
    • 使用桌面登录后,将启动应用程序

熟悉这些将帮助您确定其用例和限制。

单点登录

您提到您需要为您的应用程序提供SSO,在这种情况下,我建议您熟悉授权代码授权隐式授权流程。这些是您在要求用户登录的网站中使用的最常见流程。

SSO将假设:

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

进一步阅读

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

另外,如果你真的对Azure AD身份验证感到兴奋,那么有一本非常好的书,由Vittorio Bertocci编写,值得一试:

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