【问题标题】:(Generic) Azure AD Authentication(通用)Azure AD 身份验证
【发布时间】:2019-10-15 07:08:42
【问题描述】:

我正在尝试构建一个 WebAPI(带有消费客户端应用程序),它可以使用 azure Active Directory 进行身份验证,但不完全依赖 Active Directory。

我有一个运行良好的版本,它使用...

Microsoft.IdentityModel.Clients.ActiveDirectory

...但我担心这不是“纯粹”的做法。

例如...

https://azure.microsoft.com/en-us/resources/samples/active-directory-dotnet-webapi-manual-jwt-validation/

... 使用 Microsoft 标识平台。将其写入代码感觉就像获得 Azure AD 纹身,我想写一些“更通用”的东西。谁知道,有一天,我们可能会选择一种不同的方式来验证我们的用户。

谁能告诉我应该阅读什么来实现这一目标?那里有很多文档,但大部分都说“将 A 放入 B”和“将 C 放入 D”,但并未详细说明实际发生的情况。

【问题讨论】:

  • API 不必使用任何 MS 库。令牌是 JSON Web 令牌,您可以使用任何 JWT 库来验证它们。图书馆通常只需要知道权威和有效受众。它可以从授权下载元数据文档,这将允许它获取有效的颁发者、有效的签名密钥等。有了所有这些信息,它应该能够验证令牌。

标签: c# asp.net-web-api jwt azure-active-directory


【解决方案1】:

只是为了确保有答案。

这是我用来创建适用于 Azure AD 的通用身份验证方法的代码...

services.AddAuthentication(options =>
{
    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(o =>
{
    o.MetadataAddress = String.Format("https://login.microsoftonline.com/{0}/v2.0/.well-known/openid-configuration", Configuration["AzureAd:TenantId"]);
    o.Audience = Configuration["AzureAd:ClientId"];
});

【讨论】:

    猜你喜欢
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 2022-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多