标签: azure-authentication

如何登录到 Azure 服务主体

  1. Connect-AzureRMAccount不起作用。我不在乎。我不想通过需要博士学位的过程来理解为什么 PowerShell 永远不想工作。所以我要使用Login-AzureRMAccount

  2. 我遵循了文档。当然这是不够的,所以我在这里。 https://docs.microsoft.com/en-us/powershell/azure/authenticate-azureps?view=azurermps-6.6.0

“为了获取服务主体的凭据作为适当的对象,请使用 Get-Credential cmdlet。此 cmdlet 将显示一个对话框,用于输入服务主体用户 ID 和密码。”

我什至在哪里可以找到我的用户 ID?我遵循了另一个关于创建 SP 的文档说明,我所做的只是创建了一个应用程序。我在 PowerShell 中得到了 SP 对象,它所做的只是给我一个 SP 的名称。

现在我明白了什么是用户 ID。如何登录?我使用Login-AzureRmAccountANDAdd-AzureRMAccount他们都说

$p = Get-Credential
Add-AzureRmAccount -ServicePrincipal -ApplicationId "XXXXXXXXXX" -Credential $p -TenantId "XXXXXXXXXXX"
Add(/Login)-AzureRmAccount : Parameter set cannot be resolved using the specified named parameters.
Run Code Online (Sandbox Code Playgroud)

active-directory azure azure-active-directory service-principal azure-authentication

3
推荐指数
1
解决办法
1万
查看次数

不支持关键字:azure 集成连接的“身份验证”错误

不支持获取关键字:尝试通过 .NET 核心 2.1 项目中的“Active Directory Integrated”选项连接 Azure DB 时出现“身份验证”错误。

注意:我使用 EF 核心连接数据源。

azure azure-active-directory azure-functions azure-authentication asp.net-core-2.1

3
推荐指数
2
解决办法
7183
查看次数

Auth0 的合适 Azure 替代品

我有一个作为 Azure 应用服务托管的 ASP .Net Core 2.2 Web API。然后是一个 Angular SPA,它使用此 API,作为静态网站托管在 Azure 存储上。

我目前使用 Auth0 作为我们的身份验证和身份服务器。我正在考虑用 Azure 替换 Auth0,但我花了几天时间试图弄清楚我应该做什么,但我完全迷失了。

因此,Auth0 当前服务的目的(我希望 Azure 也能提供服务)是保护我的 Web API,并为其提供身份服务,以便 API 知道哪个用户登录了。因此,当前端调用 API,Auth0 自动将其重定向到登录页面。在这里,用户可以使用现有帐户(包括社交帐户)登录,也可以创建新帐户。登录后,Auth0 向前端提供访问令牌。然后,前端将此访问令牌包含在每个 API 调用的标头中。访问令牌包含 API 用来了解哪个用户正在进行调用的身份信息。所有用户都存储在 Auth0 中。因此,当新用户使用前端 Web 应用程序时,Auth0 会将他们重定向到登录屏幕,他们在其中选择“注册”,并在 Auth0 中创建一个帐户。顺便说一句,任何用户都可以执行此操作 - 这是一个任何人都可以注册和使用的公共网络应用程序。

因此,当考虑使用 Azure 而不是 Auth0 时,首先让我困惑的是有各种身份验证服务:

  1. 在 Azure 门户中,在我的应用程序服务下的“身份验证/授权”下,有一个标记为“应用程序服务身份验证”的切换开关。如果我打开此功能,我可以设置身份验证提供程序。

  2. 在Azure门户中,有Azure Active Directory,我猜它与上面的内容有关?

  3. 还有 Azure B2C。

Azure 应用服务身份验证和 Azure B2C 之间有什么区别?我应该使用哪一个?上述第 1 点和第 2 点有什么区别?我见过的一些例子使用了第 1 点,还有一些使用了第 2 点。

抱歉,如果这是一个非常模糊的问题。我只是在努力弄清楚该朝哪个方向前进。我发现 Auth0 非常简单,但不幸的是我不能对 Azure 身份验证说同样的话。我基本上只是想弄清楚哪个 Azure 选项最适合替换我现在正在使用的 Auth0。谢谢

