Skip to content

Add doc about linux broker on dotnet scenario #646

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 39 commits into
base: main
Choose a base branch
from

Conversation

xinyuxu1026
Copy link

No description provided.

This comment was marked as outdated.

This comment was marked as outdated.

Copy link
Contributor

Learn Build status updates of commit 83ccb15:

✅ Validation status: passed

File Status Preview URL Details
msal-dotnet-articles/acquiring-tokens/desktop-mobile/linux-broker-net.md ✅Succeeded View

For more details, please refer to the build report.

For any questions, please:


## Dependency

To use the broker, you will need to install a list of dependencies on Linux platform

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we also include a step that explains how to install msalruntime nuget package for linux as it is a necessary step for broker support

This comment was marked as outdated.

Copy link
Contributor

Learn Build status updates of commit d83a3a4:

✅ Validation status: passed

File Status Preview URL Details
msal-dotnet-articles/acquiring-tokens/desktop-mobile/linux-broker-net.md ✅Succeeded View

For more details, please refer to the build report.

For any questions, please:

Copy link
Contributor

Learn Build status updates of commit 4a28d7e:

✅ Validation status: passed

File Status Preview URL Details
msal-dotnet-articles/acquiring-tokens/desktop-mobile/linux-broker-net.md ✅Succeeded View

For more details, please refer to the build report.

For any questions, please:

Copy link
Contributor

Learn Build status updates of commit 23e7903:

✅ Validation status: passed

File Status Preview URL Details
msal-dotnet-articles/acquiring-tokens/desktop-mobile/linux-broker-net.md ✅Succeeded View

For more details, please refer to the build report.

For any questions, please:


## Prerequisites

To use the broker, you'll need to install a list of dependencies on the Linux platform:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should also note/link to the user on the fact that dotnet is required to be installed for the sample. Perhaps we can consolidate a "prep step" that calls out below:

sudo apt install seahorse libx11-dev

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Justin, I added the .net installation part and the version requirement, could you help take a look again? Thanks

Copy link
Contributor

Learn Build status updates of commit 934edbc:

💡 Validation status: suggestions

File Status Preview URL Details
msal-dotnet-articles/acquiring-tokens/desktop-mobile/linux-broker-net.md 💡Suggestion View Details
msal-dotnet-articles/media/msal-net-linux/password-keyring-seahorse.png ✅Succeeded View

msal-dotnet-articles/acquiring-tokens/desktop-mobile/linux-broker-net.md

  • Line 28, Column 311: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://learn.microsoft.com/dotnet/core/install/linux-ubuntu-decision#register-the-microsoft-package-repository' will be broken in isolated environments. Replace with a relative link.
  • Line 28, Column 488: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://learn.microsoft.com/dotnet/core/install/linux-ubuntu-decision#dependencies' will be broken in isolated environments. Replace with a relative link.

For more details, please refer to the build report.

Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.

For any questions, please:

Copy link
Contributor

Learn Build status updates of commit ddffeae:

✅ Validation status: passed

File Status Preview URL Details
msal-dotnet-articles/acquiring-tokens/desktop-mobile/linux-broker-net.md ✅Succeeded View
msal-dotnet-articles/media/msal-net-linux/password-keyring-seahorse.png ✅Succeeded View

For more details, please refer to the build report.

For any questions, please:

Copy link
Contributor

Learn Build status updates of commit 749cb8d:

✅ Validation status: passed

File Status Preview URL Details
msal-dotnet-articles/acquiring-tokens/desktop-mobile/linux-broker-net.md ✅Succeeded View
msal-dotnet-articles/media/msal-net-linux/password-keyring-seahorse.png ✅Succeeded View

For more details, please refer to the build report.

For any questions, please:

Copy link
Contributor

Learn Build status updates of commit 65ce187:

✅ Validation status: passed

File Status Preview URL Details
msal-dotnet-articles/acquiring-tokens/desktop-mobile/linux-broker-net.md ✅Succeeded View
msal-dotnet-articles/media/msal-net-linux/choose-password.png ✅Succeeded View
msal-dotnet-articles/media/msal-net-linux/close-keyring-window.png ✅Succeeded View
msal-dotnet-articles/media/msal-net-linux/create-keyring-named-login.png ✅Succeeded View
msal-dotnet-articles/media/msal-net-linux/password-keyring-seahorse.png ✅Succeeded View

For more details, please refer to the build report.

For any questions, please:

Copy link
Contributor

Learn Build status updates of commit b5c37a3:

✅ Validation status: passed

File Status Preview URL Details
msal-dotnet-articles/acquiring-tokens/desktop-mobile/linux-broker-net.md ✅Succeeded View
msal-dotnet-articles/media/msal-net-linux/choose-password.png ✅Succeeded View
msal-dotnet-articles/media/msal-net-linux/close-keyring-window.png ✅Succeeded View
msal-dotnet-articles/media/msal-net-linux/create-keyring-named-login.png ✅Succeeded View
msal-dotnet-articles/media/msal-net-linux/password-keyring-seahorse.png ✅Succeeded View

