c# - Umbraco ADFS 集成 (OpenIdConnect) GroupSid 未设置?
问题描述
我已经成功地为 Umbraco 8 设置了 ADFS 集成。我可以登录等等,但我不知道我的角色在哪里..
在 Azure 中进行配置的一方说我可以通过“GroupSid”声明获得它们,但它似乎是空的,还是我错过了什么?
SecurityTokenValidated = async n =>
{
ClaimsIdentity claimsId = n.AuthenticationTicket.Identity;
var identityUser = n.AuthenticationTicket.Identity;
var newIdentityUser = new ClaimsIdentity(identityUser.AuthenticationType);
newIdentityUser.AddClaim(new Claim(ClaimTypes.Email, identityUser.Name));
newIdentityUser.AddClaim(new Claim(ClaimTypes.Upn, identityUser.Name));
newIdentityUser.AddClaim(new Claim(ClaimTypes.Role, identityUser.Name));
newIdentityUser.AddClaim(new Claim(ClaimTypes.GroupSid, identityUser.Name));
newIdentityUser.AddClaim(new Claim(ClaimTypes.PrimarySid, identityUser.Name));
var nameIdentifier = identityUser.FindFirst(ClaimTypes.NameIdentifier);
var givenName = identityUser.FindFirst(ClaimTypes.GivenName);
if (nameIdentifier != null)
{
newIdentityUser.AddClaim(nameIdentifier);
}
if (givenName != null)
{
newIdentityUser.AddClaim(givenName);
}
n.AuthenticationTicket = new AuthenticationTicket(newIdentityUser, n.AuthenticationTicket.Properties);
await Task.FromResult(BackOfficeUserPasswordCheckerResult.ValidCredentials);
},
当断点到达这些行时,我会看到 Claims 集合。
ClaimsIdentity claimsId = n.AuthenticationTicket.Identity;
var identityUser = n.AuthenticationTicket.Identity;
在这里,我只能看到诸如给定名称等值。
谁能给我一些帮助?是我这边的问题,还是 Azure 中的问题?
非常感谢!
解决方案
声明部分负责方未设置的角色(对于测试用户)。
推荐阅读
- android - 如何在 Mac 或 Web 或任何其他特定目标上运行 Flutter 应用程序?
- r - read.csv 似乎没有检测到 R 4.0.0 中的因素
- node.js - 将 Excel 文件从 React 上传到 Nodejs 的问题
- ionic-framework - 从我的 inAppBrowser 的网站向 Ionic 应用程序发送消息
- react-native - React Native Promises - 他们不等待
- java - 如何在整数数组中找到所有对,其和等于给定数字
- c++ - boost::interprocess::file_lock 与 std::ostream 一起使用时的错误行为
- android - Android 应用程序在启动后直接崩溃
- angular - 如何在操作文件中使用 entityActionFactory 来自定义 ngrx/data 中的操作?
- python - 如何在 html Django 中管理字典