没有登录当前用户的Azure Active Directory Web应用程序

问题描述 投票:1回答:1

我正在关注一个较旧的教程(https://code.msdn.microsoft.com/Write-Sample-App-for-79e55502),该教程展示了如何使用ADAL创建连接到Azure Active Directory租户的Web应用程序。有一个包含DirectoryService类的类库,我相信它可以用来检索AD用户属性。我想为了安全目的为这个项目创建一个登录方法,并且能够识别登录到该应用程序的用户。目前还没有通过输入用户名/密码对AD进行身份验证的登录方法,所以我对应用程序如何只使用Web.config中的AppId,Domain和AppSecret检索用户属性而不实际拥有某人感到有些困惑用他们的AD信用登录或重定向到login.microsoftonline / {tenantId} .....我不知道我是否有意义,但我希望能够添加登录方法,以便用户被迫登录它获得了该特定用户的声明,但如果我已经使用ADAL,我还可以加入Owin吗?

azure-active-directory claims-based-identity adal directoryservices
1个回答
3
投票

你的问题分为两部分 -

1.今天该应用程序如何工作,而不要求最终用户明确登录

此示例使用客户端凭据授予,您不需要最终用户登录,但使用应用程序本身的身份获取身份验证令牌并将其用于进一步操作。正如你自己提到的那样,它只需要来自web.config的AppId,Domain和App Secret。你可以在这里阅读所有相关内容 - Client Credentials Grant

MVCDirectoryGraphSample \ Helpers \ MVCGraphServiceHelper.cs文件中提供了获取令牌的相关代码

  AuthenticationContext authenticationContext = new AuthenticationContext(authString); 
                ClientCredential clientCred = new ClientCredential(ConfigurationManager.AppSettings["AppPrincipalId"],

2.如何添加登录方法以强制用户登录Web应用程序

您可以开始使用授权代码授予流程,而不是客户端凭据。在这里查看有关不同scenarios that Azure AD supports的文档。您的案例看起来像是一个调用Graph API的Web应用程序,描述了here

这里有确切的代码示例 - Code Samples

© www.soinside.com 2019 - 2024. All rights reserved.