繁体   English   中英

验证 Azure AD 令牌

Validating Azure AD token

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个 angular 应用程序,我添加了 Azure 活动目录身份验证,我得到了 azure 以返回带有用户详细信息的访问令牌。

我将广告令牌传递给我的 web api (在 .net 4.6.1 中运行)以检查该用户是否已经注册并且我想验证该令牌是否有效。

我使用了以下代码。 但是每当我尝试从 ConfigurationManager 恢复我的配置时,我都会收到错误消息

string tenantId = "someguid"; //not including these guids in here
var audience = "anotherguid";
var issuer = $"https://login.microsoftonline.com/{tenantId}/v2.0";
var stsDiscoveryEndpoint = $"https://login.microsoft.com/{tenantId}/v2.0/.well-known/openid-configuration";
var configManager = new ConfigurationManager<OpenIdConnectConfiguration>(stsDiscoveryEndpoint, new OpenIdConnectConfigurationRetriever());
try
{
    CancellationToken cancellationToken = new CancellationToken();
    var config = await configManager.GetConfigurationAsync(cancellationToken);

    var tokenHandler = new JwtSecurityTokenHandler();

    var validationParameters = new TokenValidationParameters
    {
        ValidAudience = audience,
       
        ValidIssuer = issuer,
        IssuerSigningKeys = config.SigningKeys,
        ValidateAudience = true,
        ValidateIssuerSigningKey = true,
        RequireExpirationTime = true,
        ValidateLifetime = true
    };

    SecurityToken validatedToken = new JwtSecurityToken();
    tokenHandler.ValidateToken(token, validationParameters, out validatedToken);

    return validatedToken;
  }

IOException:IDX20807:无法从以下位置检索文档:“https://login.microsoft.com/145fa4fc-d5f6-489c-affn-6407cca77ef0/v2.0/.well-known/openid-configuration”。 HttpResponseMessage:'StatusCode:400,ReasonPhrase:'错误请求',版本:1.1,内容:System.Net.Http.StreamContent,标题:

我是否在 azure 中遗漏了某些内容,还是应该以其他方式获取配置? 任何方向将不胜感激。

1 个回复
  • 错误IDX20807: Unable to retrieve document from: 'https://login.microsoft.com/145xxxxxxx7ccxxxxf0/v2.0/.well-known/openid-configuration ://login.microsoft.com/145xxxxxxx7ccxxxxf0/v2.0/.well-known/openid-configuration 表示:OIDC 元数据https://login.microsoftonline.com/。 well-known/openid-configuration is not valid 由于web configuration有问题或在应用程序中未正确配置。可能是authority参数未正确识别。

I see you have given wrong metadata url in place of https://login.microsoftonline.com as I see you have given wrong metadata url in place of https://login.microsoft.com

在此处输入图像描述

您还需要在 appsettings.json 中添加“权限”。 这是元数据 url 否则必须给出实例和域

(权限格式:“ https://login.microsoftonline.com/<tenantId>"

"AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "yourtenantdomain",
    "ClientId": "My Client Id",
    "TenantId": "<common or organizations>", // must be there in Multi Tenant application 
    "CallbackPath": "/signin-oidc"
  },

并尝试使用 dotnet 版本 4.7 或更高版本,并确保在 tls 版本为 1.2 或更高版本上运行

1 在 Web API 上验证 Azure AD ID 令牌

我有一个 Web API 在 .NET 和一个 React 前端运行。 使用 Azure AD 和 MSAL,我能够通过 SSO 和后端保护前端。 当用户登录时,我可以看到 cookies 中有一个“Id Token”。 在我返回 API 结果之前,有没有办法将 ID 令牌从前端传递到后端并验证令牌 ...

2 验证 Azure AD JWT 访问令牌时出错

我有一个使用 Msal 库获取的 Azure AD JWT 令牌,但是当我尝试验证此令牌时出现问题: 客户端:Sharepoint Web 部件 另一方面,我有一个服务器应用程序(Java),其中验证了访问令牌 验证器: 代码 我的问题是,当我尝试验证此令牌时,我收到此错误:使用算 ...

4 'azure-ad-jw'未验证Node.js中的JWT令牌

我想在Node.js中验证由Azure AD发出的JWT令牌。 我遇到了这个NPM软件包( https://www.npmjs.com/package/azure-ad-jwt )。 该网站提供的示例代码为: 该代码中提供的JWT令牌(V2.0)可从以下网站获得:https://do ...

2019-03-05 05:44:13 0 23   node.js
5 验证Azure广告访问令牌时签名无效

使用jwt.io验证我的azure广告访问令牌时,我得到了无效的签名(手动检查后将转换为scala代码)。 我正在使用curl生成访问令牌: 当它给我访问令牌时,响应中不包含“ Id_token”。 不知道为什么。 我正在使用BEGIN和END证书包装来自https://l ...

8 从 Azure AD B2B 验证令牌颁发者

我试图验证从 Azure AD B2B 订阅获得的访问令牌,我使用版本 2 "accessTokenAcceptedVersion": 2, 。 我目前的验证发生在启动 class 令牌颁发者未验证 授权URL 范围在 Azure AD 中定义并由应用程序使用。 我不确定是什么原因造成的? ...

9 来自另一个 Web api 的 Azure AD 验证令牌

我们有一个 Azure AD 租户,我们正在开发一个 webapi,它使用 microsoft graph 从 Azure AD 创建、更新和删除用户。 现在我们想通过要求不记名令牌来保护 webapi。 只有内部应用程序会使用这个 webapi,所以我想使用这个“https://login.mi ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM