调用图形时不记名令牌无效 API

Bearer token is not valid when calling the graph API

我想在 AD 中查看有关我的用户的完整信息(组中的用户等...) 我已经有一个登录到 AD 的应用程序,然后我获得了一个可以访问我的 azure 区块链 workbench API 的不记名令牌,并且一切正常。 workbench API 有一个用户端点,但信息有限,它有名字、姓氏、电子邮件等...我想知道更多。

当尝试使用我已经拥有的不记名令牌调用 https://graph.microsoft.com/v1.0/me 端点时,它是无效的,我得到:

{

    "odata.error": {

    "code": "Authentication_MissingOrMalformed",

    "message": {

        "lang": "en",

        "value": "Access Token missing or malformed."

    },

    "requestId": "47322d1e-24d5-4170-ace5-947a8725ec1c",

    "date": "2019-03-13T08:14:37"

    }

}

我也尝试了不同的方法。我有一个服务主体,并为该服务主体提供了 windows 活动目录用户权限的基本信息。我还给了它 Microsoft Graph 权限和 mu 区块链应用程序权限(不确定是否需要)。

我用客户端凭证正文调用 https://login.microsoftonline.com/{{tenant-id}}/oauth2/token,我得到了一个不记名令牌。现在有了这个不记名令牌,我得到:

{

    "error": {

        "code": "Authorization_RequestDenied",

        "message": "Insufficient privileges to complete the operation.",

        "innerError": {

            "request-id": "2a7febaa-a6db-4770-a323-1971fa0bf863",

            "date": "2019-03-17T13:54:57"

        }

    }

}

Microsoft Graph API 作为资源需要获取访问令牌。

在第一种方法中,您已经拥有的用于 workbench api 的令牌将不适用于 Microsoft Graph,因为该令牌适用于 Workbench API..可以通过查看该令牌的 aud 声明来检查这一点。您可以使用 https://jwt.ms

解码令牌

在第二种方法中,令牌应该可以工作,只要您指定要为其获取令牌的资源是 https://graph.microsoft.com 而不是 workbench API。如果您仍然遇到问题,请分享您用于获取令牌的代码或解码的令牌本身(减去任何敏感信息)