- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Xamarin.forms 项目中,我使用 ADAL (Microsoft.IdentityModel.Clients.ActiveDirectory) 在 Azure 门户(Auth 1.0 终结点)上进行身份验证。这部分工作很好,但我需要获取用户的安全组。因此,我使用此代码并传递通过 ADAL 收到的 token :
HttpClient client = new HttpClient();
HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Get, "https://graph.microsoft.com/v1.0/me/memberOf");
message.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("bearer", token);
HttpResponseMessage response = await client.SendAsync(message);
string responseString = await response.Content.ReadAsStringAsync();
我总是收到 StatusCode:401,ReasonPhrase:“未经授权”。在我的 azure AD 应用程序注册中,我添加了 Graph API 和这些权限:
我想我错过了一些东西。有什么想法吗?
----- 编辑 1 ---这是我的有效载荷。为了方便起见,我将其更改为图片。我不知道如何在这里发布 json
-----编辑2 ---哦!我懂了。我想我需要更多地了解Azure登录过程。现在,我遵循 ADAL 和 Azure 的示例,让我在后端记录并使用某些功能。所以登录过程使用:
var authContext = new AuthenticationContext(authority); var authResult = await authContext.AcquireTokenAsync(resource, clientId, uri, platformParams);
其中权限 = https://login.microsoftonline.com/mysite.com ,ResourceID 是我的后端应用程序 ID,clientID 是我的 native 应用程序 ID。所以 Shawn 是正确的,我不使用 Graph.microsoft.com 来获取 token 。我们还有其他方法来实现这一切吗?使用Graph的需要只是获取用户在应用内调整权限的AD组。
最佳答案
您的评论是正确的。如果您向应用程序添加新权限,则必须要求用户重新同意该应用程序。
您可以通过 ADAL 将 PromptBehavior
设置为 Always
来强制重新同意:
platformParams.PromptBehavior = PromptBehavior.Always
或者您可以简单地修改您的登录 URL 以通过添加查询字符串来强制执行:
&prompt=consent
在构建应用程序来帮助克服此问题方面,如果您认为您的应用程序在发布后会更改权限,您可以集成检测未经授权
的逻辑,然后将用户发送给重新 -同意。
另一个选项是让您的应用跟踪可能需要新的同意提示的更改,并检测用户何时首次使用您的应用程序的新版本,并请求他们同意。
在我们的新应用程序模型 V2 中,我们支持 Incremental and Dynamic Consent 的概念,这应该可以为您解决这个问题。
关于azure - 如何使用 ADAL token 使用 Graph API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47062093/
如何配置 ADAL JS 以使用本地 Active Directory(Windows Server 2012 R2、ADFS)? GitHub 上的公告帖子 ( http://www.cloudid
我正在使用 Javascript(不带 Angular)向我的单页 Web 应用程序添加 AAD 身份验证。初始登录工作正常,但一个小时后, token 过期,我无法使用acquireToken 更新
我正在使用 Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory 用于对 Outlook.com API 进行身份验证的 Nuget
我正在使用在 azure ad 中进行身份验证的应用程序。我使用 adal.js 来获取访问 token 。但是访问 token 的有效期只有 1 小时。那么如何使用我在 Adal js 中的刷新 t
我有一个使用 Web 表单编写的旧应用程序。在这个项目中,我们开始将一些 Webform 转换为 SPA、Angular.js 和 WebAPI。 SPA 页面直接与 WebAPI 通信。我们的想法是
我已经使用 SPA 应用程序设置了 adal 和 adal-Angular v.1.0.10 库,并取得了巨大的成功。我正在使用 webpack,但在我的 html 页面中引用这些,希望避免全局范围问
我已经使用 SPA 应用程序设置了 adal 和 adal-Angular v.1.0.10 库,并取得了巨大的成功。我正在使用 webpack,但在我的 html 页面中引用这些,希望避免全局范围问
我正在我们的应用程序中实现 AAD 单点登录,我们将在我们的 MEAN 堆栈应用程序中使用 adal.js/adal-angular.js 库。初始化库的一部分是调用 init() 并提供租户和 cl
我在 Azure AD 中注册了一个控制台应用程序,该应用程序连接到 CRM Online(使用 these steps 配置)。它查询 Web API。 应用程序需要在没有用户交互的情况下运行...
我正在创建一个使用 Azure Active Directory 身份验证库作为身份验证提供程序的网站。我按照本教程在我的开发环境中建立了工作环境。 https://github.com/AzureA
我使用 ADAL for android 编写了下面的身份验证代码: mAuthContext = new AuthenticationContext(MainActivity.this, Const
我在 iOS 应用程序中使用 ADAL v2.5.4 自动登录时遇到问题。 当用户想要登录 MSA 帐户时,我们会使用所需的参数调用 acquireTokenWithResource,并将提示行为设置
var outlookServicesClient = await AuthenticationHelper.EnsureOutlookServicesClientCreatedAsync("Cale
我已经为 ADAL 身份验证设置了一个演示应用程序。我公司要求安装InTune应用程序:https://itunes.apple.com/us/app/intune-company-portal/id
我正在尝试开发一个VueJS单页应用程序,该应用程序会将您登录到AAD,以便我可以获取访问 token 以调用各种API(例如Graph)。 用户登录后,您必须获取 token ,并且有两种方法可
我正在使用以下代码对我的 Azure 试用帐户中的默认用户进行身份验证。 static void Main(string[] args) { GetTokenAsync
我刚开始使用 adal-node npm 包。 在示例中提到: var resource = '00000002-0000-0000-c000-000000000000'; 这个 ID 是从哪里来的?
AzureAD 支持 OAuth 资源所有者密码凭据授予。 ADAL SDK 最近添加了对其的支持 ( https://www.nuget.org/packages/Microsoft.Identit
我正在尝试从我的 Auth0 设置中获取访问 token ,我正在使用 ADAL。当我查看 fiddler 时,我不明白为什么它试图连接到以下站点: https://login.windows.net
我正在尝试将 adal.js 集成到我的应用程序中。下面是我的代码。有人可以告诉我为什么未触发身份验证吗? var app = angular.module('TestWebApp', [ 'n
我是一名优秀的程序员,十分优秀!