rah*_*dev 6 c# azure-active-directory openid-connect
我们正在使用 OIDC 库,目前我们仅允许 MSA 帐户登录。因此,我们已经配置了参数ValidateIssuer = true,Validissuers = https://login.microsoftonline.com/..\xe2\x80\x9d 但是,我们现在需要将其他 AAD 租户(例如:abc@dell.com)加入我们的应用程序,因此我们决定设置ValidateIssuer = false.
由于我的应用程序已经由自定义授权支持,因此我发现很难完全理解该标志的用途。基本上我的问题是在什么情况下人们不想将此标志设置为 false ?如果设置为 false 可能会遇到什么风险?
\n\n我查看了此处发布的 AAD 文档,但仍然无法从示例代码片段的评论中找到令人信服的响应:
\n\n // ValidateIssuer set to false to allow work accounts from any organization to sign in to your application\n // To only allow users from a single organizations, set ValidateIssuer to true and \'tenant\' setting in web.config to the tenant name or Id (example: contoso.onmicrosoft.com)\n // To allow users from only a list of specific organizations, set ValidateIssuer to true and use ValidIssuers parameter\n TokenValidationParameters = new TokenValidationParameters()\n {\n ValidateIssuer = false\n },\nRun Code Online (Sandbox Code Playgroud)\n
Roh*_*gal 13
正如已经提到的另一个答案,如果您离开ValidateIssuer = false,那么 OIDC 中间件将不会尝试验证颁发者租户,这实际上意味着您的应用程序对 Azure AD 中拥有用户的任何人开放。
关于解决多租户案例的一些建议
如果您提前知道有效发行人的列表,请使用 中的发行人列表TokenValidationParameters.ValidIssuers。例子:
ValidIssuers = new List<string>()
{
"https://sts.windows.net/6d9c0c36-c30e-442b-b60a-ca22d8994d14/",
"https://sts.windows.net/f69b5f46-9a0d-4a5c-9e25-54e42bbbd4c3/",
"https://sts.windows.net/fb674642-8965-493d-beee-2703caa74f9a/"
}
Run Code Online (Sandbox Code Playgroud)如果您的应用程序的有效颁发者是动态的,或者您想要编写一些逻辑来收集该列表,您可以编写一个TokenValidationParameters.IssuerValidator具有自定义逻辑的实现。您只需要设置一个用于验证发行者的委托。
TokenValidationParameters validationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
// Set this to a delegate and write your own custom implementation there. See code sample URL ahead for more details.
IssuerValidator = AadIssuerValidator.ValidateAadIssuer
};
Run Code Online (Sandbox Code Playgroud)如果两种情况都没有意义,并且您的验证逻辑与调用者所属的租户无关,请设置TokenValidationParameters.ValidateIssuer为 false,但请确保在末尾添加自定义逻辑,例如在SecurityTokenValidated通知中。
示例代码
使用 Azure AD 和 OpenID Connect 构建多租户 SaaS Web 应用程序
仔细查看此示例中的这些文件:
| 归档时间: |
|
| 查看次数: |
9395 次 |
| 最近记录: |