C# 健全性检查Microsoft Graph API并从Postman生成OAuth令牌
我正在使用C# 健全性检查Microsoft Graph API并从Postman生成OAuth令牌,c#,azure,oauth,microsoft-graph-api,C#,Azure,Oauth,Microsoft Graph Api,我正在使用MicrosoftGraphAPI进行编码,并试图证明生成OAuth令牌的能力。我正在使用Postman,并将我的应用程序托管在Azure Active Directory上。在尝试传入正确的范围时,我在Postman中遇到问题-我正在尝试传入用户。请阅读,但是,Postman没有生成令牌 我的设置: 授权URL:{my_tenent}/oauth2/authorize 访问URL:{my_tenent}/oauth2/token 作用域:User.readAll 这些是生成OAuth
MicrosoftGraphAPI
进行编码,并试图证明生成OAuth令牌的能力。我正在使用Postman,并将我的应用程序托管在Azure Active Directory上。在尝试传入正确的范围时,我在Postman中遇到问题-我正在尝试传入用户。请阅读,但是,Postman没有生成令牌
我的设置:
授权URL:{my_tenent}/oauth2/authorize
访问URL:{my_tenent}/oauth2/token
作用域:User.readAll
这些是生成OAuth令牌所要传递的正确值吗 是否确保将应用程序设置为请求对Microsoft Graph的权限
“其他应用程序的权限”部分。您必须静态选择希望应用程序调用Microsoft Graph的作用域,除非您使用的是支持动态许可的V2端点
让我知道这是否有帮助 是否确保将应用程序设置为请求对Microsoft Graph的权限
“其他应用程序的权限”部分。您必须静态选择希望应用程序调用Microsoft Graph的作用域,除非您使用的是支持动态许可的V2端点
让我知道这是否有帮助 我为同一个问题争论了将近一天,最后才找到答案。以下是适用于我的设置:
- 令牌名称:[任何您想要的]
- 验证Url:
- 访问令牌URL:(虽然,我认为刷新不起作用)
- 客户端ID:[您的应用程序的客户端ID]
- 客户端密码:[您的应用程序的客户端密码]
- 范围:我这里有很多范围,但它们似乎被忽略了。应在应用程序控制台中设置作用域
- 授权类型:授权代码
- 选中“本地请求访问令牌”
如果一切正常,当您单击“请求令牌”时,您应该会看到登录屏幕。我为这个问题争论了将近一天,最后才找到答案。以下是适用于我的设置:
- 令牌名称:[任何您想要的]
- 验证Url:
- 访问令牌URL:(虽然,我认为刷新不起作用)
- 客户端ID:[您的应用程序的客户端ID]
- 客户端密码:[您的应用程序的客户端密码]
- 范围:我这里有很多范围,但它们似乎被忽略了。应在应用程序控制台中设置作用域
- 授权类型:授权代码
- 选中“本地请求访问令牌”
如果一切正常,当您单击“请求令牌”时,应该会出现登录屏幕。听起来您在这里混合了一些v1和v2端点。我已经写了一篇文章,可能会对你有所帮助
v2身份验证的URI应为https://login.microsoftonline.com/common/oauth2/v2.0/
而不是https://login.windows.net/{my_tenent}/oauth2/authorize
当使用Graph请求作用域时,请确保使用完整URI,而不仅仅是作用域名称本身。例如,user.read
应作为https://graph.microsoft.com/user.read
。多个作用域以空格分隔,因此请求的user.read
和mail.read
将被格式化为”https://graph.microsoft.com/mail.read https://graph.microsoft.com/user.read
如果您希望使用v1端点,则不请求将作用域作为OAUTH工作流的一部分。对于v1,当您注册应用程序时,作用域在Azure Active Directory中定义
如果您不确定要使用哪一个,请看一看。一般来说,我倾向于推荐v2,因为它最终将取代传统的v1实现。不过,还有一些较旧的API(EWS、SfB等)目前它只支持v1,因此在某些情况下您可以选择它。听起来您在这里混合了一些v1和v2端点。我已经写了一个可能对您有所帮助的示例
v2身份验证的URI应为https://login.microsoftonline.com/common/oauth2/v2.0/
而不是https://login.windows.net/{my_tenent}/oauth2/authorize
使用Graph请求作用域时,请确保使用完整URI,而不仅仅是作用域名称本身。例如,user.read
应作为https://graph.microsoft.com/user.read
。多个作用域以空格分隔,因此请求的用户。read
和邮件。read
将被格式化为”https://graph.microsoft.com/mail.read https://graph.microsoft.com/user.read
如果希望使用v1端点,则不请求将作用域作为OAUTH工作流的一部分。对于v1,当您注册应用程序时,作用域在Azure Active Directory中定义
如果您不确定要使用哪一个,请查看。一般来说,我倾向于推荐v2,因为它最终将取代传统的v1实现。然而,目前有一些较旧的API(EWS、SfB等)只支持v1,因此在某些情况下您可以选择 忽略作用域的原因是您正在调用较旧的v1端点。作用域仅使用v2端点动态定义。忽略作用域的原因是您正在调用较旧的v1端点。作用域仅使用v2端点动态定义。