gpt4 book ai didi

c# - 如何从 Azure ActiveDirectory 应用程序获取当前 token

转载 作者:太空宇宙 更新时间:2023-11-03 21:31:29 25 4
gpt4 key购买 nike

我有一个使用 Visual Studio 2013 项目模板创建的 ASP.NET 应用程序。出于安全考虑,我选择了 Azure Active Directory。我的所有登录功能都可以正常工作,但我想开始使用 Graph API 来管理我的应用程序中的用户。我已经创建了一个与 Azure AD 一起使用的应用程序 key ,但我不太确定如何进行图形调用。

我研究了https://github.com/AzureADSamples/WebApp-GraphAPI-DotNet处的代码,但以这种方式使用图形 API 需要 token 。

有没有办法在我的 ASP.NET 应用程序成功登录 AD 后获取 token ,以便我可以使用它来调用图形 API?也许通过向 Global.asax 添加一个方法?

是否有其他方法可以从使用此项目模板创建的 ASP.NET 应用程序调用图形 API?

最佳答案

事实上,您确实需要一个 OAuth token ,您的 Web 应用程序可以使用它代表登录用户访问 Graph API。如果您使用的是 .Net,则您正在查看正确的示例 - OpenID Connect 是推荐的协议(protocol),用于登录用户并获取授权代码来访问 Graph API:https://github.com/AzureADSamples/WebApp-GraphAPI-DotNet

  1. 当用户单击“登录”链接时,OpenIDConnect(SSO + 身份验证代码授予流程)开始。请参阅 AccountController 中的 _LoginPartial View ( https://github.com/AzureADSamples/WebApp-GraphAPI-DotNet/blob/master/WebAppGraphAPI/Views/Shared/_LoginPartial.cshtml ) 和登录操作。
  2. 主要的魔力发生在 Startup.Auth.cs ( https://github.com/AzureADSamples/WebApp-GraphAPI-DotNet/blob/master/WebAppGraphAPI/App_Start/Startup.Auth.cs ) 中:它在事件 AccessCodeReceived 上配置委托(delegate),以兑换 OAuth 访问代码以获取刷新 token 和资源的访问 token (Graph API),并将 token 缓存中的 token 。
  3. 请参阅 AuthUtils 类 ( https://github.com/AzureADSamples/WebApp-GraphAPI-DotNet/blob/master/WebAppGraphAPI/Utils/AuthUtils.cs ):GetAuthToken 方法首先尝试从 token 缓存中检索访问 token 。如果访问 token 和刷新 token 已过期,它会重新对用户进行身份验证,以使用新的刷新 token 填充 token 缓存。
  4. 请参阅 TokenCacheUtils 类 ( https://github.com/AzureADSamples/WebApp-GraphAPI-DotNet/blob/master/WebAppGraphAPI/Utils/TokenCacheUtils.cs ):它使用代码调用 AAD token 端点来获取资源的访问 token (在您的例子中为 Graph API),并使用刷新 token 来获取资源

希望这有帮助

关于c# - 如何从 Azure ActiveDirectory 应用程序获取当前 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23962472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com