首页 文章

Microsoft Graph非本地应用程序的非交互式登录

提问于
浏览
2

我有一个本机C#.NET控制台应用程序,客户使用该应用程序从Graph for Office 365中提取用户许可证分配 . 我已经实现了交互式身份验证和管理员同意,这是有效的 . 我还需要能够编写应用程序脚本,以便它可以按计划运行,因此需要以非交互方式进行身份验证,并在应用程序运行时提供凭据 .

为此,我使用以下电话:

https://login.microsoftonline.com/common/oauth2/token

resource=https%3A%2F%2Fgraph.microsoft.com
&client_id={_clientId}
&grant_type=password
&username={username}
&password={password}

一旦申请被授权给用户或通过管理员同意,这对我的租户起作用 .

但对于我正在使用的客户,这不起作用 . (客户启用了双因素身份验证,所以我'm not sure if that is affecting it. Interactive authentication works for them, but Admin Consent, although it returns ' admin_consent = True',似乎没有工作,仍然提示用户授权应用程序,这是他们不能做的,因为他们不是全局管理员,而是全球管理员可以自己授权 . )

使用Graph for Native应用程序以非交互方式进行身份验证的最佳/正确(官方/非官方)方式是什么 . (到目前为止,我所阅读的所有文档都表示不支持Native应用程序,并推动交互式身份验证 . )

任何帮助将不胜感激 .

谢谢

加里

1 回答

  • 2

    你绝对应该避免使用 password grant . 通过存储用户名和密码,您将面临巨大的责任风险 . 这太容易受到损害了 .

    对于服务/守护程序方案,您应该使用 client_credentials grant . 一旦您收到管理员同意,它将允许您在没有用户参与(或在上下文中)的情况下检索令牌 .

    有关此文档,请访问:

相关问题