问题标签 [azure-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 Functions 服务到服务:应用程序未分配给角色
我正在尝试设置具有 azure 功能的服务,以便其他特殊应用程序注册可以调用它并具有读取任何内容的特殊访问权限。我才刚刚开始,所以我想我会让我的服务像这样简单地对自己进行身份验证:
当我运行它时,我收到以下错误:
我知道我已经把所有东西都连接好了,因为租户可以识别所有的 Id,所以问题可能出在我的 App Registration 的清单中。但我认为我已经正确设置了我的应用程序清单:
在这一点上,我不知道该怎么做。我不确定“value”参数中应该包含什么,但是我找不到有关“appRoles”中参数的任何详细信息,并且我找到的示例是针对授权用户的。我试过“Reader”和“Writer”,但结果相同。想法?
azure - 获取 AADSTS50058:已发送静默登录请求,但没有用户代表用户令牌生成问题登录
我正在开发一个将由客户端应用程序使用的 Web API。我使用的 AD 身份验证机制是“使用应用程序的权限调用 Web API”。
客户端应用程序使用应用程序权限调用 Web api,在 Web API 中,我尝试使用 Azure Rest API 来管理 Azure 资源。通过使用用户断言生成令牌,代表用户使用 Azure Rest API。
我们遇到了
“AADSTS50058:已发送静默登录请求,但没有用户代表用户令牌生成问题登录”
尝试生成访问令牌时。
Application Identity with OAuth 2.0 Client Credentials Grant
当客户端应用程序到 Web API 遵循方法并且 Web API 尝试代表客户端 AD 应用程序使用 Azure REST/管理 API 时,代表用户方案是否有效?
c# - 此行永远挂起: authContext.AcquireTokenAsync("https://graph.windows.net", credential);
我的问题是:当我使用微软的项目时,标题中提到的那行代码运行并验证正确,我可以对用户进行操作,如“B2CGraphClient”示例项目所示。但是,当我复制并粘贴B2CGraphClient.cs
到我的 Web 应用程序中时,这行代码会永远挂起。怎么会这样?
挂起的行是 #184 in B2CGraphClient.cs
。
详情:我正在使用本文中提到的名为“B2CGraphClient”的示例项目,其压缩文件位于此处。这些文件需要设置变量clientId
、clientSecret
和tenant
,我能够正确设置这些变量以适合我的 AAD B2C 实例。当我将B2CGraphClient.cs
代码复制到我的 Web 应用程序项目中时,这些变量的值也被正确设置,所以我认为这不是问题。
线索:这些观察结果可能是问题所在:
- 运行 Microsoft 示例“B2CGraphClient”代码时,它不需要用户对 Web 应用程序进行身份验证;但是,我的 Web 应用程序确实需要用户在使用 Graph 客户端之前输入他/她的用户名/密码。
- 当标题中的代码行在我的 Web 应用程序中运行时,以下是浏览器中的 URL:
https://login.microsoftonline.com/<my_domain>.onmicrosoft.com/B2C_1_SiUpIn/......
我知道B2C_1_SiUpIn
策略名称不应该在此 URL 中。但是我该如何解决这个问题?
谢谢!
更新
我发布了初始化 B2CGraphClient 的代码,它表明(至少在我看来)为创建其凭据而传递给客户端的唯一信息是clientId
、clientSecret
和tenant
名称。
credential
稍后用于对图形客户端进行身份验证:
oauth-2.0 - 无法从登录的 Azure AD B2C 用户获取角色
我正在尝试使用以下内容来确定 Azure AD B2C 登录用户是否是管理员:
但是,当我查看该System.Security.Principal.IPrincipal.User
对象时,我会看到null
该用户拥有的角色列表:
以下是配置身份验证和请求的相关代码TokenValidationParameters
,包括要验证的角色。我尝试了以下方法:RoleClaimType = "role"
和RoleClaimType = "roles"
,这两种方法都不适合我。
但是,当我对id_token
从身份验证过程中检索到的内容进行解码并使用工具https://jwt.ms/对其进行解码时,我没有看到“角色”声明,如屏幕截图所示。
此外,在 SignIn Azure AD B2C 策略中,也许我需要添加一个“角色”ClaimType?
请帮忙!User.IsInRole("Administrator")
为了上班,我还需要做什么?谢谢!
c# - 从 .Net Core 2.0 控制器(Bearer)获取 Azure 令牌
这是我的 startup.cs 代码
JwtBearerDefaults.AuthenticationScheme 是 Bearer
这些是我的选择:
现在,根据这里的许多博客和问答,我使用这段代码来检索令牌:(顺便说一句,应用程序已经运行了 6 个多月,不要考虑一些设置问题)
这就是它返回的内容:
我需要的是access_token。前任。承载 eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1...
更新: 看到评论/答案后,我添加了等待,但结果为 null。
c# - 使用 Asp.net 核心进行 Azure AD 身份验证,无需在 Azure 中注册应用程序
我一直在尝试使用 ASP.Net Core 应用程序进行 Azure AD 身份验证,我希望在不执行 Azure 中的应用注册、回复 URL 设置的情况下实现此目的。
原因是,我希望来自其他域的用户从 azure Marketplace 下载我们的应用程序并开始使用 AAD 登录应用程序,而无需执行应用程序注册步骤 - 这可能吗?
如果不可能,是否有任何程序化方法来创建应用注册、回复 URL 并授予必要的权限,以简化流程并增强用户体验
非常感谢任何示例文档/链接/解决方案。
python - 通过 Python Web API 进行 Azure AD 身份验证
我正在构建一个 Python Web API,我想在其中使用 Azure AD 作为身份验证后端。在某些情况下,客户端需要通过 API 进行身份验证才能授权给某些端点。客户端本身无法直接向 AD 进行身份验证,因此需要使用原始凭据(用户名、密码)通过 API 进行验证。然后 API 将对用户进行身份验证并接收 AD 令牌并将其提供给用户。
所以简而言之,我正在寻找一种使用用户名/密码以编程方式对用户进行身份验证并使用 Python 接收令牌的方法。
azure - 仅授权特定用户使用 azure webapp
我在 azure 上拥有一个私有 webapp,我希望它只能供特定用户访问,这些用户可以使用任何身份验证提供商登录,例如 Google、Azure AD 的 Facebook。
如何使其成为仅适用于预定义用户的私有应用程序?
目前我选择的解决方案:
- 对于我的 webapp,将身份验证/授权部分设置为仅允许经过身份验证的用户(所有用户)
- 维护授权用户电子邮件列表
- 对于每个请求,我都会检查标题
X-MS-CLIENT-PRINCIPAL-NAME
,看看它是否是我的“预定义用户”之一。如果没有,返回forbidden
我想正确的路径是 Azure AD 并且可能分配角色
powershell - 使用本地 PowerShell 调用 Ansible 时无法获取凭据
我在 Azure VM 中的 Ubuntu 虚拟机上有一个 Ansible 代码。当我通过Bitwise等软件直接使用 SSH 连接到我的 VM时,代码没有问题,我可以运行它而不会出现任何错误。但我需要使用本地系统 PowerShell 运行我的 Ansible 代码。当我使用我的 PowerShell 调用 Ansiable 命令时,我会收到以下错误:
PowerShell 命令:
输出:
您能否指导我为什么会收到此错误以及如何解决?
PS 1:我试过腻子,错误是一样的。似乎如果我从另一台设备远程调用我的 Ansible(使用 SSH),我会得到同样的错误。
PS 2:我尝试使用az login
PowerShell 和 Putty 从本地计算机登录,但错误没有任何变化。
asp.net-web-api - 通过 azure 应用注册进行 WebAPI 范围授权
我正在尝试通过 Azure 中的应用注册来控制授权。
现在,我设置了两个应用注册。
- 应用程序
- 客户端应用程序
ApiApp 使用默认设置进行设置,但我已将其添加到清单中:
在客户端应用程序注册中,我拥有所有默认值,但我添加了:
- 在密钥中,用于针对 AD 验证应用程序的密码
- 在所需权限中,我添加了 ApiApp 并需要委派权限“管理员”。我保存了它,单击完成,然后单击“授予权限”以确保权限已强制更新。
在我的客户端应用程序中,它使用此代码进行身份验证:
如果您在创建 Web API 项目时选择工作或学校帐户,我的 ApiApp 只是使用内置授权:
这有效:
这些不起作用:
或者
根据我正在阅读的内容,我相信除了 ApiApp 项目本身之外,我已经正确设置了所有内容。我认为我需要以不同方式或使用额外信息设置授权,以允许 oauth2Permission 范围正确用于 WebAPI。
我缺少哪些步骤来允许 WebAPI 中的特定范围而不仅仅是 [Authorize] 属性?
我使用Integrating applications with Azure Active Directory来帮助我设置应用程序注册,以及使用客户端凭据服务调用的服务,但我似乎无法准确找到在 Web API 部分中实现代码所需的内容。
更新
我找到了这个资源:Azure AD .NET Web API 入门
它表明您可以使用此代码检查范围声明:
但是,我得到的权利要求不包括任何范围权利要求。