我试图弄清楚如何使用Azure Graph从给定的用户名中查询用户的全名(第一名和最后一名)。我知道我可以用下面的Graph调用来完成这个任务..。
https://graph.windows.net/myorganization/users/{user_id}?api-version但是,我不确定如何获得一个访问令牌来使用它,因为这个过程将在没有用户登录的情况下被调用,这通常是我们获取访问令牌的方式。
不管怎么说,我是否可以使用cURL或其他方式将用户名/密码传递给给定的URL,并以这种方式获得访问令牌,这样就可以在幕后完成?
发布于 2017-06-02 00:36:32
OAuth 2支持两种主要的身份验证方法:
第一个流程要求用户代理在客户端服务中签名,并得到一个委托令牌。第二种方法不需要用户登录,因为它只使用客户端机密进行身份验证;这只会导致应用程序令牌。
如果您想要创建一个从AAD Graph捕获数据的后台服务,您绝对可以使用客户端凭据授权流来完成这一任务,它不要求用户在身份验证流期间的任何时刻都在场。
您只需将应用程序配置为只有应用范围。读在这里:权限作用域\x-图API概念。App仅适用范围--所有这些都需要租户管理员同意应用程序才能访问数据。
最后,我觉得我必须提到在OAuth 2规范中指定的另一个使用较少的流:资源所有者密码凭据授予。此流程指定了解用户用户名和密码的客户端应用程序如何直接传递这些参数并代表用户获取访问令牌。然而,使用这个流程根本不是一个好的实践。
资源所有者密码凭据授予类型适用于资源所有者与客户端具有信任关系的情况,例如设备操作系统或高特权应用程序。授权服务器在启用此授予类型时应特别小心,并且仅在其他流不可行时才允许它。
我们在V1端点中支持这一点,但在新的V2端点中不支持。你可以读本博客欲了解更多。
https://stackoverflow.com/questions/44308605
复制相似问题