当前位置: 首页 > 知识库问答 >
问题:

如何从Azure Graph API中获取基于用户的令牌

郭兴文
2023-03-14

我有一个Azure Active Directory,在我的Web Api中有一段代码,我可以使用我在Azure注册的应用程序和客户端证书从Azure Graph Api获取令牌。下面是我现在使用的代码:

public static string AcquireServiceToken()
{
    var authority = string.Format(_authority, "common");
    var authContext = new AuthenticationContext(authority);

    var result = authContext.AcquireToken(_serviceTokenResourceId, new ClientAssertionCertificate(_serviceTokenClientId, GetClientCertificate(_certThumbprint)));
    return result.AccessToken;
}

这段代码工作得很好,现在我需要的是一个已经登录用户上下文的更具体的令牌,所以基本上我需要能够传入用户名和密码,并从Azure获得一个图形令牌。有什么想法吗?

共有1个答案

孟高峰
2023-03-14

AcquireToken有另一个重载,它接受了一个UserCredential对象,U假定您可以使用它(您将需要Active Directory的TenantId,您需要为其获取令牌的用户)

您的函数看起来如下所示:(请用您自己的应用程序信息填充_variables)

public static string AcquireTokenWithoutUserCredentials(string userName, string password)
{
    var authContext = new AuthenticationContext(string.Format(_authority, _userTokenTenantId));
    var userCreds = new UserCredential(userName, password);
    var result = authContext.AcquireToken(_resourceId, _userTokenClientId, userCreds);
    return result.AccessToken;
}

看看你的代码,看起来你有一个多租户的场景,其中你使用“common”作为TenatName,我不确定它如何/是否能使用我粘贴在这里的代码,但试一试...

 类似资料:
  • 我正在开发一个移动网站,托管Node.js / Express,并通过Firebase电话身份验证“轻微”保护。首次加载时,站点基本上是空的。在初始 Firebase Phone 身份验证后,JWT 令牌将通过 AJAX 调用发送到节点服务器。服务器检查令牌,验证用户是否已获得授权,然后发回站点的 html 内容。 到目前为止,一切都很好。这是保护简单单页Web应用程序上显示内容的好方法。 但这是

  • 我的主要目的是通过单个管理员访问令牌获取用户的日历。我正在尝试按照以下步骤获取访问令牌。 URL:https://login.microsoftonline.com/{tenentId}/oaust2/v2.0/令牌正文client_id:client_ID范围:https://graph.microsoft.com/.defaultclient_secret:client_secretIDgra

  • 我在Azure Portal上创建了一个多租户应用程序,并发送请求以获取具有应用程序客户端Id的令牌。我正在使用以下URL在Microsoft Azure AD上获取令牌 https://login.microsoftonline.com/common/oauth2/v2.0/authorize 发送参数为client_id={clientId}的获取请求 但是,它在给定的回调url上返回acce

  • 问题内容: 我正在尝试使用Apache Lucene进行令牌化,但我对从中获取令牌的过程感到困惑。 最糟糕的是,我正在查看JavaDocs中解决我的问题的注释。 http://lucene.apache.org/java/3_0_1/api/core/org/apache/lucene/analysis/TokenStream.html#incrementToken%28%29 不知何故,应该使用

  • 我必须得到一个特定用户的用户配置文件细节后,他们登录使用Firebase。现在,它正在返回我的FireStore中所有用户的详细信息。

  • 问题内容: 因此,我找到了一些代码来帮助我开始使用Go(golang)进行反射,但是我很难获取基础值,因此我基本上可以从结构及其字段中创建a 。 最终,我想将结果设为,但是这个问题有点使我受阻。 我目前拥有的代码: 运行代码的输出: 据我了解,FirstName和LastName的输出是实际的reflect.Value对象,但对于字符串,value上的String()方法仅输出基础String。我