首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSGraph订阅创建错误:“消息”:“操作:创建;异常:[状态码:未授权;原因:]",”代码“:"ExtensionError”

MSGraph订阅创建错误:“消息”:“操作:创建;异常:[状态码:未授权;原因:]",”代码“:"ExtensionError”
EN

Stack Overflow用户
提问于 2019-07-03 20:05:50
回答 1查看 549关注 0票数 2

我需要创建订阅用户使用Microsoft Graph。

我在Aure Active Directory中拥有所有权限:

User.Read.All。

我的订阅方式:

代码语言:javascript
复制
def create_subscription_to_users(self):
    t = datetime.utcnow() + timedelta(minutes=settings.MAX_TIME_DELTA_IN_MINUTES)
    payload = {
        "changeType": "updated",
        "notificationUrl": "{0}/webhooks/azure".format(settings.AZURE_WEBHOOKS_CALLBACK_BASE_URL),
        "resource": "users",
        "expirationDateTime": t.strftime("%Y-%m-%dT%H:%M:%S.%fZ")
    }
    response = self.graph_client.post(url='{0}/subscriptions'.format(settings.GRAPH_URL), json=payload).json()
    self.add_log(url='{0}/subscriptions'.format(settings.GRAPH_URL),
                 method='POST', payload=payload, response=response)
    return response

我的验证类:

代码语言:javascript
复制
class AzureHook(View):
    def post(self, request):
        url = request.get_full_path()
        parsed_url = parse_qs(urlsplit(url).query)
        validation = dict(parsed_url).get('validationToken')[0]
        return HttpResponse(validation.encode('utf-8'), content_type='text/plain')

但我仍然收到创建订阅的响应:

代码语言:javascript
复制
{"error": {"innerError": {"date": "2019-07-03T11:29:39", "request-id": "5e7f1fc3-8ef4-4511-b661-35bf7d146cc3"}, "message": "Operation: Create; Exception: [Status Code: Unauthorized; Reason: ]", "code": "ExtensionError"}}

有没有人能帮我一下?

EN

回答 1

Stack Overflow用户

发布于 2019-07-12 14:45:55

为了消除这个错误,在应用程序中添加以下作用域。User.Read.All&offline_access、User.ReadWrite.All、Group.ReadWrite.All、Group.Read.All、Directory.ReadWrite.All、Directory.AccessAsUser.All、openid。

要获取授权码,请在浏览器中尝试此url。https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=&response_type=code&redirect_uri= http://localhost:4200/api/auth/callback/AzureAD&response_mode=query&scope=User.Read.All &User.ReadWrite.All&Group.ReadWrite.All&Group.Read.All&Directory.ReadWrite.All&Directory.AccessAsUser.All&openid&offline_access&state=12345&prompt=login

先用邮递员试一下这个请求,我附上curl请求供你参考。

curl -X POST \ https://graph.microsoft.com/v1.0/subscriptions \ -H‘授权:持有者’\ -H‘内容类型:应用程序/json’\ -d '{ "changeType":“已更新”,"notificationUrl":"https://5690e074.ngrok.io",“资源”:"groups","expirationDateTime":"2019-07-13T10:19:03.170Z","clientState":"secretClientValue“}‘

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

https://stackoverflow.com/questions/56869775

复制
相关文章

相似问题

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