Beveiligingsframe: Autorisatie | Oplossingen
Zorg ervoor dat de juiste ACL's zijn geconfigureerd om onbevoegde toegang tot gegevens op het apparaat te beperken
Titel | DETAILS |
---|---|
Onderdeel | Grens van machinevertrouwen |
SDL-fase | Implementatie |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | N.v.t. |
Stappen | Zorg ervoor dat de juiste ACL's zijn geconfigureerd om onbevoegde toegang tot gegevens op het apparaat te beperken |
Zorg ervoor dat gevoelige gebruikersspecifieke toepassingsinhoud is opgeslagen in de gebruikersprofielmap
Titel | DETAILS |
---|---|
Onderdeel | Grens van machinevertrouwen |
SDL-fase | Implementatie |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | N.v.t. |
Stappen | Zorg ervoor dat gevoelige gebruikersspecifieke toepassingsinhoud wordt opgeslagen in de gebruikersprofielmap. Dit is om te voorkomen dat meerdere gebruikers van de computer toegang hebben tot elkaars gegevens. |
Zorg ervoor dat de geïmplementeerde toepassingen worden uitgevoerd met minimale bevoegdheden
Titel | DETAILS |
---|---|
Onderdeel | Grens van machinevertrouwen |
SDL-fase | Implementatie |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | N.v.t. |
Stappen | Zorg ervoor dat de geïmplementeerde toepassing wordt uitgevoerd met minimale bevoegdheden. |
Volgorde van opeenvolgende stappen afdwingen bij het verwerken van bedrijfslogicastromen
Titel | DETAILS |
---|---|
Onderdeel | Webtoepassing |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | N.v.t. |
Stappen | Om te controleren of deze fase is uitgevoerd door een echte gebruiker die u de toepassing wilt afdwingen om alleen bedrijfslogicastromen in opeenvolgende stapvolgorde te verwerken, waarbij alle stappen in realistische menselijke tijd worden verwerkt en niet buiten de volgorde worden verwerkt, stappen overgeslagen, verwerkte stappen van een andere gebruiker of te snel verzonden transacties. |
Mechanisme voor snelheidsbeperking implementeren om opsomming te voorkomen
Titel | DETAILS |
---|---|
Onderdeel | Webtoepassing |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | N.v.t. |
Stappen | Zorg ervoor dat gevoelige id's willekeurig zijn. CapTCHA-besturingselement implementeren op anonieme pagina's. Zorg ervoor dat fout en uitzondering geen specifieke gegevens mogen weergeven |
Zorg ervoor dat de juiste autorisatie is ingesteld en dat het principe van minimale bevoegdheden wordt gevolgd
Titel | DETAILS |
---|---|
Onderdeel | Webtoepassing |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | N.v.t. |
Stappen | Het principe betekent dat alleen die bevoegdheden worden verleend die essentieel zijn voor die gebruikers. Een back-upgebruiker hoeft bijvoorbeeld geen software te installeren. Daarom heeft de back-upgebruiker alleen rechten om back-up- en back-uptoepassingen uit te voeren. Alle andere bevoegdheden, zoals het installeren van nieuwe software, worden geblokkeerd. Het principe is ook van toepassing op een gebruiker van een persoonlijke computer die meestal werkt in een normaal gebruikersaccount en opent een bevoegde, met een wachtwoord beveiligde account (dat wil gezegd een supergebruiker) alleen wanneer de situatie absoluut vereist. Dit principe kan ook worden toegepast op uw webtoepassingen. In plaats van alleen afhankelijk te zijn van verificatiemethoden op basis van rollen met behulp van sessies, willen we liever bevoegdheden toewijzen aan gebruikers via een databasegebaseerde verificatiesysteem. We gebruiken nog steeds sessies om te bepalen of de gebruiker correct is aangemeld, alleen nu in plaats van die gebruiker met een specifieke rol toe te wijzen, we hem met bevoegdheden toewijzen om te controleren welke acties hij bevoegd is om op het systeem uit te voeren. Een grote pro van deze methode is ook, wanneer een gebruiker minder bevoegdheden moet krijgen, worden uw wijzigingen direct toegepast, omdat de toewijzing niet afhankelijk is van de sessie die anders eerst moest verlopen. |
Beslissingen voor bedrijfslogica en autorisatie van resourcetoegang mogen niet worden gebaseerd op binnenkomende aanvraagparameters
Titel | DETAILS |
---|---|
Onderdeel | Webtoepassing |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | N.v.t. |
Stappen | Wanneer u controleert of een gebruiker beperkt is om bepaalde gegevens te controleren, moeten de toegangsbeperkingen aan de serverzijde worden verwerkt. De gebruikers-id moet worden opgeslagen in een sessievariabele bij aanmelding en moet worden gebruikt om gebruikersgegevens op te halen uit de database |
Opmerking
SELECT data
FROM personaldata
WHERE userID=:id < - session var
Een mogelijke aanvaller kan de toepassingsbewerking nu niet knoeien en wijzigen, omdat de id voor het ophalen van de gegevens aan de serverzijde wordt verwerkt.
Zorg ervoor dat inhoud en resources niet kunnen worden opgesomd of toegankelijk zijn via geforceerde navigatie
Titel | DETAILS |
---|---|
Onderdeel | Webtoepassing |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | N.v.t. |
Stappen | Gevoelige statische en configuratiebestanden mogen niet in de webhoofdmap worden bewaard. Voor inhoud die niet openbaar hoeft te zijn, moet de juiste toegangsbeheer worden toegepast of de inhoud zelf worden verwijderd. Ook wordt geforceerd bladeren meestal gecombineerd met Brute Force-technieken om informatie te verzamelen door zoveel mogelijk URL's te openen om mappen en bestanden op een server op te sommen. Aanvallers kunnen controleren op alle variaties van veelgebruikte bestaande bestanden. Een zoekactie voor wachtwoordbestanden omvat bijvoorbeeld bestanden zoals psswd.txt, password.htm, password.dat en andere variaties. Om dit te verhelpen, moeten mogelijkheden voor het detecteren van beveiligingspogingen worden opgenomen. |
Zorg ervoor dat accounts met minimale bevoegdheden worden gebruikt om verbinding te maken met de databaseserver
Titel | DETAILS |
---|---|
Onderdeel | Database |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | SQL-machtigingenhiërarchie, SQL-beveiligbare items |
Stappen | Accounts met minimale bevoegdheden moeten worden gebruikt om verbinding te maken met de database. Aanmelden bij toepassingen moet worden beperkt in de database en mag alleen geselecteerde opgeslagen procedures uitvoeren. De aanmelding van de toepassing mag geen directe toegang tot de tabel hebben. |
Beveiliging op rijniveau RLS implementeren om te voorkomen dat tenants toegang hebben tot elkaars gegevens
Titel | DETAILS |
---|---|
Onderdeel | Database |
SDL-fase | Build |
Toepasselijke technologieën | Sql Azure, OnPrem |
Kenmerken | SQL-versie - V12, SQL-versie - MsSQL2016 |
Naslaginformatie | Beveiliging op rijniveau van SQL Server (RLS) |
Stappen | Met beveiliging op rijniveau kunnen klanten de toegang tot rijen in een databasetabel beheren op basis van de kenmerken van de gebruiker die een query uitvoert (bijvoorbeeld groepslidmaatschap of uitvoeringscontext). Beveiliging op rijniveau (RLS) vereenvoudigt het ontwerp en de codering van beveiliging in uw toepassing. Met RLS kunt u beperkingen instellen voor de toegang tot gegevens in rijen. U kunt bijvoorbeeld bepalen dat werkrollen alleen toegang hebben tot de rijen met gegevens die relevant zijn voor hun afdeling, of de toegang van klanten beperken tot de gegevens die relevant zijn voor hun bedrijf. De toegangsbeperkingslogica bevindt zich in de databaselaag in plaats van de gegevens in een andere toepassingslaag. Het databasesysteem past de toegangsbeperkingen toe telkens wanneer gegevenstoegang wordt geprobeerd vanuit elke laag. Dit maakt het beveiligingssysteem betrouwbaarder en robuuster door het oppervlak van het beveiligingssysteem te verminderen. |
Houd er rekening mee dat RLS als out-of-the-box-databasefunctie alleen van toepassing is op SQL Server vanaf 2016, Azure SQL Database en SQL Managed Instance. Als de out-of-the-box RLS-functie niet is geïmplementeerd, moet worden gegarandeerd dat de toegang tot gegevens wordt beperkt met weergaven en procedures
De rol Sysadmin mag alleen geldige gebruikers hebben die nodig zijn
Titel | DETAILS |
---|---|
Onderdeel | Database |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | SQL-machtigingenhiërarchie, SQL-beveiligbare items |
Stappen | Leden van de vaste SysAdmin-serverfunctie moeten zeer beperkt zijn en mogen nooit accounts bevatten die door toepassingen worden gebruikt. Bekijk de lijst met gebruikers in de rol en verwijder overbodige accounts |
Verbinding maken met Cloud Gateway met behulp van tokens met minimale bevoegdheden
Titel | DETAILS |
---|---|
Onderdeel | IoT Cloud Gateway |
SDL-fase | Implementatie |
Toepasselijke technologieën | Algemeen |
Kenmerken | Gatewaykeuze - Azure IoT Hub |
Naslaginformatie | IoT Hub-toegangsbeheer |
Stappen | Geef machtigingen met minimale bevoegdheden op voor verschillende onderdelen die verbinding maken met Cloud Gateway (IoT Hub). Typisch voorbeeld is: apparaatbeheer/inrichtingsonderdeel maakt gebruik van registryread/write, Event Processor (ASA) maakt gebruik van Service Connect. Afzonderlijke apparaten maken verbinding met behulp van apparaatreferenties |
Een SAS-sleutel voor alleen-verzenden gebruiken voor het genereren van apparaattokens
Titel | DETAILS |
---|---|
Onderdeel | Azure Event Hub |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | Overzicht van Event Hubs-verificatie en -beveiligingsmodel |
Stappen | Een SAS-sleutel wordt gebruikt om afzonderlijke apparaattokens te genereren. Een SAS-sleutel voor alleen-verzenden gebruiken tijdens het genereren van het apparaattoken voor een bepaalde uitgever |
Geen toegangstokens gebruiken die directe toegang bieden tot de Event Hub
Titel | DETAILS |
---|---|
Onderdeel | Azure Event Hub |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | Overzicht van Event Hubs-verificatie en -beveiligingsmodel |
Stappen | Een token dat directe toegang tot de Event Hub verleent, mag niet aan het apparaat worden gegeven. Het gebruik van een token met minimale bevoegdheden voor het apparaat dat alleen toegang geeft tot een uitgever, kan helpen om het te identificeren en niet toe te staan als het een rogue of gecompromitteerd apparaat is. |
Verbinding maken met Event Hub met behulp van SAS-sleutels waarvoor de minimale machtigingen zijn vereist
Titel | DETAILS |
---|---|
Onderdeel | Azure Event Hub |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | Overzicht van Event Hubs-verificatie en -beveiligingsmodel |
Stappen | Geef machtigingen met minimale bevoegdheden op voor verschillende back-endtoepassingen die verbinding maken met de Event Hub. Genereer afzonderlijke SAS-sleutels voor elke back-endtoepassing en geef alleen de vereiste machtigingen op: verzenden, ontvangen of beheren. |
Resourcetokens gebruiken om waar mogelijk verbinding te maken met Azure Cosmos DB
Titel | DETAILS |
---|---|
Onderdeel | Azure Document DB |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | N.v.t. |
Stappen | Een resourcetoken is gekoppeld aan een Azure Cosmos DB-machtigingsresource en legt de relatie vast tussen de gebruiker van een database en de machtiging die de gebruiker heeft voor een specifieke Azure Cosmos DB-toepassingsresource (bijvoorbeeld verzameling, document). Gebruik altijd een resourcetoken om toegang te krijgen tot Azure Cosmos DB als de client niet kan worden vertrouwd met het verwerken van hoofdsleutels of alleen-lezen sleutels, zoals een eindgebruikertoepassing zoals een mobiele client of desktopclient. Gebruik hoofdsleutels of alleen-lezensleutels van back-endtoepassingen die deze sleutels veilig kunnen opslaan. |
Gedetailleerd toegangsbeheer voor Azure-abonnement inschakelen met behulp van Azure RBAC
Titel | DETAILS |
---|---|
Onderdeel | Grens van Azure Trust |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | Azure-rollen toewijzen om de toegang tot uw Azure-abonnementsbronnen te beheren |
Stappen | Op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) maakt gedetailleerd toegangsbeheer mogelijk voor Azure. Met Azure RBAC kunt u alleen de hoeveelheid toegang verlenen die gebruikers nodig hebben om hun taken uit te voeren. |
De toegang van de client tot clusterbewerkingen beperken met Service Fabric RBAC
Titel | DETAILS |
---|---|
Onderdeel | Grens van Service Fabric-vertrouwensrelatie |
SDL-fase | Implementatie |
Toepasselijke technologieën | Algemeen |
Kenmerken | Omgeving - Azure |
Naslaginformatie | Op rollen gebaseerd toegangsbeheer voor Service Fabric-clients |
Stappen | Azure Service Fabric ondersteunt twee verschillende typen toegangsbeheer voor clients die zijn verbonden met een Service Fabric-cluster: beheerder en gebruiker. Met toegangsbeheer kan de clusterbeheerder de toegang tot bepaalde clusterbewerkingen voor verschillende groepen gebruikers beperken, waardoor het cluster veiliger wordt. Beheerders hebben volledige toegang tot beheermogelijkheden (inclusief lees-/schrijfmogelijkheden). Gebruikers hebben standaard alleen leestoegang tot beheermogelijkheden (bijvoorbeeld querymogelijkheden) en de mogelijkheid om toepassingen en services op te lossen. U geeft de twee clientrollen (beheerder en client) op het moment van het maken van het cluster op door afzonderlijke certificaten voor elk op te geven. |
Beveiligingsmodellering uitvoeren en waar nodig beveiliging op veldniveau gebruiken
Titel | DETAILS |
---|---|
Onderdeel | Dynamics CRM |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | N.v.t. |
Stappen | Beveiligingsmodellering uitvoeren en waar nodig beveiliging op veldniveau gebruiken |
Beveiligingsmodellering van portalaccounts uitvoeren, houd er rekening mee dat het beveiligingsmodel voor de portal verschilt van de rest van CRM
Titel | DETAILS |
---|---|
Onderdeel | Dynamics CRM-portal |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | N.v.t. |
Stappen | Beveiligingsmodellering van portalaccounts uitvoeren, houd er rekening mee dat het beveiligingsmodel voor de portal verschilt van de rest van CRM |
Fijnmazige machtigingen verlenen voor een reeks entiteiten in Azure Table Storage
Titel | DETAILS |
---|---|
Onderdeel | Azure Storage |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | StorageType - Tabel |
Naslaginformatie | Toegang tot objecten in uw Azure-opslagaccount delegeren met behulp van SAS |
Stappen | In bepaalde bedrijfsscenario's is Azure Table Storage mogelijk vereist om gevoelige gegevens op te slaan die geschikt zijn voor verschillende partijen. Bijvoorbeeld gevoelige gegevens met betrekking tot verschillende landen/regio's. In dergelijke gevallen kunnen SAS-handtekeningen worden samengesteld door de partitie- en rijsleutelbereiken op te geven, zodat een gebruiker toegang heeft tot gegevens die specifiek zijn voor een bepaald land/bepaalde regio. |
Op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) inschakelen naar een Azure-opslagaccount met behulp van Azure Resource Manager
Titel | DETAILS |
---|---|
Onderdeel | Azure Storage |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | Uw opslagaccount beveiligen met op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) |
Stappen | Wanneer u een nieuw opslagaccount maakt, selecteert u een implementatiemodel van klassiek of Azure Resource Manager. Het klassieke model voor het maken van resources in Azure staat alleen all-or-nothing-toegang tot het abonnement toe, en op zijn beurt het opslagaccount. Met het Azure Resource Manager-model plaatst u het opslagaccount in een resourcegroep en kunt u de toegang tot het beheervlak van dat specifieke opslagaccount beheren met behulp van Microsoft Entra-id. U kunt bijvoorbeeld specifieke gebruikers de mogelijkheid geven om toegang te krijgen tot de sleutels van het opslagaccount, terwijl andere gebruikers informatie over het opslagaccount kunnen bekijken, maar geen toegang hebben tot de sleutels van het opslagaccount. |
Impliciete jailbreak- of rootingdetectie implementeren
Titel | DETAILS |
---|---|
Onderdeel | Mobiele client |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | N.v.t. |
Stappen | De toepassing moet zijn eigen configuratie- en gebruikersgegevens beschermen als de telefoon is geroot of gekraakt. Rooting/jailbreaking impliceert onbevoegde toegang, wat normale gebruikers niet op hun eigen telefoons doen. Daarom moet de toepassing impliciete detectielogica hebben bij het opstarten van de toepassing, om te detecteren of de telefoon is geroot. De detectielogica kan eenvoudig toegang krijgen tot bestanden waartoe normaal gesproken alleen hoofdgebruiker toegang heeft, bijvoorbeeld:
Als de toepassing toegang heeft tot een van deze bestanden, geeft dit aan dat de toepassing wordt uitgevoerd als hoofdgebruiker. |
Zwakke klassereferentie in WCF
Titel | DETAILS |
---|---|
Onderdeel | WCF |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen, NET Framework 3 |
Kenmerken | N.v.t. |
Naslaginformatie | MSDN, Fortify Kingdom |
Stappen | Het systeem maakt gebruik van een zwakke klassereferentie, waardoor een aanvaller mogelijk niet-geautoriseerde code kan uitvoeren. Het programma verwijst naar een door de gebruiker gedefinieerde klasse die niet uniek is geïdentificeerd. Wanneer .NET deze zwak geïdentificeerde klasse laadt, zoekt de CLR-typelader naar de klasse op de volgende locaties in de opgegeven volgorde:
Als een aanvaller de CLR-zoekvolgorde misbruikt door een alternatieve klasse met dezelfde naam te maken en deze op een alternatieve locatie te plaatsen die de CLR eerst laadt, voert de CLR onbedoeld de door de aanvaller opgegeven code uit |
Opmerking
Het <behaviorExtensions/>
element van het WCF-configuratiebestand hieronder geeft WCF opdracht om een aangepaste gedragsklasse toe te voegen aan een bepaalde WCF-extensie.
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name=""myBehavior"" type=""MyBehavior"" />
</behaviorExtensions>
</extensions>
</system.serviceModel>
Het gebruik van volledig gekwalificeerde (sterke) namen identificeert een type en verhoogt de beveiliging van uw systeem verder. Gebruik volledig gekwalificeerde assemblynamen bij het registreren van typen in de bestanden machine.config en app.config.
Opmerking
Het <behaviorExtensions/>
element van het WCF-configuratiebestand hieronder geeft WCF opdracht om sterk verwezen aangepaste gedragsklasse toe te voegen aan een bepaalde WCF-extensie.
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name=""myBehavior"" type=""Microsoft.ServiceModel.Samples.MyBehaviorSection, MyBehavior,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"" />
</behaviorExtensions>
</extensions>
</system.serviceModel>
WCF-Autorisatiebeheer implementeren
Titel | DETAILS |
---|---|
Onderdeel | WCF |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen, NET Framework 3 |
Kenmerken | N.v.t. |
Naslaginformatie | MSDN, Fortify Kingdom |
Stappen | Deze service maakt geen gebruik van een autorisatiebeheer. Wanneer een client een bepaalde WCF-service aanroept, biedt WCF verschillende autorisatieschema's waarmee wordt gecontroleerd of de aanroeper gemachtigd is om de servicemethode op de server uit te voeren. Als autorisatiebesturingselementen niet zijn ingeschakeld voor WCF-services, kan een geverifieerde gebruiker uitbreiding van bevoegdheden bereiken. |
Opmerking
Met de volgende configuratie wordt WCF geïnstrueerd om het autorisatieniveau van de client niet te controleren bij het uitvoeren van de service:
<behaviors>
<serviceBehaviors>
<behavior>
...
<serviceAuthorization principalPermissionMode=""None"" />
</behavior>
</serviceBehaviors>
</behaviors>
Gebruik een serviceautorisatieschema om te controleren of de aanroeper van de servicemethode hiervoor is gemachtigd. WCF biedt twee modi en staat de definitie van een aangepast autorisatieschema toe. De modus UseWindowsGroups maakt gebruik van Windows-rollen en -gebruikers en de UseAspNetRoles-modus maakt gebruik van een ASP.NET rolprovider, zoals SQL Server, om te verifiëren.
Opmerking
Met de volgende configuratie wordt WCF geïnstrueerd om ervoor te zorgen dat de client deel uitmaakt van de groep Administrators voordat de service Toevoegen wordt uitgevoerd:
<behaviors>
<serviceBehaviors>
<behavior>
...
<serviceAuthorization principalPermissionMode=""UseWindowsGroups"" />
</behavior>
</serviceBehaviors>
</behaviors>
De service wordt vervolgens gedeclareerd als het volgende:
[PrincipalPermission(SecurityAction.Demand,
Role = ""Builtin\\Administrators"")]
public double Add(double n1, double n2)
{
double result = n1 + n2;
return result;
}
Het juiste autorisatiemechanisme implementeren in ASP.NET Web-API
Titel | DETAILS |
---|---|
Onderdeel | Web-API |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen, MVC5 |
Kenmerken | N.b., id-provider - ADFS, id-provider - Microsoft Entra-id |
Naslaginformatie | Verificatie en autorisatie in ASP.NET Web-API |
Stappen | Rolgegevens voor de toepassingsgebruikers kunnen worden afgeleid van Microsoft Entra ID- of ADFS-claims als de toepassing ervan afhankelijk is als id-provider of de toepassing zelf deze mogelijk heeft verstrekt. In een van deze gevallen moet de implementatie van de aangepaste autorisatie de gebruikersrolgegevens valideren. Rolgegevens voor de toepassingsgebruikers kunnen worden afgeleid van Microsoft Entra ID- of ADFS-claims als de toepassing ervan afhankelijk is als id-provider of de toepassing zelf deze mogelijk heeft verstrekt. In een van deze gevallen moet de implementatie van de aangepaste autorisatie de gebruikersrolgegevens valideren. |
Opmerking
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class ApiAuthorizeAttribute : System.Web.Http.AuthorizeAttribute
{
public async override Task OnAuthorizationAsync(HttpActionContext actionContext, CancellationToken cancellationToken)
{
if (actionContext == null)
{
throw new Exception();
}
if (!string.IsNullOrEmpty(base.Roles))
{
bool isAuthorized = ValidateRoles(actionContext);
if (!isAuthorized)
{
HandleUnauthorizedRequest(actionContext);
}
}
base.OnAuthorization(actionContext);
}
public bool ValidateRoles(actionContext)
{
//Authorization logic here; returns true or false
}
}
Alle controllers en actiemethoden die moeten worden beveiligd, moeten worden voorzien van het bovenstaande kenmerk.
[ApiAuthorize]
public class CustomController : ApiController
{
//Application code goes here
}
Autorisatiecontroles uitvoeren op het apparaat als het ondersteuning biedt voor verschillende acties waarvoor verschillende machtigingsniveaus zijn vereist
Titel | DETAILS |
---|---|
Onderdeel | IoT-apparaat |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | N.v.t. |
Stappen | Het apparaat moet de beller autoriseren om te controleren of de beller over de vereiste machtigingen beschikt om de aangevraagde actie uit te voeren. Stel bijvoorbeeld dat het apparaat een Smart Door Lock is dat vanuit de cloud kan worden bewaakt, plus dat het functies biedt zoals extern vergrendelen van de deur. De Smart Door Lock biedt alleen ontgrendelingsfunctionaliteit wanneer iemand fysiek bij de deur komt met een kaart. In dit geval moet de implementatie van de externe opdracht en het beheer zodanig worden uitgevoerd dat het geen functionaliteit biedt om de deur te ontgrendelen omdat de cloudgateway niet is gemachtigd om een opdracht te verzenden om de deur te ontgrendelen. |
Autorisatiecontroles uitvoeren in de veldgateway als deze ondersteuning biedt voor verschillende acties waarvoor verschillende machtigingsniveaus zijn vereist
Titel | DETAILS |
---|---|
Onderdeel | IoT-veldgateway |
SDL-fase | Build |
Toepasselijke technologieën | Algemeen |
Kenmerken | N.v.t. |
Naslaginformatie | N.v.t. |
Stappen | De veldgateway moet de beller autoriseren om te controleren of de beller over de vereiste machtigingen beschikt om de aangevraagde actie uit te voeren. Er moeten bijvoorbeeld verschillende machtigingen zijn voor een gebruikersinterface/API voor beheerders die worden gebruikt voor het configureren van een veldgateway v/s-apparaten die er verbinding mee maken. |