unddoch
As I said earlier - validating that the customer controls an azure user doesn't necessarily mean that they have permissions to grant admin consent.
Further, I think you perhaps kind of implicitly assume that when I authenticate users I do that by their Azure identity. In practice that can be a whole spectrum - whether I have my own user management system, and whether I couple it to Entra or not is not something you can rely on. Customers expect their preferred IdP to work with your service.
Btw, I just found a short article referencing this issue, offering the same solution with the same "vulnerable to inside org privesc" gap: https://medium.com/@dipakkrdas/microsoft-adminconsent-can-le...
Making this inherently secure is just not that hard here - you could easily make this a bit more PKCE like with an additional service->azure call before redirecting the user to the flow or by adding a symmetrical signature to the callback and a new API to verify the signature.
Client A connected their Azure env to my service. Now an attacker creates a different tenant at my service and goes through the integration flow. Then he sends a request to my callback that says "admin consent configured for client A's tenant" and wants to steal Client A's data. How do I protect against that? Should I validate that the user who started the flow belongs to the same Azure tenant id? In itself it's not enough, what if it's just a random user without actual permissions to go through admin consent? What if a client legitimately has multiple tenants in my service that need to connect to the same azure tenant?
The callback you're redirecting the user to at the end of that flow is forgeable if an attacker knows an azure tenant ID of a different customer, and putting a "Never use the tenant ID value of the tenant parameter to authenticate or authorize users" warning in the docs is only helpful as long as a way to authenticate users exists.
A reasonable argument is that mirror proteins will evade the usual degradation+antigen presentation pipeline and this will make efficient adaptive response more difficult, or that the innate immune reaction will not be enough to recruit adaptive response. But surely it's not impossible. And if we ever get to this point I'm very optimistic that we would have a good way to vaccinate against this.
All of this means you will need to be rich or have your country invest lots of money into health care systems. In a world where humans don't provide economic value anymore, why would that be?
Famous mathematical conjectures are social constructs, formed by decades of even centuries of attention given to them by members of the math community. Without it, the danger is that future math "progress" will be reduced to generating tables of Lean statements and a probable/unprovable bit generated by AI.
But meanwhile we also have the scripts - one script to watch CI, one script to fetch comments (without dumping raw graphql into the agent), etc etc. Can't wait for this phase to end already
The more clear it is, the cheaper 30 year bonds become.
A counterexample to Kusner's conjecture on equilateral sets
Modern Standby is draining your laptop's battery, and Microsoft won't fix it
Edit: I think I misunderstood what you meant by memory bandwidth at first? Modules reduce the amount of work being done by the compiler in parsing and interpreting C++ code (think constexpr). Even if your compilation infrastructure is constrained by RAM access, modules replace a compute+RAM heavy part with a trivial amount of loading a module into compiler memory so it's a win.
Show HN: A Nextflow ↔ Python Integration Plugin
struct A { A(const volatile& A); };
as a class with a const copy constructor. Maybe someone cares?
Proper templated classes don't behave like this. If you manually define a copy constructor in a template class it has to work. And if it works only conditionally (like in many container classes) you need to add constraints on your constructors (>C++20) or derive from appropriately specialized base classes (e.g. std::_Optional_base in libstdc++).
It sucks to tell users "you're holding it wrong", but I don't think there's a way to make it simpler without breaking everything written since C++11.
https://stackoverflow.com/questions/43606777/why-is-class-wi...