我们有一个网站(建立在PHP框架上),我们为教师/学生提供在线教育工具.我们已经与google.com进行了OAuth集成,用户可以使用他们的Google帐户"注册"和"登录"我们的网站(可以是个人Gmail帐户,也可以是Google Apps域的成员).
我们正在尝试与O365进行类似的集成,我们的网站可以向O365询问用户的电子邮件和姓/名,以便我们可以在我们的网站上为他们创建帐户,并在创建帐户后将其登录.我们创建了Azure中的应用程序列表 - > Active Directory,并生成了客户端ID和机密,并将它们插入到PHP代码中.此处描述的OAuth工作流程一直有效,直到我尝试使用POST请求https://login.windows.net/common/oauth2/token请求访问令牌.它重定向回我的redirect_uri但不是给我auth代码,它在URL中给了我这些参数:
[error] => access_denied
[error_description] => AADSTS65005: The client application has requested access to resource 'https://outlook.office365.com/'. This request has failed because the client has not specified this resource in its requiredResourceAccess list.
Trace ID: xxxxxx
Correlation ID: xxxxxx
Timestamp: 2014-09-29 06:28:25Z
[state] => xxxxxx
Run Code Online (Sandbox Code Playgroud)
我需要的只是O365给我用户的电子邮件和f/l名称.当然有一个快速修复,我错过了?
我的问题是,我们是否有任何记录方法向Graph API授予管理服务标识权限,就像在门户网站中使用Azure App注册一样?我无法在Azure门户或文档中找到任何Powershell选项或管理MSI服务主体权限的能力.我在MSDN论坛上发现了一个类似的问题,但是想确保没有任何人知道的更新或变通方法?
MSDN论坛帖子:https://social.msdn.microsoft.com/Forums/azure/en-US/dae34534-f193-4444-b52e-ba9cfa4a1fda/does-azure-msi-support-accessing-graph-api? forum = WindowsAzureAD
azure-active-directory microsoft-graph azure-managed-identity
我一直在努力使用我在Azure中设置的应用程序从Office 365访问计划数据.我已经能够成功检索许可和用户信息,但无法获得用户任务列表(来自Planner).
进一步澄清:
图文档:https://graph.microsoft.io/en-us/docs/api-reference/beta/api/user_list_tasks
该文档明确指出执行此操作所需的范围是Group.ReadWrite.All AND Tasks.ReadWrite,我已经提供给应用程序(以及大量其他权限,因为我变得绝望和恼火).对于下面列出的每个应用程序,将检查所有应用程序权限和所有委托权限.在我开始工作之后,我将删除必要的,但我认为这将有助于缓解"你有没有尝试过检查这个...或那个......回复"
我意识到这是测试版,但希望能够利用它,并认为也许别人有更好的运气.
我尝试通过以下两种方式形成请求: https : //graph.microsoft.com/beta/users/[username]/plans https://graph.microsoft.com/beta/tasks?$ filter = createdBy eq '[用户名]'
两者都产生以下结果(大部分消息由于长度而被删除):
{ error:
{ code: 'UnknownError',
message: '...<h2>401 - Unauthorized: Access is denied due to invalid credentials.</h2>\r\n <h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>...',
innerError:
{ 'request-id': '09ef3a04-7fc2-48a0-9570-7f04171e45ed',
date: '2016-05-11T14:18:12' } } }
Run Code Online (Sandbox Code Playgroud)