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

授予后台进程读取用户邮件的访问权限

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

    我们有一个控制台应用程序,我们希望在 服务帐户1
    应用程序需要访问的Outlook帐户 服务帐户2 使用Graph API并读取传入的电子邮件。

    服务帐户2 不需要用户干预和跳过同意屏幕的邮箱。

    /授权 以身份登录的终结点 并同意应用程序访问邮箱。这将给我身份验证代码,我可以用它来获取 访问令牌

    有没有一种方法可以在没有这个初始的手动步骤的情况下以编程的方式完成呢?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Rohit Saigal    6 年前

    对于不希望用户显式登录的守护进程/控制台应用程序,可以使用客户端凭据授予。

    您可以在Azure AD中为您的进程创建一个应用程序,然后使用clientid和client secret访问所需的资源。对于邮箱,您的资源应该是图形api下的/users/{userPrincipalName}/mailfolders/inbox/messages。

    下面是来自daemon应用程序的客户端凭据授予流示例- https://github.com/Azure-Samples/active-directory-dotnet-daemon/blob/master/README.md

    特别是为了避免明确的同意部分,参见本链接下的步骤9、10- https://github.com/Azure-Samples/active-directory-dotnet-daemon/blob/master/README.md#step-2--register-the-sample-with-your-azure-active-directory-tenant .

    步骤将“TodoListService”称为示例api,但在您的情况下,我认为它是图形。

    为应用程序配置权限。在某种程度上,在 “设置”菜单,选择“所需权限”部分,然后, 文本框。然后,单击“选择权限”并选择“TodoListAdmin”。 这将允许此客户端应用使用

    在此阶段,权限分配正确,但客户端应用程序是 守护程序服务,因此它不能通过UI接受使用 “权限”,它将在管理员处接受应用程序的许可