ma1sd - Federated Matrix Identity Server
- Use cases
- Getting Started
- Powered by ma1sd
- Migration from mxisd
- This project is a fork of the https://github.com/kamax-matrix/mxisd which has been archived and no longer supported. *
ma1sd is a Federated Matrix Identity server for self-hosted Matrix infrastructures with enhanced features. As an enhanced Identity service, it implements the Identity service API and several extra features that greatly enhance user experience within Matrix. It is the one stop shop for anything regarding Authentication, Directory and Identity management in Matrix built in a single coherent product.
ma1sd is specifically designed to connect to an existing on-premise Identity store (AD/Samba/LDAP, SQL Database,
Web services/app, etc.) and ease the integration of a Matrix infrastructure within an existing one.
Check our FAQ entry to know if ma1sd is a good fit for you.
The core principle of ma1sd is to map between Matrix IDs and 3PIDs (Third-Party IDentifiers) for the Homeserver and its users. 3PIDs can be anything that uniquely and globally identify a user, like:
- Email address
- Phone number
- Skype/Live ID
- Twitter handle
- Facebook ID
If you are unfamiliar with the Identity vocabulary and concepts in Matrix, please read this introduction.
- Search for people by 3PID using its own Identity stores (Spec)
- Invite people to rooms by 3PID using its own Identity stores, with notifications to the invitee (Email, SMS, etc.) (Spec)
- Allow users to add/remove 3PIDs to their settings/profile via 3PID sessions (Spec)
- Register accounts on your Homeserver with 3PIDs (Spec)
As an enhanced Identity service:
- Federation: Use a recursive lookup mechanism when searching and inviting people by 3PID,
allowing to fetch data from:
- Own Identity store(s)
- Federated Identity servers, if applicable to the 3PID
- Arbitrary Identity servers
- Central Matrix Identity servers
- Session Control: Extensive control of where 3PIDs are transmitted so they are not leaked publicly by users
- Registration control: Control and restrict user registration based on 3PID patterns or criterias, like a pending invite
- Authentication: Use your Identity stores to perform authentication in synapse via the REST password provider
- Directory search which allows you to search for users within your organisation, even without prior contact within Matrix using arbitrary search terms
- Auto-fill of user profile (Display name, 3PIDs)
- Bridge Integration: Automatically bridge users without a published Matrix ID
- Use your existing Identity stores, do not duplicate your users information
- Auto-fill user profiles with relevant information
- As an organisation, stay in control of your data so it is not published to other servers by default where they currently cannot be removed
- Users can directly find each other using whatever attribute is relevant within your Identity store
- Federate your Identity server so you can discover others and/or others can discover you
Also, check our FAQ entry to know if ma1sd is a good fit for you.
See the dedicated document
A basic troubleshooting guide is available here.
Sorry, I cannot provide commercial support (at least now). But always try to help you.
Don't hesitate to ask about project and feel free to create issues at https://github.com/ma1uta/ma1sd
You can contribute as a community member by:
- Giving us feedback about your usage of ma1sd, even if it seems unimportant or if all is working well!
- Opening issues for any weird behaviour or bug. ma1sd should feel natural, let us know if it does not!
- Helping us improve the documentation: tell us what is good or not good (in an issue or in Matrix), or make a PR with changes you feel improve the doc.
- Contribute code directly: we love contributors! All your contributions will be licensed under AGPLv3.
Powered by ma1sd
The following projects can use ma1sd under the hood for some or all their features. Check them out!
See the dedicated document
Migration from mxisd
See the migration guide
Get in touch via:
- Matrix: #ma1sd:ru-matrix.org