authentication authorization azure auth0 azure-authentication

3
推荐指数
1
解决办法
1844
查看次数

Azure Bot 当使用 ngrok 为渠道团队进行本地调试时,会引发以下异常“无法获取客户端凭据的令牌”。

System.AggregateException:“无法获取客户端凭据的令牌。(参数:连接字符串:RunAs=App;AppId=bc107559-ff62-4f67-8dd4-0dce6a0fe426,资源: https: //api.botframework.com,权限:。异常消息:尝试使用托管服务身份获取令牌。无法连接到实例元数据服务 (IMDS)。跳过对托管服务身份 (MSI) 令牌端点的请求。)'

内部异常:AzureServiceTokenProviderException:参数:连接字符串:RunAs=App;AppId=bc107559-ff62-4f67-8dd4-0dce6a0fe426,资源: https: //api.botframework.com,权限:。异常消息:尝试使用托管服务身份获取令牌。无法连接到实例元数据服务 (IMDS)。跳过对托管服务身份 (MSI) 令牌端点的请求。

当尝试向用户发送消息或获取用户详细信息时,会引发上述异常:

  var messageText ="What can I help you with today?\nSay something like \"Book a flight from Paris to Berlin on March 22, 2020\"";
  var promptMessage = MessageFactory.Text(messageText, messageText, InputHints.ExpectingInput);
  return await stepContext.PromptAsync(nameof(TextPrompt), new PromptOptions { Prompt = promptMessage }, cancellationToken);
Run Code Online (Sandbox Code Playgroud)

异常在第三行抛出,即尝试向用户发送提示消息时

c# azure ngrok botframework azure-authentication

3
推荐指数
1
解决办法
564
查看次数

代表当前登录到单独 Web 客户端的用户从 API 访问 MS Graph

我正在开发一个 API(ASP.NET Core),可以通过单独托管的 Web 客户端(React)访问,两者都作为应用程序服务托管在 azure 上。客户端应用程序必须具有基于azure Ad的身份验证(单租户,最好由基于aad的azure身份验证保护)。当用户登录客户端时,API 必须能够代表用户访问 MS Graph。显然,这两个资源都必须受到保护,我已经尝试在两个应用程序服务上使用基于 AAD 的 azure auth,但是在这种方法中,我无法使用从 API 端的 auth 到 ADD 获得的令牌来获取 MsGraph 的令牌。

问题是,如何避免使用客户端的azure aad auth令牌将令牌传递给MsGraph,并仅根据aad auth的令牌获取msGraph的令牌,同时只有一个位置供用户登录并确保两个应用程序服务的安全?

我在 Api 端使用 MsGraph 的 nugget 来与 MsGraph 交互。我还没有找到任何涉及此特定案例的样本。

azure azure-active-directory asp.net-core-2.0 azure-authentication microsoft-graph-api

2
推荐指数
1
解决办法
5700
查看次数

How to access database during OpenID (MSAL) authentication

I've used this sample to configure OpendID authentication for Azure AD with the MSAL v2 library. It uses the AzureAdAuthenticationBuilderExtensions class to configure OpenId connect events (code shown below).

I want to access my database (EF Core) within those events to check the tenantId and add some custom user claims. The problem is that the injected database context (services.AddDbContext()) is a scoped service and cannot be called within the Configure method.

public static AuthenticationBuilder AddAzureAd(this AuthenticationBuilder builder)
        => builder.AddAzureAd(_ => …
Run Code Online (Sandbox Code Playgroud)

asp.net-core azure-ad-msal azure-authentication

2
推荐指数
1
解决办法
756
查看次数

oAuth2.0 与 Microsoft 流程(Power Automate),然后访问受保护的 API

我正在设置一个 Microsoft 流程,该流程需要访问使用 oAuth2 身份验证的已注册 Web 应用程序。这样做的目的是获取 JWT 访问令牌,该令牌将用于访问 Web 应用程序中受保护的 API。我对 Microsoft Flow 没有太多经验,所以我想知道如何使用用户名/密码通过 Auth2 登录并检索令牌。

azure-active-directory azure-authentication power-automate

2
推荐指数
1
解决办法
8152
查看次数

机器人通道注册 - Azure 机器人框架

当我在文档开始时尝试将我的机器人与身份验证集成时,我发现了有关 Bot Channels Registration 的信息

  • 后来我在 Azure Docs 中搜索了这个我还没有找到关于这个的任何人都可以解释我

    1. 这个资源有什么用
    2. 从这个开始的过程是什么
    3. 为什么它有用,当我们可以直接注册我们的应用程序并获取客户端和秘密 ID 时
  • 是否可以在此处传递直接端点/API 并可以对其进行测试并将其从外部集成到通道中?

azure azure-active-directory botframework azure-bot-service azure-authentication

2
推荐指数
1
解决办法
1465
查看次数

Azure.Security.KeyVault.Secrets 中的 Azure.RequestFailedException

我开发了一个在 Azure 虚拟机规模集中运行的服务,该服务从 Azure Key Vault 访问配置。最近在调试这个服务的RequestFailedException时候,访问配置的时候就开始收到了。

在 Azure 中,Key Vault 通过具有适当权限的用户分配的托管标识进行访问。该服务目前在 Azure 中运行良好,但我无法在本地调试。我在 Visual Studio 2019 版本 16.8.6 的 Azure 服务身份验证配置部分选择了我的 Azure 帐户,并且该帐户具有对 Key Vault 的权限(配置为允许从所有网络访问)。

这是一个片段,显示了我如何在.NET Core 3.1平台上使用Azure Identity 1.2.2Azure.Security.KeyVault.Secrets 4.1.0访问密钥保管库:

private const string KeyVault = "https://<key vault name>.vault.azure.net/";

var client = new SecretClient(new Uri(KeyVault), new DefaultAzureCredential());
var secret = client.GetSecret("<name of secret in key vault>");
Run Code Online (Sandbox Code Playgroud)

显然DefaultAzureCredential使用VisualStudioCredential来解决访问,但是这在某种程度上被 Visual Studio 的更新(自我上次成功调试会话以来唯一更改的)或可能来自 Azure Key Vault 的策略更改所破坏。

完全例外

Exception …
Run Code Online (Sandbox Code Playgroud)

azure azure-keyvault azure-authentication azure-managed-identity

2
推荐指数
1
解决办法
1185
查看次数

如何使用证书凭据进行应用程序身份验证来获取“ x5t”的值

我试图使用证书凭据进行应用程序身份验证从Microsoft Azure Active Directory获取JWT令牌。

我为弄清楚“ x5t”的价值而感到震惊。

我尝试过

  • 公共证书中提供SHA-1指纹值。
  • 使用FVIC的公共证书的SHA-1哈希。

但是将请求发送到MSA登录终结点时,我始终遇到错误

{
    "error": "invalid_client",
    "error_description": "AADSTS70002: Error validating credentials. AADSTS50012: Client assertion contains an invalid signature. [Reason - The key was not found., Thumbprint of key used by client: '6F67F76B96F6FBBDF9D3EE1DDF7F9A7B877EE9C75DEDBD3DE9C7FB', Configured keys: [Key0:Start=06/01/2018, End=12/31/2099, Thumbprint=6WGktXA64QmA9TPv;Key1:Start=06/01/2018, End=12/31/2099, Thumbprint=rD9Q10sR6Q6ZkDVw;]]\r\nTrace ID: d9e3e276-e878-4b8a-b08b-10c82a0b0600\r\nCorrelation ID: 48ec889d-2376-45a6-9bf0-01b22b0e0c17\r\nTimestamp: 2018-06-01 09:38:24Z",
    "error_codes": [
        70002,
        50012
    ],
    "timestamp": "2018-06-01 09:38:24Z",
    "trace_id": "d9e3e276-e878-4b8a-b08b-10c82a0b0600",
    "correlation_id": "48ec889d-2376-45a6-9bf0-01b22b0e0c17"
}
Run Code Online (Sandbox Code Playgroud)

如何获得“ x5t”的值?

certificate azure azure-active-directory azure-authentication

1
推荐指数
2
解决办法
1453
查看次数

动态添加 Blazor 授权的策略声明

我正在创建一个用于内部授权目的的身份验证和授权处理程序。我的目的是让我的同事能够轻松地将解决方案实施到他们自己的项目中。我们使用 Azure AD 进行身份验证,并使用 Azure 组进行授权。为了做到这一点,我觉得我一直在思考如何以有效的方式添加授权策略。

现在,我正在 Blazor WebAssembly 托管配置中的 Client 项目的 Program 类中通过官方描述的方式添加它:

            builder.Services.AddAuthorizationCore(options =>
                options.AddPolicy("PolicyName", policy =>
                {
                    policy.RequireClaim("ClaimType", "ClaimValue");
                })
            );
Run Code Online (Sandbox Code Playgroud)

这工作正常,但并不直观,因为任何给定的项目可能需要几种不同的策略

我还添加了一个自定义授权策略提供程序,如 Microsoft 的此文档中所述:

https://learn.microsoft.com/en-us/aspnet/core/security/authorization/iauthorizationpolicyprovider?view=aspnetcore-6.0

根据他们对该文档的描述,尤其是文档中的前几行,我认为这就是我正在寻找的内容。但如果没有专门手动添加每个策略,我似乎仍然无法让它按预期工作。

如果需要,我可以展示我的授权策略提供程序的自定义实现,但它与 Github 中的文档几乎完全相同。

authentication asp.net-authorization azure-authentication hosted-blazor-webassembly

1
推荐指数
1
解决办法
2141
查看次数

如何配置.net core Angular azure AD身份验证?

我目前正在研究将 Azure AD 身份验证集成到 Angular - .Net core 3.1 项目。这是一个从 Visual Studio 2019 模板(ASP.NET Core Web App)生成的项目。
在Azure门户中,我注册了2个应用程序并通过MS教程this进行配置。

两个注册的应用程序:

  1. frontend_app(客户端 ID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx16e3)
  2. backend_api(客户端 ID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxfcc1)

但我只发布了一项App服务,其中既包含SPA又包含API。登录后,我获得了一个令牌,该令牌附加到带有 MSAL 拦截器的每个 api 调用中。

问题是所有调用返回的是:401,因为“观众无效”。在身份验证令牌中,受众值是 frontend_app 的客户端 ID。

如何解决才能让观众接受?仅使用 2 个应用程序注册一个应用程序服务是否正确?

c# azure azure-active-directory azure-authentication angular

0
推荐指数
1
解决办法
4022
查看次数

对于外部用户(来宾用户),Azure AD 多租户提供商的 Next-Auth 身份验证失败

我想将 Azure (Microsoft) 身份验证与 Google 作为提供商一起添加到我的应用程序中,以避免电子邮件和密码注册和签名。

Google 登录工作正常,没有任何问题,而对于 Microsoft 来说,它无法工作,因为我收到以下错误:

AADSTS50020: User account 'xxxx@hotmail.com' from identity provider 'live.com' does not exist in tenant 'Default Directory' and cannot access the application 'f42685g2-3150-3t37-u4y2-392a0ec2775'(next-auth-dev) in that tenant.

我通过选择 as 在 Azure AD 中创建了多租户应用程序Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)

我还提供了“http://localhost:3000/api/auth/callback/azure-ad”作为“Web Platform”的重定向 URI。

我已经完成了 Next-Auth.js“https://next-auth.js.org/providers/azure-ad”文档中提到的所有操作

它只能验证帐户所有者的身份,但除此之外任何外部用户都无法完成此过程。

经过搜索,我发现用户需要在 Azure AD 应用程序中添加为“来宾用户”,但这不是本意,任何随机用户都可以访问我的应用程序并通过“Microsoft (Azure AD)”身份验证进行身份验证。

如果我遗漏了什么或者我的理解不正确,有人可以帮忙吗?

azure-active-directory next.js azure-authentication next-auth

0
推荐指数
1
解决办法
990
查看次数