Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Zorg ervoor dat de juiste ACL's zijn geconfigureerd om ongeoorloofde toegang tot gegevens op het apparaat te beperken
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Grens van machinevertrouwen |
| SDL-fase | Uitrol |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Niet van toepassing. |
| Stappen | Zorg ervoor dat de juiste ACL's zijn geconfigureerd om ongeoorloofde toegang tot gegevens op het apparaat te beperken |
Zorg ervoor dat gevoelige gebruikersspecifieke toepassingsinhoud wordt opgeslagen in de map met gebruikersprofielen
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Grens van machinevertrouwen |
| SDL-fase | Uitrol |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Niet van toepassing. |
| Stappen | Zorg ervoor dat gevoelige gebruikersspecifieke toepassingsinhoud wordt opgeslagen in de map met gebruikersprofielen. Dit om te voorkomen dat meerdere gebruikers van de machine toegang krijgen tot elkaars gegevens. |
Zorg ervoor dat de geïmplementeerde toepassingen worden uitgevoerd met de minste bevoegdheden
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Grens van machinevertrouwen |
| SDL-fase | Uitrol |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Niet van toepassing. |
| Stappen | Zorg ervoor dat de geïmplementeerde toepassing wordt uitgevoerd met de minste bevoegdheden. |
Sequentiële stapvolgorde afdwingen bij het verwerken van bedrijfslogicastromen
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Webapplicatie |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Niet van toepassing. |
| Stappen | Om te controleren of deze fase is doorlopen door een echte gebruiker, wilt u de toepassing afdwingen om alleen bedrijfslogische stromen in sequentiële stapvolgorde te verwerken, waarbij alle stappen in realistische menselijke tijd worden verwerkt, en niet om in de juiste volgorde, overgeslagen stappen, verwerkte stappen van een andere gebruiker of te snel ingediende transacties te verwerken. |
Implementeer een snelheidsbeperkend mechanisme om opsomming te voorkomen
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Webapplicatie |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Niet van toepassing. |
| Stappen | Zorg ervoor dat gevoelige ID's willekeurig zijn. Implementeer CAPTCHA-controle op anonieme pagina's. Zorg ervoor dat fouten en uitzonderingen geen specifieke gegevens onthullen |
Zorg ervoor dat de juiste autorisatie aanwezig is en dat het principe van de minste privileges wordt gevolgd
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Webapplicatie |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Niet van toepassing. |
| Stappen | Het principe houdt in dat een gebruikersaccount alleen die rechten krijgt die essentieel zijn voor het werk van de gebruiker. Een back-upgebruiker hoeft bijvoorbeeld geen software te installeren: de back-upgebruiker heeft dus alleen rechten om back-ups en back-upgerelateerde applicaties uit te voeren. Alle andere privileges, zoals het installeren van nieuwe software, worden geblokkeerd. Het principe is ook van toepassing op een pc-gebruiker die gewoonlijk in een normaal gebruikersaccount werkt en alleen een bevoorrecht, met een wachtwoord beveiligd account opent (dat wil zeggen een superuser) als de situatie dit absoluut vereist. Dit principe kan ook worden toegepast op uw webapplicaties. In plaats van alleen afhankelijk te zijn van op rollen gebaseerde authenticatiemethoden met behulp van sessies, willen we eerder rechten toekennen aan gebruikers door middel van een Database-Based authenticatiesysteem. We gebruiken nog steeds sessies om vast te stellen of de gebruiker correct was ingelogd, alleen geven we hem nu geen specifieke rol om die gebruiker een specifieke rol te geven, maar geven we hem privileges om te verifiëren welke acties hij op het systeem mag uitvoeren. Een groot voordeel van deze methode is ook dat wanneer een gebruiker minder rechten moet krijgen, uw wijzigingen direct worden toegepast, aangezien de toewijzing niet afhankelijk is van de sessie die anders als eerste moest verlopen. |
Beslissingen over autorisatie voor bedrijfslogica en resourcetoegang mogen niet worden gebaseerd op parameters voor binnenkomende aanvragen
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Webapplicatie |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Niet van toepassing. |
| Stappen | Wanneer u controleert of een gebruiker beperkt is tot het bekijken van bepaalde gegevens, moeten de toegangsbeperkingen aan de serverzijde worden verwerkt. De gebruikers-ID moet bij het inloggen worden opgeslagen in een sessievariabele en moet worden gebruikt om gebruikersgegevens uit de database op te halen |
Voorbeeld
SELECT data
FROM personaldata
WHERE userID=:id < - session var
Nu kan een mogelijke aanvaller niet knoeien en de werking van de toepassing wijzigen, aangezien de id voor het ophalen van de gegevens aan de serverzijde wordt verwerkt.
Zorg ervoor dat inhoud en bronnen niet optelbaar zijn of toegankelijk zijn via geforceerd browsen
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Webapplicatie |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Niet van toepassing. |
| Stappen | Gevoelige statische en configuratiebestanden mogen niet in de web-root worden bewaard. Voor inhoud die niet openbaar hoeft te zijn, moeten de juiste toegangscontroles worden toegepast of moet de inhoud zelf worden verwijderd. Ook wordt geforceerd browsen meestal gecombineerd met Brute Force-technieken om informatie te verzamelen door te proberen toegang te krijgen tot zoveel mogelijk URL's om mappen en bestanden op een server op te sommen. Aanvallers kunnen controleren op alle variaties van algemeen bestaande bestanden. Een zoekopdracht in een wachtwoordbestand omvat bijvoorbeeld bestanden zoals psswd.txt, password.htmpassword.dat en andere variaties. Om dit te beperken, moeten mogelijkheden voor het detecteren van brute force-pogingen worden opgenomen. |
Zorg ervoor dat accounts met de minste bevoegdheden worden gebruikt om verbinding te maken met de databaseserver
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | gegevensbank |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Hiërarchie van SQL-machtigingen, SQL-beveiligbare items |
| Stappen | Accounts met de minste bevoegdheden moeten worden gebruikt om verbinding te maken met de database. Aanmelding bij toepassingen moet worden beperkt in de database en mag alleen geselecteerde opgeslagen procedures uitvoeren. De aanmelding van de applicatie mag geen directe toegang tot de tabel hebben. |
Implementeer Row Level Security RLS om te voorkomen dat tenants toegang hebben tot elkaars gegevens
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | gegevensbank |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Sql Azure, OnPrem |
| Kenmerken | SQL-versie - V12, SQL-versie - MsSQL2016 |
| Verwijzingen | SQL Server Row-Level beveiliging (RLS) |
| Stappen | Row-Level Security stelt klanten in staat om de toegang tot rijen in een databasetabel te beheren op basis van de kenmerken van de gebruiker die een query uitvoert (bijvoorbeeld groepslidmaatschap of uitvoeringscontext). Row-Level Security (RLS) vereenvoudigt het ontwerp en de codering van de beveiliging in uw toepassing. Met RLS kunt u beperkingen voor toegang tot gegevensrijen implementeren. Bijvoorbeeld ervoor zorgen dat werknemers alleen toegang hebben tot die gegevensrijen die relevant zijn voor hun afdeling, of de toegang van een klant beperken tot alleen 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 verkleinen. |
Houd er rekening mee dat RLS als kant-en-klare databasefunctie alleen van toepassing is op SQL Server vanaf 2016, Azure SQL Database en SQL Managed Instance. Als de kant-en-klare RLS-functie niet is geïmplementeerd, moet ervoor worden gezorgd dat de toegang tot gegevens wordt beperkt met behulp van weergaven en procedures
De rol van systeembeheerder mag alleen geldige noodzakelijke gebruikers hebben
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | gegevensbank |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Hiërarchie van SQL-machtigingen, SQL-beveiligbare items |
| Stappen | Leden van de vaste serverrol van SysAdmin moeten zeer beperkt zijn en mogen nooit accounts bevatten die door applicaties worden gebruikt. Bekijk de lijst met gebruikers in de rol en verwijder onnodige accounts |
Maak verbinding met Cloud Gateway met behulp van tokens met de minste bevoegdheden
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | IoT Cloud Gateway |
| SDL-fase | Uitrol |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Gatewaykeuze - Azure IoT Hub |
| Verwijzingen | IoT Hub Toegangscontrole |
| Stappen | Geef machtigingen met minimale bevoegdheden aan verschillende onderdelen die verbinding maken met Cloud Gateway (IoT Hub). Typisch voorbeeld is: de component voor apparaatbeheer/provisioning maakt gebruik van registryread/write, Event Processor (ASA) maakt gebruik van Service Connect. Individuele apparaten maken verbinding met apparaatreferenties |
Een SAS-sleutel met alleen verzenden-machtigingen gebruiken voor het genereren van apparaattokens
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Azure Event Hub |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Overzicht van het authentificatie- en beveiligingsmodel van Event Hubs |
| Stappen | Een SAS-sleutel wordt gebruikt om individuele apparaattokens te genereren. Gebruik een SAS-sleutel voor alleen-verzendenmachtigingen bij het genereren van het apparaattoken voor een bepaalde uitgever |
Gebruik geen toegangstokens die directe toegang bieden tot de Event Hub
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Azure Event Hub |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Overzicht van het authentificatie- en beveiligingsmodel van Event Hubs |
| Stappen | Een token dat directe toegang tot de Event Hub verleent, mag niet aan het apparaat worden gegeven. Het gebruik van een token met de minste bevoegdheden voor het apparaat dat alleen toegang geeft aan een uitgever, zou helpen om het te identificeren en niet toe te staan als blijkt dat het een malafide of gecompromitteerd apparaat is. |
Maak verbinding met Event Hub met behulp van SAS-sleutels die de minimaal vereiste machtigingen hebben
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Azure Event Hub |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Overzicht van het authentificatie- en beveiligingsmodel van Event Hubs |
| Stappen | Geef machtigingen met minimale bevoegdheden aan verschillende back-endtoepassingen die verbinding maken met de Event Hub. Genereer afzonderlijke SAS-sleutels voor elke back-endtoepassing en geef alleen de vereiste machtigingen - verzenden, ontvangen of beheren. |
Gebruik resourcetokens om waar mogelijk verbinding te maken met Azure Cosmos DB
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Azure Document DB |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Niet van toepassing. |
| 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 die gebruiker heeft voor een specifieke Azure Cosmos DB-toepassingsresource (bijvoorbeeld verzameling, document). Gebruik altijd een resourcetoken om toegang te krijgen tot de Azure Cosmos DB als de client niet kan worden vertrouwd met het verwerken van hoofd- of alleen-lezensleutels, zoals een eindgebruikerstoepassing zoals een mobiele of desktopclient. Gebruik hoofdsleutels of alleen-lezen sleutels van back-endtoepassingen die deze sleutels veilig kunnen opslaan. |
Fijnmazig toegangsbeheer voor Azure-abonnement inschakelen met behulp van Azure RBAC
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Grens van Azure Trust |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | 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 behulp van Service Fabric RBAC
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Grens van Service Fabric-vertrouwensrelatie |
| SDL-fase | Uitrol |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Omgeving - Azure |
| Verwijzingen | Toegangsbeheer op basis van Service Fabric op basis van rollen 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 beperken voor verschillende groepen gebruikers, 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 op het moment dat het cluster wordt gemaakt door voor elk certificaat afzonderlijke certificaten op te geven. |
Voer beveiligingsmodellering uit en gebruik waar nodig Field Level Security
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Dynamics CRM |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Niet van toepassing. |
| Stappen | Voer beveiligingsmodellering uit en gebruik waar nodig Field Level Security |
Voer beveiligingsmodellering van portalaccounts uit, rekening houdend met het feit dat het beveiligingsmodel voor de portal verschilt van de rest van CRM
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Dynamics CRM-portaal |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Niet van toepassing. |
| Stappen | Voer beveiligingsmodellering van portalaccounts uit, rekening houdend met het feit dat het beveiligingsmodel voor de portal verschilt van de rest van CRM |
Fijnmazige machtiging verlenen voor een reeks entiteiten in Azure Table Storage
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Azure-opslag |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | StorageType - Tabel |
| Verwijzingen | Toegang tot objecten in uw Azure-opslagaccount delegeren met behulp van SAS |
| Stappen | In bepaalde bedrijfsscenario's kan Azure Table Storage nodig zijn om gevoelige gegevens op te slaan die geschikt zijn voor verschillende partijen. Bijv. gevoelige gegevens met betrekking tot verschillende landen/regio's. In dergelijke gevallen kunnen SAS-handtekeningen worden geconstrueerd door de partitie- en rijtoetsbereiken op te geven, zodat een gebruiker toegang heeft tot gegevens die specifiek zijn voor een bepaald land/een bepaalde regio. |
Op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) inschakelen voor Azure-opslagaccount met behulp van Azure Resource Manager
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Azure-opslag |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Uw opslagaccount beveiligen met op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) |
| Stappen | Wanneer u een nieuw opslagaccount maakt, selecteert u een implementatiemodel van Classic of Azure Resource Manager. Het klassieke model voor het maken van resources in Azure biedt alleen alles-of-niets-toegang tot het abonnement en daarmee het opslagaccount. Met het Azure Resource Manager-model plaatst u het opslagaccount in een resourcegroep en beheert u de toegang tot het beheervlak van dat specifieke opslagaccount met behulp van Microsoft Entra-id. U kunt bijvoorbeeld specifieke gebruikers de mogelijkheid geven om toegang te krijgen tot de opslagaccountsleutels, terwijl andere gebruikers informatie over het opslagaccount kunnen bekijken, maar geen toegang hebben tot de opslagaccountsleutels. |
Implementeer impliciete jailbreak- of rooting-detectie
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Mobiele client |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Niet van toepassing. |
| Stappen | De applicatie moet zijn eigen configuratie- en gebruikersgegevens beschermen voor het geval de telefoon is geroot of jailbreakt. Rooten/jailbreaken impliceert ongeoorloofde toegang, wat normale gebruikers niet zullen doen op hun eigen telefoons. Daarom moet de applicatie impliciete detectielogica hebben bij het opstarten van de applicatie, om te detecteren of de telefoon is geroot. De detectielogica kan eenvoudig toegang bieden tot bestanden waar normaal gesproken alleen de root-gebruiker toegang toe heeft, bijvoorbeeld:
Als de applicatie toegang heeft tot een van deze bestanden, geeft dit aan dat de applicatie wordt uitgevoerd als rootgebruiker. |
Zwakke klassereferentie in WCF
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | WCF |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen, NET Framework 3 |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | MSDN, Fortify Kingdom |
| Stappen | Het systeem maakt gebruik van een zwakke klassereferentie, waardoor een aanvaller ongeautoriseerde 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 lader van het CLR-type naar de klasse op de volgende locaties in de opgegeven volgorde:
Als een aanvaller misbruik maakt van de CLR-zoekvolgorde door een alternatieve klasse met dezelfde naam te maken en deze op een alternatieve locatie te plaatsen die als eerste door de CLR wordt geladen, zal de CLR onbedoeld de door de aanvaller verstrekte code uitvoeren |
Voorbeeld
Het <behaviorExtensions/> onderstaande element van het WCF-configuratiebestand instrueert WCF 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 op unieke wijze een type en verhoogt de beveiliging van uw systeem verder. Gebruik volledig gekwalificeerde merknamen bij het registreren van typen in de machine.config- en app.config-bestanden.
Voorbeeld
Het <behaviorExtensions/> onderstaande element van het WCF-configuratiebestand instrueert WCF om een sterk gerefereerde klasse voor aangepast gedrag 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-Implement Controle van de machtiging
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | WCF |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen, NET Framework 3 |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | MSDN, Fortify Kingdom |
| Stappen | Deze service maakt geen gebruik van een autorisatiecontrole. 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 escalatie van bevoegdheden bereiken. |
Voorbeeld
De volgende configuratie instrueert WCF 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 is geautoriseerd om dit te doen. WCF biedt twee modi en maakt de definitie van een aangepast autorisatieschema mogelijk. In de modus UseWindowsGroups worden Windows-rollen en -gebruikers gebruikt en in de modus UseAspNetRoles wordt een ASP.NET-rolprovider, zoals SQL Server, gebruikt om te verifiëren.
Voorbeeld
In 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 dan als volgt gedeclareerd:
[PrincipalPermission(SecurityAction.Demand,
Role = ""Builtin\\Administrators"")]
public double Add(double n1, double n2)
{
double result = n1 + n2;
return result;
}
Implementeer het juiste autorisatiemechanisme in ASP.NET web-API
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | Web-API |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen, MVC5 |
| Kenmerken | N.v.t., Identiteitsprovider - ADFS, Identiteitsprovider - Microsoft Entra ID |
| Verwijzingen | Verificatie en autorisatie in ASP.NET web-API |
| Stappen | Rolgegevens voor de gebruikers van de toepassing kunnen worden afgeleid uit Microsoft Entra-id- of ADFS-claims als de toepassing erop vertrouwt als identiteitsprovider of als de toepassing zelf deze kan verstrekken. In elk van deze gevallen moet de implementatie van aangepaste autorisatie de gegevens van de gebruikersrol valideren. Rolgegevens voor de gebruikers van de toepassing kunnen worden afgeleid uit Microsoft Entra-id- of ADFS-claims als de toepassing erop vertrouwt als identiteitsprovider of als de toepassing zelf deze kan verstrekken. In elk van deze gevallen moet de implementatie van aangepaste autorisatie de gegevens van de gebruikersrol valideren. |
Voorbeeld
[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 beschermd moeten worden, moeten worden versierd met bovenstaand attribuut.
[ApiAuthorize]
public class CustomController : ApiController
{
//Application code goes here
}
Voer autorisatiecontroles uit op het apparaat als het verschillende acties ondersteunt waarvoor verschillende machtigingsniveaus zijn vereist
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | IoT-apparaat |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Niet van toepassing. |
| Stappen | Het apparaat moet de beller machtigen om te controleren of de beller over de vereiste machtigingen beschikt om de gevraagde actie uit te voeren. Laten we bijvoorbeeld zeggen dat het apparaat een slim deurslot is dat vanuit de cloud kan worden gemonitord, plus functionaliteiten zoals het op afstand vergrendelen van de deur. Het slimme deurslot biedt alleen ontgrendelingsfunctionaliteit wanneer iemand fysiek in de buurt van de deur komt met een kaart. In dit geval moet de implementatie van de opdracht en controle op afstand op zo'n manier worden uitgevoerd dat er geen functionaliteit is om de deur te ontgrendelen, aangezien de cloudgateway niet geautoriseerd is om een opdracht te sturen om de deur te ontgrendelen. |
Voer autorisatiecontroles uit in de Field Gateway als deze verschillende acties ondersteunt waarvoor verschillende machtigingsniveaus zijn vereist
| Titel | Bijzonderheden |
|---|---|
| Onderdeel | IoT-gateway voor velden |
| SDL-fase | Bouwen |
| Toepasselijke technologieën | Algemeen |
| Kenmerken | Niet van toepassing. |
| Verwijzingen | Niet van toepassing. |
| Stappen | De Field Gateway moet de aanroeper machtigen om te controleren of de aanroeper over de vereiste machtigingen beschikt om de gevraagde actie uit te voeren. Er moeten bijvoorbeeld verschillende rechten zijn voor een admin-gebruikersinterface/API die wordt gebruikt om een veldgateway te configureren ten opzichte van apparaten die er verbinding mee maken. |