-
Notifications
You must be signed in to change notification settings - Fork 347
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Support regional ESTS (ests-r) #2508
Comments
What about, for the detection: string region = await ConfidentialClientApplication.AutoDetectRegion(); |
To be able to send telemetry on if we auto detect correctly or not, the region returned by the detector could even contain a character (an exclamation mark at the end?), to signify that the region was auto detected. And of course, .WithRegion would remember it was auto-detected, and trim the extra character and use the region |
string region = await ConfidentialClientApplication.AutoDetectRegion(LogCallback);
The alternative would be to have a static variable that captures this. |
for the cca options, something like For the detection, what if this comes to pca? do we want something that is more generalized? if not, i think the above looks good. |
After I wrote out thoughts below, I guess I'm leaning to a solution that's similar to what we have now. I guess I'm not a huge fan of having to call
2 In the simple scenario code snippet, is calling a
3 |
Thanks @pmaytak for the feedback. After playing around with the idea for a while, I realized that it's very inconvenient to introduce new top-level options in MSAL, because those objects need logging, HTTP stack etc. all of which are configurable in our Application objects. So having a top-level option would be like: RegionDiscovery.GetRegionAsynz(LogCallback logger, IHttpClientFactory httpClientFactory); This is too complicated, so went back to |
From an outsiders perspective how does failover work w.r.t. a regional outage? |
@henrik-me is probably the best to answer this.
|
@jabbera : Not sure exactly what you mean. Can you please provide more context to the question? Region means the traffic will stay in the region, thus impacts from other regions or even global will not impact a service running in a another region. |
@henrik-me the scenario described assumes that Azure AD and the region will always fail together. Is it possible for Azure AD in EastUS2 (EU2) to have an outage but the region itself would still be up? In that case don't want to be glued to only EU2 for my azure ad auth. I don't know how the Azure AD network is designed, but if {region}.microsoft.com had a GTM with primary\hot standby (in central or something) in front of it my hypothetical scenario may not be an issue. |
@jabbera, thanks for the added details to your question. Networking issues including DNS issues are not covered with this change, for DNS and network handling we allow you to pass in a HttpClientFactory where you can do what is right for your service to mitigate those issues (e.g. small outages to DNS would typically not be felt as DNS is cached on the node and only refreshed at certain intervals, you can decide which interval would be the right for your scenario). Two other perspectives that regional and MSAL in general helps with for the scenario you are describing is:
Hope this helped bring some perspectives to the question you raised. Please also feel free to share what you believe should happen and how it can be done. |
Problem
AAD is adding support for regional STS (ESTSR). Currently only S2S (client_credentials) flow and available via opt-in (1st party only for now). Although a DNS-only solution is preferred, this is not practical. The client SDK needs to help route the traffic to the regional authority.
Goals
Proposal
Behavior
The text was updated successfully, but these errors were encountered: