【问题标题】:API APP + Authentication with AAD and Facebook + AllowAnonymousAPI APP + 使用 AAD 和 Facebook 的身份验证 + AllowAnonymous
【发布时间】:2016-05-05 07:38:47
【问题描述】:

我在 Azure 门户中创建了一个 API 应用程序。然后在我为 Azure 门户中的身份验证/授权配置 Azure Active Directory 和 Facebook 之后(门户 -> 我的 API 应用程序 -> 身份验证/授权)。现在我的要求是一些 API 应该是 Allow Anonymous 并且 其他 API 应该要求来自 Azure Active Directory 或 Facebook 的身份验证

和我一样的问题:Question-1Question-2

请帮忙!!

【问题讨论】:

  • 你可以在授权属性中手动处理吗?您可以检查没有传递身份验证令牌的方法,并且可能有一个列表或标志以确保它确实是可以匿名的方法。
  • 自定义授权属性存在,但我如何识别我是否已经通过 Facebook 或 AAD 登录?
  • 当方法被 [Allowanonymous] 属性修饰时会发生什么?
  • 这行得通,但是如果我们的方法没有用这个装饰怎么办。所以在这种情况下,我们需要对 Facebook 和 AAD 进行一些授权。但主要问题是我该如何实现呢?
  • 如果是 fb 或 AD,您将首先注册应用程序并获取 clientid 等,并配置您的客户端应用程序azure.microsoft.com/en-in/documentation/articles/…

标签: azure asp.net-web-api2 azure-active-directory azure-api-apps


【解决方案1】:

我认为,您的解决方案可能会受益于使用other authentication broker service called Azure Active Directory B2C。基本上,您在后端配置所需的提供程序,然后将其集成到您的应用程序中。然后,您可以在应用程序中使用策略等机制。用于与 AD B2C 的 WebApp 集成 - tutorial。 在您的情况下,我会这样做,因为我相信将身份验证样板文件卸载到后端而不是在应用程序中执行大量自定义操作会更好。

这样做的其他方法是使用自定义属性,该属性将添加身份验证、缓存用户信息、身份验证上下文(关于如何检测是否有人登录的问题)等功能。

【讨论】:

  • 首先,感谢您的回复。我更喜欢使用第二个选项,即自定义属性。但我的问题是如何缓存登录用户的用户信息。假设我已经从浏览器登录到我的 facebook/AAD 帐户,然后我第一次请求我的 API 应用程序。那么在这种情况下,我怎样才能在我的 Web API 中获得登录的详细信息?
  • 啊。请原谅。看起来你想要的是在这里实现(至少部分)单点登录。它将涉及一些编码和测试,并且很难以问答形式涵盖该主题。请看simple-talk.com/dotnet/asp.net/…
  • 这篇文章帮助我解释单点登录的工作原理。您能否详细说明一下,因为我不清楚如何实现身份验证+允许匿名。
  • 当您在浏览器中登录 fb 时,会有一个 cookie 集。随后,如果您已经为 fb 注册并授权了其他应用程序,那么当您打开它时,它将无缝地对您进行身份验证并授权您使用该应用程序。单点登录。如果您使用属性 allowanonymous 装饰您的匿名方法,则不会进行检查。
  • 是的,这就是我的意思。谢谢,Aravind。
猜你喜欢
  • 2018-12-17
  • 1970-01-01
  • 2019-01-13
  • 1970-01-01
  • 2017-03-20
  • 1970-01-01
  • 2018-02-24
  • 1970-01-01
  • 2015-08-10
相关资源
最近更新 更多