在谈论 ADFS 应用程序组时,本机应用程序和服务器应用程序有什么区别?

What is the difference between a Native Application & Server Application when talking about ADFS Application Groups?

我是联合身份验证服务的新手,我正在尝试了解 ADFS 作为一个整体是如何工作的,并且我已经开始深入了解细节。我接着创建了一个使用 OIDC 来验证用户身份的应用程序,但是,在教程中,他们指定在设置应用程序组时使用 "Server Application"。这最终对我不起作用,所以我尝试为 kicks 设置一个 "Native Application" 应用程序组并能够成功登录。

让我失望的是,我最终将 ADFS 托管在我拥有我的应用程序 运行ning 的域之外的服务器上,所以我很困惑这是怎么回事 "native" 就 ADFS 而言。

我在微软的文档中寻找这个答案,但我没有找到非常清楚的信息。

本机应用程序:

"Sometimes called a public client, this is intended to be a client app that runs on a pc or device and with which the user interacts."

服务器应用程序:

"A web application that runs on a server and is generally accessible to users via a browser. Because it is capable of maintaining its own client 'secret' or credential, it is sometimes called a confidential client."

这对某些人来说似乎很简单,但我正在努力真正掌握什么时候使用什么。对我来说,当您 运行 在用户也在使用同一台电脑的电脑上本地运行应用程序时,听起来像是在使用本机应用程序,而服务器应用程序是 运行 远程其中用户不会使用同一台机器。真的有那么简单还是我误会了?

本机应用程序(在 Microsoft 中)是指不基于浏览器的应用程序,例如移动的。代码在客户端运行。它可以使用 JavaScript 在这种情况下密钥是公开访问的。 (密钥是 OAuth 参数之一)。您使用 ADAL / MSAL 访问它。

服务器应用程序在服务器端运行,例如 Web API。密钥不可公开访问。您使用 OWIN 访问它。

这些术语与 ADFS 的实际安装位​​置无关。本机应用程序通常未加入域。