Articles
Notes de version, choix de conception et notes prises au fil des bibliothèques.
-
N’importe quoi peut être un demandeur
Un jeton, une clé d’API, un compte de service, une chaîne. Et des rôles qui n’ont plus besoin de Symfony Security pour exister.
-
Les circonstances d’une question
Le quatrième champ d’une question : ce qui n’appartient ni au demandeur ni au sujet. Quatre clés semées, et un sac laissé ouvert exprès.
-
Expressions et fermetures en guise d’attributs
Un attribut peut être une expression ou une fermeture. Voici les variables publiées, les fonctions disponibles, et le piège qu’il a fallu corriger.
-
Un algorithme de combinaison bien à vous
Une règle que les quatre algorithmes fournis n’expriment pas tient en une classe à deux méthodes : voici une règle de lancement à deux clés, en entier.
-
Une politique que le composant ne fournit pas
Quand All, AtLeastOneOf et When ne le disent pas, une politique et un gestionnaire dans votre propre src le disent, et le profileur continue de dessiner l’arbre.
-
Il n’y a pas de Not, et c’est délibéré
Nier trois valeurs n’est pas défini, et les permissions négatives sont un piège connu. Chacune des deux raisons se suffit à elle-même.
-
All, AtLeastOneOf, When : composer des politiques d’accès
Trois combinateurs transforment les politiques en arbre, et le profileur montre la forme plutôt qu’une liste plate de décisions sans rapport.
-
Onze lignes d’en-tête, et pas un point de terminaison de plus
Ma conférence à l’API Platform Con, par écrit : les en-têtes du socle, CORS face à CORP, l’isolation, et la configuration qui va avec.
-
Déclarer la question là où elle s’applique
Une politique d’accès est une question déclarée en attribut, à côté du code qu’elle garde, avec un message pour le visiteur et une raison pour vous.
-
Une décision n’est pas un booléen
decide() rend le verdict, la raison et chaque vote. C’est ce qui rend un refus diagnosticable longtemps après.
-
L’autorisation sans framework
La bibliothèque tient en un objet, demande PHP et un contrat de répartiteur d’événements, et ne connaît rien à HTTP. La voici en entier.
-
Ce qui arrive quand personne ne répond
Tous les votants se sont abstenus, et il faut bien que quelque chose sorte de la question. L’endroit où vit ce réglage dit comment le composant est bâti.
-
Quand l’ordre de vos votants fait la règle
Trois algorithmes ignorent l’ordre de vos votants. Le quatrième en fait la règle, ce qui est utile exactement aussi souvent que c’est dangereux.
-
Peser les votes plutôt que les compter
Un algorithme lit le poids derrière un vote. Cela donne plus de voix à un votant sans lui donner de veto, et c’est ce qu’il est le plus…
-
Quatre algorithmes de combinaison, sous leurs noms XACML
permit_overrides, deny_overrides, majority, first_applicable : ce que fait chacun, et pourquoi unanimous n’a jamais voulu dire l’unanimité.