azure - 使用 Azure AD 进行 Dotnet 核心身份验证
问题描述
我遇到了一个使用 azure AD 身份验证的问题。Out 团队开始开发一个 Identity 应用程序来处理我们所有应用程序服务的身份验证请求。
对于登录用户,我们必须使用 Azure AD,因为我们不希望我们的用户创建新帐户,而是使用他们公司的 Microsoft 帐户登录我们的应用程序。
问题是当用户进入应用程序时。它获取 microsoft azure 文档中描述的 azure 访问令牌,但我们想为这个经过身份验证的人创建我们自己的自定义令牌,其中包含来自我们数据库的额外信息。
我们尝试使用文档中描述的外部提供者来实现身份服务器,但没有那么成功。
所以我们面临的问题是从天蓝色身份转换为我们自己的自定义身份。
任何想法/建议如何实现这样的服务器/客户端?
解决方案
您可以使用身份服务器 4 作为身份提供者并将 Azure AD 添加为外部登录,这里是代码示例,您可以添加 Azure AD 登录,如下所示:
services.AddAuthentication()
.AddOpenIdConnect("aad", "Azure AD", options =>
{
options.ClientId = "<app>";
options.Authority = "https://login.microsoftonline.com/<tenant>/";
options.CallbackPath = "/signin-oidc-aadtenant";
options.SaveTokens = true;
options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
})
在实施整个过程时,您可能会显示细节问题。
推荐阅读
- c# - 如何让 Entityframework Core 设置正确的参数数据类型
- android - 当我同时使用 PhotoView 和 ViewPager 时,指针索引超出范围
- javascript - Quarkus如何在模板中使用javascript列表字符串
- javascript - 使用 JavaScript 单击按钮时将图像更改为另一个图像
- java - 操作无法完成。找不到 Java 运行时。有关安装 Java 的信息,请访问 http://www.java.com
- apache-flink - 如何长时间保存 flink 日志?
- python - 在二维张量上滚动具有可变步长值的行
- java - 两个TextViews在Android中的setOnClickListener
- javascript - 如何过滤 JqGrid 以便仅在特定列上显示负值?
- libraries - 如何在 Windows 10 上安装 libportaudio