如何获取现有Asp.Net Core应用的Redirect URI和ClientId并实现AD认证改造
嘿,我来帮你理清怎么搞定这两个关键配置——ClientId和Redirect URI,这俩可是AD认证能正常跑起来的核心:
如何获取Asp.Net Core 2.0应用的Redirect URI和ClientId
一、找到ClientId(客户端ID)
ClientId是Azure AD用来唯一识别你应用的标识,你有两个靠谱的获取途径:
- 从Azure Portal的应用注册里拿
- 登录Azure Portal,找到Azure Active Directory服务
- 左侧点「应用注册」,找到你为原有Web应用注册的应用(如果是复用之前的测试应用,就选那个测试应用就行)
- 进入应用的「概述」页面,一眼就能看到应用(客户端)ID,这就是你要的ClientId,直接复制走。
- 从测试应用的配置里复制
打开你之前的测试应用的appsettings.json,里面肯定有类似这样的配置块:
直接把这个ClientId复制到原有应用的对应配置位置就好。"AzureAd": { "ClientId": "xxxx-xxxx-xxxx-xxxx", // 其他AD相关配置... }
二、确定并配置Redirect URI(重定向URI)
Redirect URI是Azure AD完成认证后,把用户跳转回你应用的地址,必须保证应用配置和Azure AD注册的地址完全一致,差一个字符都不行:
- 先确定你的应用地址
- 本地开发时:打开原有应用的
Properties/launchSettings.json,找到applicationUrl的值(比如https://localhost:5001),对应的Redirect URI就是https://localhost:5001/signin-oidc(/signin-oidc是Asp.Net Core OIDC认证的默认回调路径)。 - 生产环境时:用你应用的正式域名,比如
https://your-app-domain.com/signin-oidc。
- 本地开发时:打开原有应用的
- 在Azure Portal里配置这个URI
- 回到Azure Portal的应用注册页面,找到对应应用,进入「身份验证」页面
- 点击「添加平台」,选「Web」,然后在「重定向URI」输入框里填你刚才确定的地址,保存就ok。
- 在原有应用代码里同步配置
在Startup.cs的ConfigureServices方法中,配置OpenID Connect的时候,确保回调路径和你设置的一致(默认就是/signin-oidc,但建议明确写出来,避免踩坑):
也可以把配置写在services.AddAuthentication() .AddOpenIdConnect(options => { options.ClientId = "你的ClientId"; options.CallbackPath = "/signin-oidc"; // 必须和Azure AD里配置的URI路径部分一致 // 其他AD认证配置,比如Authority(租户地址)等,直接复用测试应用的就行 });appsettings.json里,更便于管理:"AzureAd": { "ClientId": "你的ClientId", "RedirectUri": "https://localhost:5001/signin-oidc", "Authority": "https://login.microsoftonline.com/你的租户ID" }
另外提个小提醒:因为你的应用原本是本地用户账户认证,现在要给特定页面加AD认证,记得在对应控制器或Action上指定认证方案,比如:
[Authorize(AuthenticationSchemes = OpenIdConnectDefaults.AuthenticationScheme)] public IActionResult AdProtectedPage() { return View(); }
这样就能确保访问这个页面时,会触发AD的认证流程,而不是走原来的本地账户认证。
内容的提问来源于stack exchange,提问作者gcbd1070
相关产品推荐
相关产品推荐

