问题标签 [multi-factor-authentication]
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.
azure - Azure AD 安全和多因素身份验证令牌 - 关于可访问声明
我对有关 Azure AD 和多因素身份验证 (MFA) 的令牌有疑问。
因此,我设法研究了在为启用和未启用 MFA 的用户发送令牌时会发生什么情况。
我观察到的是,在令牌的有效负载中有一个额外的声明:"amr": []
标签。默认情况下,该对象中有一个“pwd”,但对于 MFA,还有一个名为“mfa”的声明。
所以现在我知道令牌会根据启用的选项进行修改。
是否有其他一些声明或机制来获取颁发令牌的设备的特定 ID。通过 Azure AD 中的“工作场所加入”或通过 Microsoft Authenticator 应用程序可能与其注册相关的设备 ID?
是否有单独的令牌发送与论坛和文档中不断讨论的应用程序通行证相关?
- - - - - - - - - - - - - 更新 - - - - - - - - - - - - ----------
好的,阅读应用程序密码,它基本上用作验证多因素身份验证的另一种形式。而且我猜它既存储在 Azure AD 上,也存储在身份验证应用程序内的手机上。
那么另一个问题,是否可以从代码中访问此密码?
google-chrome - Microsoft Teams 不接受我的客户端证书作为登录的一部分
我最近开始在 macOS Sierra 上使用 Microsoft Teams 桌面应用程序 (v0.7.00.3101),一切正常。我的公司最近切换到使用客户端证书进行身份验证 (MFA),从那时起,Teams 桌面应用程序不允许我登录。
我已经在我的 Mac 上安装了证书和相应的根证书,我可以使用 Google Chrome 成功登录https://teams.microsoft.com 。在 MS 登录屏幕上输入我的电子邮件地址后,我被转发到我公司的登录页面,在那里输入我的密码后,Chrome 会显示一个选择证书的对话框。一旦我选择了它,我就会被转发到 MS Teams 站点。
当使用桌面应用程序(内部调用 Chrome,我猜)时,我进入我公司的登录页面,并在那里输入密码,但应用程序只是停留在那里并且没有选择证书。
同样的方法对同事来说效果很好。在他的案例中,MS Teams 应用程序会自动选择证书并让他登录。
MS Teams 桌面应用程序中是否有方法可以了解有关 Chrome 正在做什么以及它为什么不选择证书的更多信息?
更新: 经过更多挖掘,我找到了一种让 MS Teams/Electron 吐出更多信息的方法:
这导致日志显示在控制台中,一旦登录屏幕无法将证书发送到服务器,日志中就会出现以下内容:
此错误消息显示多次,我猜它找到的每个证书一次。从这条错误消息中,我发现了以下错误报告 - 似乎是 macOS Sierra 引入的一个未解决问题:https ://bugs.chromium.org/p/chromium/issues/detail?id=649953
这也解释了为什么这对我的同事有用,因为他仍在 macOS El Capitan 上,没有出现此错误...
我可以做些什么来更新 MS Teams 以使用错误修复,还是需要向 MS Teams 团队报告以供他们修复?
asp.net - 在 Asp.Net Core 中实现自定义 2 因素身份验证机制
我在 github 上找到了我喜欢的一个很好的2 因素身份验证库,我正在尝试将其集成到我的 Asp.Net Core 项目中,但我无法找到实现该目标所需要做的事情。
我有一个自定义 UserStore 实现 IUserStore 和 IUserTwoFactorStore (以及一堆其他接口),但那些只显示如何确定用户是否真的启用了 2-FA 并设置它,而不是如何实际添加和检索自定义提供程序。
我已经/可以弄清楚我需要让 2-FA 工作的所有代码,它只是把我卡住了。
我希望我不需要创建自定义 UserManager 实现,因为这可能需要更多工作(尽管我怀疑是这种情况 - 以下方法看起来很有希望 GetValidTwoFactorProvidersAsync()、GenerateTwoFactorTokenAsync()、VerifyTwoFactorTokenAsync())。
.net - ADFS 中的自定义身份验证适配器作为主要步骤
我们有一个设置,其中涉及使用ADFS作为其访问控制服务器的第三方 Web 应用程序。这在一段时间内运作良好。
现在我们需要在 中安装自定义身份验证策略ADFS
,以便将身份验证过程委托给另一个自定义的内部构建服务器并使用自定义的动态规则。
根据我们的理解,这是对一般 ADFS 身份验证管道的鸟瞰图:
基本上,通过自定义的次要步骤来增强身份验证过程非常容易,但不可能跳过Primary
身份验证子过程。
我们确实设法实现了一个Multi Factor Authentication Adapter
(基本上是一个订阅ADFS
约定的 .NET 程序集)并成功地将它安装在我们的ADFS
:
不幸的是,我们的情况要求我们定制第一步并对各种场景做出不同的反应。例如:
- 可能会托管一个自定义登录表单,该表单使用
AD
- 可能对定制的非
ADFS
OAuth
访问令牌做出反应 - ETC
让最终用户从一开始就被迫提供凭据是一个交易破坏者。
有谁知道如何实现这一目标?
我们正在ADFS
使用Windows Server 2012 R2
. 此版本ADFS
不需要IIS
预先安装。
我们发现了一篇有趣的文章,ADFS 2.0
它比我们正在使用和需要的要古老得多IIS
。本文提供了一个示例,说明如何更改似乎是主要身份验证步骤的登录页面:
我们没有设法在我们的ADFS
.
cordova - 使用 JWT OAuth 2.0 令牌的 Cordova 应用中的 Azure MFA
我正在开发一个 Cordova 应用程序,该应用程序(直到现在)使用密码授权从 Azure 中的 Microsoft 标准 OAuth 提供程序检索 JWT:
它工作正常。但是,我们正在向外部交易者开放我们的应用程序,并且所有者希望添加 MFA。
因此,我在 Azure 中创建了一个 MFA 提供程序,并为 MFA 启用了一个测试帐户。
我目前正在使用 InAppBrowser 插件打开重定向请求 - 这似乎工作 - 它打开登录页面,它发短信,我输入代码,然后它完成登录到“应用程序”启动屏幕(默认 Azure 登录用户)。
我的问题是确定登录成功,并检索 JWT。由于 MFA,登录服务器现在在初始登录时返回以下“MFA”错误(不是真正的错误):
但是,一旦 MFA 完成,我不知道去哪里获取我的令牌/刷新令牌。如果我重新提交登录,它只会发回一条“interaction_required”消息,即使在 MFA 过程中选择了“Do Not Again For [X] Days”。
我希望这个问题很清楚。如果没有,请告诉我,我会根据需要进行修改。
我目前没有使用 ADAL 或任何 cordova 插件进行身份验证。我自己达到了终点。答案可能是我必须使用 ADAL。
bash - 如何提示输入 MFA 密钥以生成和使用凭证以进行 AWS CLI 访问?
我有几个 Bash 脚本调用 AWS CLI 命令,这些命令的权限已更改为需要 MFA,我希望能够在这些脚本中提示我的 MFA 设备生成的代码,以便它们可以通过必要的身份验证运行。
但似乎没有简单的内置方法可以做到这一点。我能找到的唯一文档涉及一个复杂的使用过程,aws sts get-session-token
然后将每个值保存在配置中,然后不清楚如何使用。
需要明确的是,当我运行包含需要 MFA 的 AWS CLI 命令的脚本之一时,系统只会提示我输入代码,以便提供它允许 AWS CLI 操作完成。就像是:
我不清楚如何在需要时提示这个(这可能归结为不精通 bash)或如何使用get-session-token
一旦我拥有它的输出。
有没有办法做我正在寻找的东西?
我试图通过指定--profile
一个mfa_serial
条目来触发提示;但这也不起作用。
c# - 将 MFA 添加到基于自定义身份验证的 C# MVC 应用程序
我有一个旧的 ASP .NET 应用程序,它使用 MVC 作为前端,但在下面使用 WCF 服务层进行业务逻辑和身份验证。MVC 应用程序的控制器调用模型,它在下面与这个 wcf 服务对话。此 WCF 服务与 DB 对话以进行身份验证,并且对 DB 的所有调用都通过该层发生。
现在我需要将 MFA 添加到这个应用程序中,我不知道我可以开箱即用地使用什么来实现这一点,而不必迁移到 Identity/OWIN 并且必须完全改变应用程序架构。
我正在寻找有关如何在使用 wcf 服务完成的现有用户 ID/密码身份验证之上获得基于最小短信/电子邮件令牌的第二因素身份验证的指针。
谢谢
python-2.7 - 在 pyathenajdbc.connect() 中传递 AWS 会话令牌时,无法从 Python 2.7 查询 AWS Athena
我正在尝试使用 pyathenajdbc.connect() 连接到 Athena。我通过多重身份验证设置了 AWS 凭证。当我不在连接字符串中包含 AWS 令牌时,我收到以下错误。
athena_conn = connect(access_key=AWS_KEY_ID, secret_key=AWS_SECRET, s3_staging_dir='s3://abc-pqr-xyz/processed/athena-outputs/',region_name=REGION)
EROR: pyathenajdbc.error.DatabaseError: The security token included in the request is invalid. (Service: AmazonAthena; Status Code: 400; Error Code: UnrecognizedClientException; Request ID: 0d488c0b-1eed-11e7-bad8-711e54af6b73)
当我在连接字符串中包含 AWS 令牌时,出现以下错误 -->
athena_conn = connect(access_key=AWS_KEY_ID, secret_key=AWS_SECRET, token=AWS_SESSION_TOKEN, s3_staging_dir='s3://abc-pqr-xyz/processed/athena-outputs/',region_name=REGION)
ERROR: pyathenajdbc.error.DatabaseError: The security token included in the request is invalid. (Service: AmazonAthena; Status Code: 400; Error Code: UnrecognizedClientException; Request ID: 91751051-1eed-11e7-8347-153dfe3d84a6)
有谁知道这里有什么问题??
这是我的整个代码。
authentication - 使用手机号码的 Azure b2c 身份验证
我正在使用 Azure b2c 从 Web 或移动设备对用户进行身份验证。默认情况下,azure b2c 要求提供电子邮件地址,如果启用了多因素身份验证,则会要求提供电话号码进行验证。
我的问题是 Azure 会在注册时要求提供电子邮件或手机号码吗?用户可以提供电话号码并注册,然后 azure 将不得不询问用户名(可能是,电子邮件 ID 也是强制性的)。这在 Azure B2C 或 AWS 中可行吗?
azure - 配置 Azure B2C AD 以使用身份验证器应用
在 Azure B2C 中是否可以配置多重身份验证以使用 Microsoft Authenticator App?