代码之家  ›  专栏  ›  技术社区  ›  acanessa

Microsoft Graph-如何以非交互方式获取令牌?

  •  0
  • acanessa  · 技术社区  · 6 年前

    我想通过GET请求在Microsoft Graph上获取令牌。 如果我使用下面的调用,我会得到一个登录屏幕,询问用户名和密码。

    https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
    client_id=f3992025-4d4d-XXXXX-bb2d-XXXXXXXXX
    &client_secret=XXXXXXXXXXXXXXXXXXXXXXXXXX
    &response_type=code
    &redirect_uri=https://10.100.XXX.XXX:5858/authorize
    &response_mode=query
    &scope=openid%20offline_access%20https%3A%2F%2Fgraph.microsoft.com%2Fmail.read
    &state=12345
    

    如果我这样做,我会得到以后获取令牌所需的代码,并且我可以毫无问题地使用它

    我的问题是我不想看到登录屏幕 . 我希望请求返回代码 没有用户交互 . 我以为客户ID和客户机密会处理这个问题。

    我遵循以下指示: https://developer.microsoft.com/en-us/graph/docs/concepts/auth_overview

    谢谢您。

    1 回复  |  直到 6 年前
        1
  •  0
  •   axfd    6 年前

    据我所知,您可以使用OAuth 2.0客户端凭据授予,通过使用应用程序的标识访问Web宿主资源。它用于服务器到服务器的交互。有关详细信息,请单击 https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow .

    POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
    client_id=f3992025-4d4d-XXXXX-bb2d-XXXXXXXXX
    &scope=https://graph.microsoft.com/.default
    &client_secret=XXXXXXXXXXXXXXXXXXXXXXXXXX
    &grant_type=client_credentials