如何搭建一套Azure AD与ADFS集成身份的环境
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何搭建一套Azure AD与ADFS集成身份的环境相关的知识,希望对你有一定的参考价值。
参考技术A AWS支持使用SAML(安全断言标记语言) 2.0进行身份联合。使用SAML,你可以配置你的AWS账户与你的身份提供商(IdP)整合。一旦配置,你组织的身份提供商就会对你的联合用户进行验证和授权,然后联合用户可以使用单点登录方法登录到AWS管理控制台...如何将 Azure AD 身份验证与 .net core mvc 中的自定义角色存储集成?
【中文标题】如何将 Azure AD 身份验证与 .net core mvc 中的自定义角色存储集成?【英文标题】:How to Integrate Azure AD authentication with custom Role store in .net core mvc? 【发布时间】:2021-05-13 03:21:32 【问题描述】:我有使用 .net core mvc 创建的 Web 应用程序,并启用了 azure AD 身份验证,并且有带有角色和用户表的 postgress 数据库。
Startup.cs
如下
public void ConfigureServices(IServiceCollection services)
services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options => Configuration.Bind("AzureAd", options));
ValidateToken(services);
services.AddControllersWithViews(options =>
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
);
services.AddRazorPages();
//ConfigureElsa(services);
ConfigureDatabaseContext(services);
ConfigurePolicies(services);
ConfigureHandlers(services);
我已经在 azure 门户中注册了应用程序,一切正常。
我需要知道如何将它与我现有的数据库角色集成。
有人可以帮助我吗?
谢谢
【问题讨论】:
【参考方案1】:看起来最适合您的方案的是 Azure 广告中的 app roles 功能。这是一个sample,它演示了如何定义角色以及如何使用 asp.net 核心类中的属性来根据角色声明执行 AuthZ。 您可以利用 MS Graph API 的 application patch endpoint 动态添加应用角色。只需编写一个实用程序来从本地角色数据库中导入应用程序角色,然后点击端点以使用新的应用程序角色修补您的应用程序注册。 这是一个示例补丁请求。
URL https://graph.microsoft.com/v1.0/applications/3e7d226f-2c9b-4d28-b3ce-6a9353753hah
"appRoles": [
"allowedMemberTypes": [
"User",
"Application"
],
"description": "TestRole",
"displayName": "TestRole",
"id": "6cd9c306-9252-4092-b52a-960016053356",
"isEnabled": true,
"origin": "Application",
"value": "TestRoles"
]
请注意以下是权限要求。
以下 PowerShell 脚本将使您能够在现有应用程序注册中创建应用程序角色
Connect-AzureAD -TenantId <TenantId>
# Create an Azure AD role of given name and description
Function CreateAppRole([string] $Name, [string] $Description)
$appRole = New-Object Microsoft.Open.MSGraph.Model.AppRole
$appRole.AllowedMemberTypes = New-Object System.Collections.Generic.List[string]
$appRole.AllowedMemberTypes.Add(“User”);
$appRole.AllowedMemberTypes.Add(“Application”);
$appRole.DisplayName = $Name
$appRole.Id = New-Guid
$appRole.IsEnabled = $true
$appRole.Description = $Description
$appRole.Value = $Name;
return $appRole
# ObjectId for application from App Registrations in your AzureAD
$appObjectId = “<ObjectId>”
$app = Get-AzureADMSApplication -ObjectId $appObjectId
$appRoles = $app.AppRoles
Write-Host “App Roles before addition of new role..”
Write-Host $appRoles
$newRole = CreateAppRole -name “NewApplicationName” -description “New application description”
$appRoles.Add($newRole)
Set-AzureADMSApplication -ObjectId $app.Id -AppRoles $appRoles
如果此解决方案对您有帮助,请将其标记为已验证。
【讨论】:
但是如果我想添加更多可定制的解决方案,? 你想要的定制是什么?以上是关于如何搭建一套Azure AD与ADFS集成身份的环境的主要内容,如果未能解决你的问题,请参考以下文章