Skip to content

Commit 4c632c8

Browse files
committed
Linux broker needs a specific redirect_uri
A recent customer troubleshooting case reveals that the Linux broker needs a specific redirect_uri as its prerequisite
1 parent db1c384 commit 4c632c8

File tree

2 files changed

+19
-15
lines changed

2 files changed

+19
-15
lines changed

msal/application.py

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1948,8 +1948,6 @@ def __init__(
19481948
19491949
.. note::
19501950
1951-
You may set enable_broker_on_windows and/or enable_broker_on_mac and/or enable_broker_on_linux and/or enable_broker_on_wsl to True.
1952-
19531951
**What is a broker, and why use it?**
19541952
19551953
A broker is a component installed on your device.
@@ -1967,22 +1965,26 @@ def __init__(
19671965
so that your broker-enabled apps (even a CLI)
19681966
could automatically SSO from a previously established signed-in session.
19691967
1970-
**You shall only enable broker when your app:**
1968+
**How to opt in to use broker?**
19711969
1972-
1. is running on supported platforms,
1973-
and already registered their corresponding redirect_uri
1970+
1. You can set any combination of the following opt-in parameters to true:
19741971
1975-
* ``ms-appx-web://Microsoft.AAD.BrokerPlugin/your_client_id``
1976-
if your app is expected to run on Windows 10+
1977-
* ``msauth.com.msauth.unsignedapp://auth``
1978-
if your app is expected to run on Mac
1979-
* ``ms-appx-web://Microsoft.AAD.BrokerPlugin/your_client_id``
1980-
if your app is expected to run on Linux, especially WSL
1972+
+--------------------------+-----------------------------------+------------------------------------------------------------------------------------+
1973+
| Opt-in flag | If app will run on | App has registered this as a Desktop platform redirect URI in Azure Portal |
1974+
+==========================+===================================+====================================================================================+
1975+
| enable_broker_on_windows | Windows 10+ | ms-appx-web://Microsoft.AAD.BrokerPlugin/your_client_id |
1976+
+--------------------------+-----------------------------------+------------------------------------------------------------------------------------+
1977+
| enable_broker_on_wsl | WSL | ms-appx-web://Microsoft.AAD.BrokerPlugin/your_client_id |
1978+
+--------------------------+-----------------------------------+------------------------------------------------------------------------------------+
1979+
| enable_broker_on_mac | Mac with Company Portal installed | msauth.com.msauth.unsignedapp://auth |
1980+
+--------------------------+-----------------------------------+------------------------------------------------------------------------------------+
1981+
| enable_broker_on_linux | Linux with Intune installed | ``https://login.microsoftonline.com/common/oauth2/nativeclient`` (MUST be enabled) |
1982+
+--------------------------+-----------------------------------+------------------------------------------------------------------------------------+
19811983
1982-
2. installed broker dependency,
1984+
2. Install broker dependency,
19831985
e.g. ``pip install msal[broker]>=1.33,<2``.
19841986
1985-
3. tested with ``acquire_token_interactive()`` and ``acquire_token_silent()``.
1987+
3. Test with ``acquire_token_interactive()`` and ``acquire_token_silent()``.
19861988
19871989
**The fallback behaviors of MSAL Python's broker support**
19881990

msal/broker.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,10 @@ def _convert_error(error, client_id):
6060
or "AADSTS7000218" in context # This "request body must contain ... client_secret" is just a symptom of current app has no WAM redirect_uri
6161
):
6262
raise RedirectUriError( # This would be seen by either the app developer or end user
63-
"MsalRuntime needs the current app to register these redirect_uri "
64-
"(1) ms-appx-web://Microsoft.AAD.BrokerPlugin/{} (2) {}".format(
63+
"""MsalRuntime needs the current app to register these redirect_uri
64+
(1) ms-appx-web://Microsoft.AAD.BrokerPlugin/{}
65+
(2) {}
66+
(3) https://login.microsoftonline.com/common/oauth2/nativeclient""".format(
6567
client_id, _redirect_uri_on_mac))
6668
# OTOH, AAD would emit other errors when other error handling branch was hit first,
6769
# so, the AADSTS50011/RedirectUriError is not guaranteed to happen.

0 commit comments

Comments
 (0)