没有登录当前用户的 Azure Active Directory Web 应用程序
Azure Active Directory Web Application without login current user
我正在学习较旧的教程 (https://code.msdn.microsoft.com/Write-Sample-App-for-79e55502),该教程展示了如何使用 ADAL 创建连接到 Azure Active Directory 租户的 Web 应用程序。有一个包含 DirectoryService classes 的 class 库,我相信它可以检索 AD 用户属性。出于安全目的,我想为这个项目创建一个登录方法,并且能够识别哪个用户登录到应用程序。目前没有通过输入 username/password 来针对 AD 进行身份验证的登录方法,所以我对应用程序如何仅使用 Web.config 中的 AppId、Domain 和 AppSecret 检索用户属性感到有些困惑实际上没有人用他们的 AD 信用登录或重定向到 login.microsoftonline/{tenantId}.....我不知道我是否有道理,但我希望能够添加一个登录方法所以用户被迫登录,因此它获得了该特定用户的声明,但如果我已经在使用 ADAL,我还可以合并 Owin 吗?
你的问题分为两部分 -
1.在不要求最终用户明确登录的情况下,该应用今天如何运行
此示例使用客户端凭据授予,您不需要最终用户登录,而是使用应用程序本身的身份来获取授权令牌并将其用于进一步的操作。正如您自己提到的,它只需要来自 web.config 的 AppId、Domain 和 App Secret。您可以在此处阅读所有相关信息 - Client Credentials Grant
获取token的相关代码在MVCDirectoryGraphSample\Helpers\MVCGraphServiceHelper.cs文件中
AuthenticationContext authenticationContext = new AuthenticationContext(authString);
ClientCredential clientCred = new ClientCredential(ConfigurationManager.AppSettings["AppPrincipalId"],
2。如何添加登录方法以强制用户登录您的 Web 应用程序
您可以开始使用诸如授权码授予流程之类的东西,而不是客户端凭据。在此处查找有关不同 scenarios that Azure AD supports. Your case looks like a web application calling Graph API, described here
的文档
此处提供执行此操作的确切代码示例 - Code Samples
我正在学习较旧的教程 (https://code.msdn.microsoft.com/Write-Sample-App-for-79e55502),该教程展示了如何使用 ADAL 创建连接到 Azure Active Directory 租户的 Web 应用程序。有一个包含 DirectoryService classes 的 class 库,我相信它可以检索 AD 用户属性。出于安全目的,我想为这个项目创建一个登录方法,并且能够识别哪个用户登录到应用程序。目前没有通过输入 username/password 来针对 AD 进行身份验证的登录方法,所以我对应用程序如何仅使用 Web.config 中的 AppId、Domain 和 AppSecret 检索用户属性感到有些困惑实际上没有人用他们的 AD 信用登录或重定向到 login.microsoftonline/{tenantId}.....我不知道我是否有道理,但我希望能够添加一个登录方法所以用户被迫登录,因此它获得了该特定用户的声明,但如果我已经在使用 ADAL,我还可以合并 Owin 吗?
你的问题分为两部分 -
1.在不要求最终用户明确登录的情况下,该应用今天如何运行
此示例使用客户端凭据授予,您不需要最终用户登录,而是使用应用程序本身的身份来获取授权令牌并将其用于进一步的操作。正如您自己提到的,它只需要来自 web.config 的 AppId、Domain 和 App Secret。您可以在此处阅读所有相关信息 - Client Credentials Grant
获取token的相关代码在MVCDirectoryGraphSample\Helpers\MVCGraphServiceHelper.cs文件中
AuthenticationContext authenticationContext = new AuthenticationContext(authString);
ClientCredential clientCred = new ClientCredential(ConfigurationManager.AppSettings["AppPrincipalId"],
2。如何添加登录方法以强制用户登录您的 Web 应用程序
您可以开始使用诸如授权码授予流程之类的东西,而不是客户端凭据。在此处查找有关不同 scenarios that Azure AD supports. Your case looks like a web application calling Graph API, described here
的文档此处提供执行此操作的确切代码示例 - Code Samples