然而,我们希望制作一个同时使用Azure AD Graph和Microsoft Graph的多租户应用程序,因此我们需要用v1应用程序调用Microsoft Graph。我们还认为基于客户机凭据的授权是最干净的方法。
当使用v1应用程序调用Microsoft Graph时,我们在对调用的响应中看到以下错误:
InvalidAuthenticationToken. Access token validation failure.
以下是令牌有效负载示例:
{
"aud": "00000002-0000-0000-c000-000000000000",
"iss": "https://sts.windows.net/a0482499-f164-4e2f-8564-909dabfc74cb/",
"iat": 1509393647,
"nbf": 1509393647,
"exp": 1509397547,
"aio": "Y2NgYNhb5ao7R09dJ+qAWf/tDcEnAA==",
"appid": "eb7e150b-8a01-4c63-8e6c-31acbf1f0730",
"appidacr": "1",
"idp": "https://sts.windows.net/a0482499-f164-4e2f-8564-909dabfc74cb/",
"oid": "16dd4917-534c-4633-88fc-dcb84e9b9a99",
"roles": [
"Directory.Read.All",
"Directory.ReadWrite.All"
],
"sub": "16dd4917-534c-4633-88fc-dcb84e9b9a99",
"tenant_region_scope": "NA",
"tid": "a0482499-f164-4e2f-8564-909dabfc74cb",
"uti": "Zm-DzqIyX0u8RsXaO9kcAA",
"ver": "1.0"
}
https://login.microsoftonline.com/{tenant}/oauth2/token
令牌的受众是:00000002-0000-0000-c000-0000000000
。
Microsoft图形的受众为:00000003-0000-0000-C000-000000000000
这是Azure AD Graph API的资源ID,而不是Microsoft Graph API。您没有说明是否使用了身份验证库,但在使用ADAL的情况下,除了Azure AD Graph API请求外,还需要执行新的AcquireTokenSilent(...)
请求访问https://Graph.microsoft.com
。
但是现在的问题是,当从计划的作业调用时,WebClient不能调用远程资源服务器。我得到以下错误: 如果我使用MVC控制器中的这个WebClient而不是计划的工作,事情就会很好。在这方面的任何帮助都将不胜感激。
当授权范围限于客户端控制下的受保护资源或事先与授权服务器商定的受保护资源时客户端凭据可以被用作为一种授权许可。典型的当客户端代表自己表演(客户端也是资源所有者)或者基于与授权服务器事先商定的授权请求对受保护资源的访问权限时,客户端凭据被用作为授权许可。
我目前是谷歌分析API throu JavaScript的新成员。我正在实现一些图表和第一次加载,页面是重定向我到谷歌网站登录与分析帐户,然后返回到我的原始页面,刷新和图表显示。 有没有任何技巧/想法,我可以得到任何API可以解决这个问题?
有人用这种方法吗?https://laravel.com/docs/5.4/passport#client-凭证授予代币 我试图使注册API只包含client_id和client_secret,我希望返回作为访问令牌、刷新令牌、过期日期,但返回www.url。com/oauth/token这是什么 有人能帮我吗?提前谢谢
当客户端是资源所有者时,或者当授权范围限于受客户端控制的受保护资源时,客户端凭证可以用作授权授权。 客户端仅在客户端凭据的帮助下请求访问令牌。 客户端凭证授权流用于获取访问令牌以授权API请求。 使用客户端凭据授权,获取的访问令牌仅授予客户端应用程序搜索和获取目录文档的权限。 下图描绘了客户端凭据流。 上图所示的流程包括以下步骤 - Step 1 - 客户端使用授权服务器进行身份验证,并从令牌端点
我正在尝试对“https://graph.windows.net/{{tenantId}}/accounts?api-version=1.6”进行API调用 有什么想法吗?