问题标签 [adal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
276 浏览

wpf - WPF 应用程序未使用 ADAL 验证到 WEB API

我尝试了几个 ADAL(Azure AD 身份验证库)示例来让我的 WPF 应用程序调用 Azure 安全 Web API。一切似乎都运行良好。我收到登录提示,它接受我的凭据,我能够获取令牌。我将令牌附加到我的请求中,但请求总是返回 Azure 登录页面的 HTML,就好像我没有经过身份验证一样。

有没有其他人遇到过这种类型的问题?我应该检查某些事情吗?

0 投票
0 回答
106 浏览

azure - Waad 认证

我一直在尝试使用 WAAD 探索产品,为此我一直在尝试使用 ADAL 和 Windows Azure 来验证控制台应用程序。

大多数时候,对 AcquireToken 的调用只是挂起并且不会返回。有没有办法可以找出下面代码中的问题。

谢谢,石菊塞缪尔

0 投票
1 回答
736 浏览

c# - 将匿名提供程序添加到用 TypeScript 编写的 Angular 模块

是否可以将(匿名)从.js文件中的提供者注入到使用打字稿编写的角度模块中?我正在尝试编译在模块定义中失败的打字稿。

故事

我有一个基本的模块,使用打字稿符号中的角度编写。我正在尝试将adalAuthenticationServiceprovider 的定义添加到来自adal-angular.js. 因为提供者不是.d.ts格式我不能用它作为参考。将提供程序转换.d.ts为现在是不可能的。所以我留下了匿名注入选项(如果有这样的选项)。

控制器定义

应用定义

基本上,我试图绕过编译阶段,adalAuthenticationService将注入作为依赖项,因为adal-angular.js包含在内。所以理论上它应该在页面呈现后被拾取。

0 投票
2 回答
2467 浏览

windows - Windows 通用应用程序中的 ADAL 问题

我正在构建通用应用程序,我正在使用 Azure Active Directory 进行身份验证。我将 Microsoft.IdentityModel.Clients.ActiveDirectory 用于 SSO。适用于 Windows 8.1 和 Window 10 商店应用程序。我一直在参考以下 URL 来连接到我的 Azure Active Directory 并验证用户

http://www.cloudidentity.com/blog/2014/08/28/use-adal-to-connect-your-universal-apps-to-azure-ad-or-adfs/

我根据我的项目替换了clientID、权限和资源url。当我从 Windows phone 运行 Application 时,它运行良好。当我在 Windows 10 中运行相同的代码并在 Windows 8.1 中移植相同的逻辑时,应用程序提示输入用户 ID 和密码,输入这些凭据后,我收到以下错误

“我们现在无法连接到您需要的服务。请检查您的网络连接或稍后再试一次”

我在运行应用程序时在 Visual Studio 2015 的输出窗口中看到如下。

“'Page' 类型是在未引用的程序集中定义的。您必须添加对程序集 'Windows.Foundation.UniversalApiContract, Version=1.0.0.0, Culture=neutral, Pub 的引用

类型“IUICommand”在未引用的程序集中定义。您必须添加对程序集“Windows.Foundation.UniversalApiContract, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime'licKeyToken=null, ContentType=WindowsRuntime”的引用。"

我还尝试在 Windows 8.1 上测试相同的 Windows 商店,即使它们也无法验证用户身份。

我已经添加了所有的功能,比如互联网和互联网客户端服务器

0 投票
1 回答
3174 浏览

office365 - Office365 REST API。使用 ADAL 获取 401(未经授权)

我正在尝试使用 ADAL 库访问 Office365 REST API,但得到 401(未经授权),但不知道为什么。我在我们的 Azure AD 中注册了一个应用程序,获得了一个 ID,为它获取了一个密钥,并授予它读取 Windows Azure Active Directory 的权限。

我能够获取 OAuth 令牌,但它不能与 Office365 API 一起使用。

这是我不成功的尝试之一:

有任何想法吗?

0 投票
0 回答
344 浏览

rest - 如何使用当前身份(Azure AD/ADFS)从共享点托管的应用程序调用跨域 REST 服务?

如何使用当前 Identity 从共享点托管的应用程序调用受 AzureAD 保护的跨域 REST 服务?其实,有可能吗?如果没有,有没有人可以给我一个好的选择。

我已经使用 ADAL JS 从受 AzureAD 保护的网站(纯 HTML/JS)实现了类似的场景,以使用 ADAL JS 示例成功调用 WebAPI 服务。

0 投票
1 回答
783 浏览

azure - 来自后台作业的 AcquireToken()

我正在使用 Azure Active Directory 和ADAL通过 OAuth 与 Office 365 的 Exchange EWS 交互。

我知道你可以使用authContext.AcquireToken()它,它会为你管理所有的 oauth。它将为您保存、使用和刷新令牌,并在需要时提示用户凭据。就我而言,问题是我需要在 Azure 后台 Web 作业中进行交互,因此它无法请求用户凭据。

我尝试的是获取授权码,使用户从GetAuthorizationRequestURL(). 然后使用AcquireTokenByAuthorizationCode()刷新令牌获取令牌并将其保存在数据库中。因此,当后台作业需要连接到 EWS 时,它可以使用 Refresh Token(保存在 Db 中)使用AcquireTokenByRefreshToken().

这种方法有效,但我不知道如何在 14 天后过期时获得新的刷新令牌。

知道如何更新刷新令牌或在后台作业中使用 ADAL 的更好方法吗?

谢谢并恭祝安康!!

0 投票
5 回答
27398 浏览

azure - AcquireTokenSilent 总是 静默获取令牌失败

使用 ADAL 我有两个AuthenticationContext使用在 SQL 中持久化的令牌缓存。

使用AcquireTokenByAuthorizationCode它将令牌写入数据库,但使用时AcquireTokenSilent我总是得到

静默获取令牌失败。调用方法 AcquireToken

以下是复制问题的详细信息:

我创建了一个上下文

然后我通过授权获取令牌

此时,它在数据库中保存了一个条目

然后,如果我调用它,我会得到一个例外。

我也尝试过同样的结果:

我在这个 GistAzureAdalCache中发布了我的实现。

Cache的每一项都是这样的。

我错过了什么?

更新

根据@vibronet 评论的回答,我有这个

0 投票
2 回答
2928 浏览

c# - 如何在 AAD 中获取下游服务的令牌

我有一个 MVC 应用程序,我用它OpenIdConnectAuthenticationMiddleware来针对 AAD 对用户进行身份验证。此 MVC 应用程序使用一些需要用户身份验证上下文的后端服务。

如果我在 AAD 中单独注册这些服务,我可以使用 AuthenticationContext.AcquireTokenSilentAsync. 但是向 AAD 单独注册这些服务似乎是错误的,因为它们需要用户单独同意它们(它们实际上是应用程序的一部分)。

因此,我想使用在用户进行身份验证时从 AAD 获得的 JWT 令牌,并将其用作调用下游服务的不记名令牌。我意识到这些服务需要与 MVC 应用程序具有相同的受众。

但是我如何获得那个 JWT 令牌。ClaimPrincipal 的第一个身份没有引导上下文。

0 投票
1 回答
4425 浏览

angularjs - 在 ADAL JS 中使用 Azure AD 和 OAuth2 隐式授权进行组声明

背景

我们正在 Azure 中开发具有 AngularJS 前端和 Web API 后端的多租户 SaaS 产品。我们使用 Azure AD 进行身份验证并将其与 ADAL JS 挂钩(使用 OAuth2 隐式授权)。作为一个多租户应用程序,我们允许客户针对他们自己的 Azure AD(可能连接也可能不连接到本地 AD)进行身份验证。

到目前为止,这一切都很好。ADAL JS 将用户带到 Azure 登录页面,一旦用户通过身份验证,就会发出 OAuth2 令牌。然后,此 JWT 令牌作为不记名令牌与所有 API 调用一起发送,我们有自己的声明转换过程,用于将来自 Azure 的传入声明映射到我们的应用程序声明。

我们没有在声明转换过程中指定单个用户,而是尝试通过 AD 组来完成。这允许我们的客户在他们的 AD 中拥有安全组,然后我们的应用程序将使用它来映射到正确的应用程序声明。

问题

我们收到的 JWT 令牌不包含groups属性,尽管已在 AAD 应用程序清单中设置groupMembershipClaims为。SecurityGroup从那以后,我在Vittorio 的这条推文中读到

隐式授权不会发送这些声明,因为它会在查询字符串中返回令牌 - 很容易超过最大长度

经过进一步调查,我还发现了 Vittorio 的 StackOverflow 答案,上面写着

我已验证,在隐式授权情况下,您将始终通过超额索赔接收组。请参阅https://github.com/AzureADSamples/WebApp-GroupClaims-DotNet/tree/master/WebApp-GroupClaims-DotNet - 它将向您展示如何处理超额索赔以检索组。

我查看了 JWT 令牌,它不包括任何超额声明(由_claim_names和标识_claim_sources)。我绝对是 Azure AD 中两个组的成员。

关于是否可以在隐式授权令牌中获取组信息(无论是直接还是间接),我现在似乎也有两个相互矛盾的陈述。

问题 1:我是否应该获得可用于获取团体信息的超龄索赔?如果是这样,我是否需要做任何事情来确保将索赔发送给我?

图形 API

我是否可以通过图形 API 中的用户链接获得超额声明,或者我是否必须手动制作链接以获取用户组,我仍然有点不确定如何使用图形 API 进行身份验证。

在收到带有不记名令牌的请求(来自 ADAL JS)后,我需要从后端联系图形 API。

问题 2:我可以将相同的不记名令牌发送到图形 API 以读取该用户的目录信息吗?或者我是否需要在应用程序而不是用户的上下文中直接从我的应用程序向图形 API 租户进行身份验证?