【问题标题】:Azure App(native) Silent Authentication without user interactionAzure App(native) 无用户交互的静默身份验证
【发布时间】:2018-05-03 11:20:23
【问题描述】:

我想使用在线管理 API 备份动态 crm 实例。基本上我想在没有用户交互的情况下每天备份完整的 CRM 实例。 MS给出的示例代码需要一个我们不需要的登录窗口,我没有找到排除登录窗口的方法。

Sample Code

【问题讨论】:

  • 您想将您的应用程序作为桌面应用程序运行吗?还是守护进程?还是 Web 应用程序?是否要使用 Windows 集成安全性?
  • 我想将应用程序作为 Windows 服务或控制台应用程序(后台)运行

标签: c# azure dynamics-crm azure-active-directory


【解决方案1】:

将其作为守护程序运行,Windows 服务,您可以使用应用程序权限,并通过记录在here 的身份验证流程获取一个仅限应用程序的令牌,并附上一些代码示例的链接。现在,如果您作为具有委派权限的用户帐户运行它,您可以尝试这里提到的令牌获取的“client_secret_post”身份验证方法,更详细地使用OpenID Connect SpecOAuth 2.0 Spec。 Azure-activedirectory-library-for-dotnet GitHub repo here 中有一个 Wiki。

【讨论】:

  • 我们尝试过使用守护程序应用程序以及使用证书的静默身份验证,但是当我尝试使用访问令牌调用在线管理 API 时 - 它总是说您未获得授权。然而我又试了一次
  • 我可以使用 Daemon-Certificate 凭据获取访问令牌,但是当我使用相同的令牌获取实例时,它显示“请求的授权已被拒绝”虽然我在访问令牌时传递了正确的资源 URL
  • 您是否使用jwt.ms 检查过令牌声明?如果声明正确,但您仍然拒绝访问,管理员是否在 AAD 注册中“授予”了这些权限?
  • 您是否知道权限是否已通过管理员同意授予应用程序? developer.microsoft.com/en-us/graph/docs/concepts/…
  • 是的,我已经检查过了,我已经授予了 Office Management API 的权限,也获得了管理员的同意。我没有使用 jwt.ms 检查令牌声明?
【解决方案2】:

以下是您希望用于守护程序应用程序的代码示例Daemon applications (accessing Web APIs with the application's identity)

您可以选择 .NET 或 .NET Core 示例,甚至可以选择一个 Java 示例和一个 ASP.NET Web 应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 2012-02-01
    • 2023-02-07
    相关资源
    最近更新 更多