首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JWT CSOM/REST Azure

JWT CSOM/REST Azure
EN

Stack Overflow用户
提问于 2017-07-27 15:14:32
回答 1查看 283关注 0票数 0

我们一直试图使用带有令牌的CSOM/REST身份验证头请求向sharepoint发出请求。与此有关的问题如下:

来自azure活动目录的C# CSOM共享点请求

只有一个链接/示例可以工作,包括android方法不起作用。

https://samlman.wordpress.com/2015/02/27/using-adal-access-tokens-with-o365-rest-apis-and-csom/

它们似乎没有返回令牌,当我们查看JWT解析器中的令牌时,我们可以看到scp值是不同的,失败的值有,但工作的值有AllSites.Manage AllSites.Read AllSites.Write MyFiles.Read MyFiles.Writeaud url也是不同的,是其中一个还是这两个问题,我如何使它工作?

这就是失败的原因:

代码语言:javascript
复制
{
  "aud": "https://srmukdev.onmicrosoft.com/3Squared-Api-Test",
  "iss": "...",
  "iat": ...,
  "nbf": ...,
  "exp": ..,
  "acr": "...",
  "aio": "...",
  "amr": [
    "pwd",
    "mfa"
  ],
  "appid": "...",
  "appidacr": "0",
  "e_exp": ...,
  "family_name": "...",
  "given_name": "...",
  "ipaddr": "...",
  "name": "...",
  "oid": "...",
  "onprem_sid": "...",
  "platf": "3",
  "scp": "user_impersonation",
  "sub": "...",
  "tid": "...",
  "unique_name": "...",
  "upn": "...",
  "ver": "1.0"
}

这是起作用的:

代码语言:javascript
复制
{
  "aud": "https://srmukdev.sharepoint.com/",
  "iss": "...",
  "iat": ...,
  "nbf": ...,
  "exp": ...,
  "acr": "...",
  "aio": "...",
  "amr": [
    "pwd",
    "mfa"
  ],
  "app_displayname": "...",
  "appid": "...",
  "appidacr": "0",
  "e_exp": ...,
  "family_name": "...",
  "given_name": "...",
  "ipaddr": "...",
  "name": "...",
  "oid": "...",
  "onprem_sid": "...",
  "platf": "3",
  "puid": "...",
  "scp": "AllSites.Manage AllSites.Read AllSites.Write MyFiles.Read MyFiles.Write",
  "sub": "...",
  "tid": "...",
  "unique_name": "...",
  "upn": "...",
  "ver": "1.0"
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-28 06:06:04

访问令牌是通过检查特定资源的aud声明来实现的。第一个令牌用于对您的自定义资源进行身份验证。

要获取特定资源的令牌,可以使用参数resource来指定要为令牌请求的资源。例如,如果我想获得的令牌,我们可以构建如下所示的请求:

代码语言:javascript
复制
POST /{tenant}/oauth2/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&client_id=2d4d11a2-f814-46a7-890a-274a72a7309e
&code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrqqf_ZT_p5uEAEJJ_nZ3UmphWygRNy2C3jJ239gV_DBnZ2syeg95Ki-374WHUP-i3yIhv5i-7KU2CEoPXwURQp6IVYMw-DjAOzn7C3JCu5wpngXmbZKtJdWmiBzHpcO2aICJPu1KvJrDLDP20chJBXzVYJtkfjviLNNW7l7Y3ydcHDsBRKZc3GuMQanmcghXPyoDg41g8XbwPudVh7uCmUponBQpIhbuffFP_tbV8SNzsPoFz9CLpBCZagJVXeqWoYMPe2dSsPiLO9Alf_YIe5zpi-zY4C3aLw5g9at35eZTfNd0gBRpR5ojkMIcZZ6IgAA
&redirect_uri=https%3A%2F%2Flocalhost%2Fmyapp%2F
&resource=https%3A%2F%2Fservice.contoso.com%2F
&client_secret=p@ssw0rd

如果要获取https://srmukdev.sharepoint.com/的访问令牌,则需要根据所使用的流程在请求中使用https://srmukdev.sharepoint.com/分配resource参数的值。

有关获取访问令牌的flows AD支持的更详细信息,请参阅下面的链接:

Azure Active认证协议

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

https://stackoverflow.com/questions/45354788

复制
相关文章

相似问题

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