首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在web应用静默C#中获取Azure AD令牌

如何在web应用静默C#中获取Azure AD令牌
EN

Stack Overflow用户
提问于 2018-03-23 15:49:17
回答 2查看 3.3K关注 0票数 1

我需要在我的应用程序(C#)中获得Azure token来对用户执行Graph API操作,但是当应用程序调用时没有sign in (应用程序必须是全自动的,在计时器作业中工作),所以我有一个问题,如何让令牌获取过程完全自动化(没有用户)?

我找到的关于这个主题的所有内容:Get access without a user,但我未能重新创建它。

EN

回答 2

Stack Overflow用户

发布于 2018-03-23 16:58:29

您正在描述的OAuth2流被称为“客户端凭证授予”,并在here中进行了详细描述。

简而言之,它在这种情况下是相关的,其工作方式如下:

首先,不能使用守护程序应用程序进行用户交互,这需要应用程序具有自己的身份。守护程序应用程序的一个示例是批处理作业或在后台运行的操作系统服务。此类型的应用程序通过使用其应用程序标识并向Azure AD提供其应用程序ID、凭据(密码或证书)和应用程序ID URI来请求访问令牌。身份验证成功后,守护程序将从Azure AD接收访问令牌,然后使用该令牌调用web API。

看一看this实现,看看它是如何在代码中实现的。

票数 1
EN

Stack Overflow用户

发布于 2018-03-24 00:33:39

使用OAuth代表的工作方式与您描述的完全相同。使用哪种代表方法,无需用户交互即可获得访问下游API (例如Graph API)的用户同意。换句话说,用户身份和权限在完整的请求链中以静默方式委派。在真实的企业环境中,你的应用程序通常会由另一个身份提供商(例如活动目录)进行身份验证,而不是Azure AD,然后它会请求对Azure AD OAuth端点的授权。

请求访问令牌时,必须将其类型设置为requested_token_use=on_behalf_of

下面是POST到端点https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-on-behalf-of的引用

下面是代表https://docs.microsoft.com/en-us/outlook/add-ins/authenticate-a-user-with-an-sso-token使用OAuth进行单点登录身份验证的参考

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49444751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档