请求协助解决Microsoft Graph API登录时的AADSTS90130错误
解决AADSTS90130错误:企业应用适配Microsoft Graph API的端点问题
嘿,这个错误我熟得很——你的应用是企业专属应用(只能让特定租户内的用户登录),但当前配置里用了/common或者/consumers这种通用登录端点,而这类端点是给支持多租户或个人微软账户的应用设计的,Azure AD自然会直接拒绝请求。
下面给你具体的修复步骤,结合Startup类的配置来改:
1. 修正Authority配置
找到你Startup类里配置Microsoft身份认证的代码段,通常是AddMicrosoftIdentityWebApp这部分,把通用的Authority替换成租户专属的:
方式一:指定单个租户的专属端点(适合仅限本企业用户登录的场景)
如果你的应用只允许自己公司租户的用户登录,把Authority改成租户ID对应的地址:
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme) .AddMicrosoftIdentityWebApp(options => { Configuration.Bind("AzureAd", options); // 替换成你的租户ID,比如: options.Authority = "https://login.microsoftonline.com/12345678-1234-1234-1234-1234567890ab"; });
租户ID可以在Azure AD的「租户概述」页面找到,是一串GUID。
方式二:用/organizations端点(适合允许所有企业租户用户登录的场景)
如果你的应用对所有企业租户用户开放(不是仅限单个租户),可以用/organizations端点,这样任何企业账户都能登录:
options.Authority = "https://login.microsoftonline.com/organizations";
2. 确认应用注册的账户类型设置
登录Azure门户找到你的应用注册,检查「账户类型」是否和你的配置匹配:
- 要是仅限本企业用户:选「仅限此组织目录中的账户」
- 要是允许所有企业用户:选「任何组织目录中的账户」
这个设置必须和Authority对应,不然还是会报错。
3. 同步配置文件的设置(如果用appsettings.json的话)
如果你的配置是从appsettings.json读取的,确保AzureAd节点里的TenantId不是common或consumers,比如:
"AzureAd": { "Instance": "https://login.microsoftonline.com/", "Domain": "your-company-domain.onmicrosoft.com", "TenantId": "12345678-1234-1234-1234-1234567890ab", "ClientId": "your-app-client-id", "CallbackPath": "/signin-oidc" }
这里Instance加上TenantId会自动生成正确的Authority,不用单独写,只要保证TenantId是你实际的租户ID就行。
改完这些之后,用户登录时就会跳转到对应的租户专属登录页面,重定向回应用时就不会再触发AADSTS90130错误了。
内容的提问来源于stack exchange,提问作者Mikey123
相关产品推荐
相关产品推荐

