问题标签 [msal]

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 回答
312 浏览

xamarin - Xamarin Forms 和 Azure AD B2C 登录问题

我试图弄清楚如何将 Azure AD B2C 与 Xamarin Forms 一起使用。微软的所有示例和文档都表示去年在生产中没有使用它。甚至上周的一篇博文也这么说。

https://azure.microsoft.com/en-us/resources/samples/active-directory-b2c-xamarin-native/

我们还有哪些其他选择?

0 投票
0 回答
649 浏览

asp.net-web-api2 - 401 未授权:WebApi UseOAuthBearerAuthentication

我从身份验证开始。所以我创建了一个 WebApi 并尝试使用不记名令牌来保护它。我在启动类的配置方法中添加了如下代码:

在客户端,我有以下代码:

我得到 401 未经授权。我从https://github.com/AzureADQuickStarts/WebAPI-Bearer-DotNet/archive/complete.zip下载了示例代码, 并将我的客户指向了该服务。它工作正常。我比较了代码和它的相同。我试图了解可能是什么问题。将不胜感激任何帮助。

0 投票
1 回答
9624 浏览

azure-active-directory - Azure Active Directory v2.0 守护程序和服务器端应用程序支持

试图弄清当前 v2.0 端点是否支持守护进程和服务器端应用程序流。

本文讨论流程:https ://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-flows

它指出:

本文介绍了可以使用 Azure AD v2.0 构建的应用类型,无论你的首选语言或平台如何。本文中的信息旨在帮助您在开始使用代码之前了解高级方案。

它进一步指出:

目前,v2.0 端点不支持本节中的应用类型,但它们在未来发展的路线图中。有关 v2.0 端点的其他限制和限制

最后,我正在尝试构建一个连接到 Graph API 的应用程序,该应用程序按计划连接到带有“凭据”的 API,允许它代表允许它访问的用户访问 API。

在我的测试工具中,我可以使用以下方法获取令牌:

在同一个线束中,我无法使用以下方法获得令牌:

这将导致:

抛出异常:mscorlib.dll 中的“Microsoft.Identity.Client.MsalServiceException”

附加信息:AADSTS70011:为输入参数“范围”提供的值无效。范围 Directory.Read.All 无效。跟踪 ID:dcba6878-5908-44a0-95f3-c51b0b4f1a00 相关 ID:1612e41a-a283-4557-b462-09653d7e4c21 时间戳:2017-04-10 20:53:05Z

MSAL 包 Microsoft.Identity.Client (1.0.304142221-alpha) 自 2016 年 4 月 16 日以来没有更新。这甚至是我应该使用的包吗?

0 投票
0 回答
341 浏览

c# - IdentityClientApp.AcquireTokenAsync 弹出窗口在询问电子邮件和密码之前挂起

我正在尝试在 C# 中使用 MSAL 来获取访问令牌,并且要求输入用户名和密码的弹出窗口挂起。当我调用 IdentityClientApp.AcquireTokenAsync 时,会弹出一个包含电子邮件地址和密码的弹出窗口。现在,除了标题栏中的“连接到服务”和中间的旋转点之外,弹出窗口是空的。在关闭窗口并杀死我的应用程序之前,我已经让它静置了几分钟而没有任何改变。这个问题似乎是我的机器特有的,因为我团队中的其他人可以使用相同的代码并获得一个填充的弹出窗口。由于我没有输入电子邮件地址或密码,我认为还没有开始任何网络通信。

这是进行特定调用的代码片段:

我正在使用 VS2017 用 C# 编写一个 UWP 应用程序。我的项目使用 NuGet Microsoft.Identity.Client 包的 1.0.304142221-alpha 版本。

0 投票
1 回答
1002 浏览

rest - MSAL、Azure MobileService 和 Auto REST 调用获得 401 Unauthorized

我有一个将 MobileServiceClient 和 AutoRest 用于 Azure App Service API App 的应用程序(目前在 UWP 中)。我成功使用了 winfbsdk 并且可以通过它进行身份验证,然后使用 FB 访问令牌作为 JObject 登录到 MobileService.LoginAsync。当通过应用程序内的 AutoRest 调用 API 应用程序时,我还会使用该 JObject 并将其发送到 x-zumo-auth 标头中。我想做的是能够使用 MicrosoftAccount 进行身份验证。如果我使用 MobileService.LoginAsync,我无法获得正确的令牌并将其传递给 AutoRest - 它总是以 401 Unauthorized 的形式返回。我尝试使用 MSAL,但它返回一个 Bearer 令牌,并且传递它也会返回 401 Unauthorized。有什么好的方法可以做到这一点吗?我开始走 MSAL 路线,因为那会支持 Windows 桌面,UWP 和 Xamarin Forms 这将是理想的。我只需要有关如何从中获取正确令牌以传递给 AutoRest HttpClient 的信息,该 AutoRest HttpClient 会返回到 Azure App Service API App。

更新: 如果我使用以下流程,它适用于 Facebook,但不适用于 MicrosoftAccount。

-带有WebAPI的Azure AppService(并通过浏览器进行测试)
-通过服务上的Azure仪表板进行安全设置并配置为允许Facebook或MicrosoftAccount

1.在我的UWP应用程序上,使用winfbsdk,我使用Facebook登录,然后获取FBSession .AccessTokenData.AccessToken 并将其插入到 JObject 中:

2.登录MobileServiceClient

  1. 使用 HttpClient 登录 API 应用程序并检索要在 X-ZUMO-AUTH 中使用的令牌

    /li>
  2. ApiAppClient.UpdateXZUMOAUTH 调用仅执行以下操作:


  3. 任何使用 ApiAppClient 的后续调用(使用 AutoRest 从我的 Azure AppService WebAPI 的 swagger json 创建)都包含 x-zumo-auth 标头并经过适当的身份验证。

    尝试使用 MicrosoftAccount 时会出现此问题。我似乎无法从 MSAL 或 LoginWithMicrosoftAsync 获得在 x-zumo-auth 中使用的正确令牌。

    对于上面的#1,在尝试使用 MicrosoftAccount 时,我使用了 MSAL,如下所示:

    /li>


并且 MSAuthentication_AcquireToken 定义如下,使用 Azure 示例中建议的接口和类:https ://github.com/Azure-Samples/active-directory-xamarin-native-v2

更新 - 可以使用 MobileServiceClient,但仍然无法使用 MSAL
我让它与 MobileServiceClient 一起使用如下:
1. 使用 MobileService.LoginAsync
2. 获取返回的 User.MobileServiceAuthenticationToken
3. 设置 X-ZUMO-AUTH 标头以包含用户。 MobileServiceAuthenticationToken


MSAL 仍然无法正常工作!
所以最初的问题仍然存在,我们需要将从 MSAL 返回的令牌的哪一部分传递给 X-ZUMO-AUTH 或其他标头,以便对 Azure AppService WebAPI 应用程序的调用进行身份验证?

0 投票
1 回答
472 浏览

c# - MSAL。检测撤销的权限并执行重新授权

在当前的 MSAL 版本1.1.0-alpha0277中,与正式版本相比有一些变化1.0.304142221-alpha。其中之一是更改的异常代码(类Microsoft.Identity.Client.Internal.MsalError)。

1.0.304142221-alpha我尝试调用AcquireTokenSilentAsync()并且用户撤销了他的权限时,我收到了MsalException异常代码: Microsoft.Identity.Client.Internal.MsalError.FailedToAcquireTokenSilently。我可以抓住他们并要求AcquireTokenAsync()使用 UI 重新授权。但是现在,我不知道如何检测这种情况。

1.1.0-???为此,我应该在构建中使用什么异常代码?

0 投票
1 回答
878 浏览

azure-active-directory - Graph API - 得到用户同意的守护程序应用程序

我们想在 Azure 中创建一个 API 应用程序(主要目的是联系我们的组织 Office 365 Graph 端点并发送电子邮件)。但是我们的前端网站不使用 Azure AD 进行用户身份验证。但是我们希望我们的后端 API能够通过以下方式之一发送电子邮件 1) 以任何用户身份发送电子邮件 2) 代表服务帐户发送电子邮件

我们正在尝试探索可能的选项,并且根据迄今为止所做的调查,这(选项 1)可以使用 admin_consent 来完成 - 有人可以帮助我们执行创建此类应用程序和部署所需遵循的步骤。

另外,有没有一种方法可以创建一个 API 应用程序,而无需在执行 API 期间提示登录屏幕 - 在使用 user_consent 时?

0 投票
2 回答
160 浏览

nuget-package - Outlook REST API 的最新 Nugets?

我想使用我们组织的 O365 电子邮件帐户之一从我的 .NET 4.6.1 应用程序发送电子邮件。我想知道是否有可以帮助我的 Nuget 包。

Microsoft.Office365.OutlookServices看起来有点过时,项目页面上的评论并不能激发信心。

Microsoft.Graph似乎较新,但它的代码示例使用预发布的Microsoft Authentication Library (MSAL),它说它不适合生产。也许我可以将Active Directory 身份验证库 .NET (ADAL)与 Graph 结合使用?

0 投票
1 回答
1397 浏览

azure - 如何仅使用 Microsoft 个人帐户在 Microsoft Graph 中进行身份验证?

根据文档,Microsoft Graph 仅支持来自 Azure AD v2.0 和 Azure AD 的令牌:

Microsoft Graph 支持两个身份验证提供程序:

  • 要使用个人 Microsoft 帐户(例如 live.com 或 outlook.com 帐户)对用户进行身份验证,请使用 Azure Active Directory (Azure AD) v2.0 终结点。
  • 若要使用企业(即工作或学校)帐户对用户进行身份验证,请使用 Azure AD。

但是,Azure AD v2.0 是支持 Microsoft 帐户类型的新端点:个人(以前的 Live 帐户)和工作/学校(经典 Azure AD 帐户)。目前还不清楚,如何将授权仅限于个人账户。

Azure AD 仅支持工作/学校帐户。

那么,如果我想让我的应用程序只使用个人帐户,该怎么做呢?如何仅使用 Microsoft 个人帐户在 Microsoft Graph 中进行身份验证(禁止用户使用工作/学校帐户)?

PS:如果重要的话,我在我的应用程序中使用 MSAL 进行身份验证。

0 投票
1 回答
139 浏览

azure - 我目前正在使用 Azure AD v1 (ADAL) 进行身份验证。如何添加对 Outlook.com 帐户的支持?

我需要使用 ADAL 中可用而 MSAL 中不可用的高级身份验证方案。

此外,我希望 Outlook.com 用户(live.com / 个人帐户)能够登录。

Live SDK 不可用,但我可以在门户中创建新的应用标识符。

问题

  • 如果我的目标是支持 ADALv1,并且还支持 LiveID 帐户,我应该走哪条路线?

我正在考虑使用两页身份验证屏幕,类似于 Azure 和 Office 已经做的,并查询电子邮件地址,如下所示。

如果 AD 中只有一个用户帐户,那么我将透明地重定向到 AzureAD。

如果 Outlook.com/live.com 中只有一个帐户,那么我将重定向到那里。