For more details, please refer to the build report.

For any questions, please:

Comment on lines +19 to +20
> [!NOTE]
> Microsoft single sign-on (SSO) for Linux authentication broker support is introduced with `Microsoft.Identity.Client` version v4.69.1.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this note should be removed. Instead, add the following .NET CLI commands to the Prereqs section below with minimum required versions:

dotnet add package Microsoft.Identity.Client
dotnet add package Microsoft.Identity.Client.Broker


## Prerequisites

MSAL.NET project requires .NET version greater or equal than the version specified in [global.json](https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/blob/main/global.json) file, we recommend register the Microsoft package repository and install .NET, please follow the instructions here: [Install .NET on Ubuntu](/dotnet/core/install/linux-ubuntu-decision#register-the-microsoft-package-repository). And please make sure you have all the [.NET required dependencies](/dotnet/core/install/linux-ubuntu-decision#dependencies) installed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It isn't clear to me why I should care about what the MSAL.NET project requires.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the part in which it recommends registering the Microsoft Package Repo and install .NET from it, cause Ubuntu has its own feed and it took me a while to install net8.0.4.

}
```

We recommend play with the sample app using your client id. To run the sample app, use the following command:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
We recommend play with the sample app using your client id. To run the sample app, use the following command:
We recommend playing with the sample app using your client ID. To run the sample app, use the following command:

On Debian-based distributions, you can install the package by running `sudo apt install seahorse` and then following these instructions:

1. Run `seahorse` in the terminal.
2. In the top left corner, click **+** and create **Password** keyring.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
2. In the top left corner, click **+** and create **Password** keyring.
2. In the top left corner, select **+** and create **Password** keyring.

Using an authentication broker on Linux enables you to simplify how your users authenticate with Microsoft Entra ID from your application, as well as take advantage of future functionality that protects Microsoft Entra ID refresh tokens from exfiltration and misuse.

Authentication brokers are **not** pre-installed on Linux but is bundled as a dependency of applications developed by Microsoft, such as [Company Portal](/mem/intune-service/user-help/enroll-device-linux). These applications are usually installed when a Linux computer is enrolled in a company's device fleet via an endpoint management solution like [Microsoft Intune](/mem/intune/fundamentals/what-is-intune). To learn more about Linux device set up with the Microsoft Identity Platform, refer to [Microsoft Enterprise SSO plug-in for Apple devices](/entra/identity-platform/apple-sso-plugin).
An authentication broker is **not** pre-installed on standalone Linux but is bundled as a dependency of applications developed by Microsoft, such as [Company Portal](/mem/intune-service/user-help/enroll-device-linux). These applications are usually installed when a Linux computer is enrolled in a company's device fleet via an endpoint management solution like [Microsoft Intune](/mem/intune/fundamentals/what-is-intune). For [Windows Subsystem for Linux](/windows/wsl/about) (WSL) scenario, WAM (Windows Account Manager) is used as the broker. WAM does come pre-installed on the Windows system. To learn more about Linux device set up with the Microsoft Identity Platform, see [Microsoft Enterprise SSO plug-in for Apple devices](/entra/identity-platform/apple-sso-plugin).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To learn more about Linux device set up with the Microsoft Identity Platform, see Microsoft Enterprise SSO plug-in for Apple devices.

Could you clarify how this doc for Apple devices is helpful for Linux machines?


## Prerequisites

MSAL.NET project requires .NET version greater or equal than the version specified in [global.json](https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/blob/main/global.json) file, we recommend register the Microsoft package repository and install .NET, please follow the instructions here: [Install .NET on Ubuntu](/dotnet/core/install/linux-ubuntu-decision#register-the-microsoft-package-repository). And please make sure you have all the [.NET required dependencies](/dotnet/core/install/linux-ubuntu-decision#dependencies) installed.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the part in which it recommends registering the Microsoft Package Repo and install .NET from it, cause Ubuntu has its own feed and it took me a while to install net8.0.4.

```

### Set up Keyring in WSL
We use libsecret on Linux and it needs to communicate with keyring daemon. Users can use `seahorse`(gnome GUI) package to manage the keyring with a user interface. You need to first install the package by `apt install seahorse` and then follow the instructions below.
MSAL uses `libsecret` on Linux. It is required to communicate with the `keyring` daemon. Users can use [Seahorse](https://wiki.gnome.org/Apps/Seahorse/) (a GNOME application for managing encryption keys and passwords) to manage the `keyring` contents through a Graphical User Interface (GUI).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It could be helpful to add more details on how Keyring plays a role with the library and WAM. Keyring might be confused with WAM in some way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants