Onboarding: Microsoft Entra ID ================================ Your Airflow instance can be secured either through the platform's shared Keycloak realm (see :doc:`../sovereign-data-platform/getting-started`), or, if your organization prefers to manage access from its own Azure tenant, through **Microsoft Entra ID** directly. Here's how to onboard Entra ID. .. container:: entra-i18n :name: entra-i18n .. container:: :name: entra-i18n-label Customer name .. container:: :name: entra-i18n-placeholder e.g. acme .. container:: :name: entra-i18n-copy Copy .. container:: :name: entra-i18n-copied Copied .. container:: :name: entra-i18n-prefix Your Airflow URL: .. container:: :name: entra-i18n-dev Dev .. container:: :name: entra-i18n-prod Prod .. raw:: html

Prerequisites -------------- Onboarding must be done by an administrator holding the Azure role **Cloud Application Administrator** in your organization's tenant. Onboarding instructions -------------------------- 1. Open your Airflow URL — ``https://.airflow.datafoundation.eu``. This shows the sign-in screen: .. image:: /_static/img/entra-id-onboarding/01-sign-in-screen.png :alt: Airflow sign-in screen with a "Sign In with azure" button :width: 700px 2. Click **Sign In with azure**. Choose the account with the **Cloud Application Administrator** role. 3. Select the checkbox **Consent on behalf of your organization**, then click **Accept** to grant the permissions request: .. image:: /_static/img/entra-id-onboarding/02-consent-on-behalf-of-organization.png :alt: Microsoft permissions-requested dialog with "Consent on behalf of your organization" checked :width: 700px 4. After this first login, Airflow shows **403 Forbidden**. That's expected, since the account doesn't have any role assigned within Airflow yet: .. image:: /_static/img/entra-id-onboarding/03-403-forbidden.png :alt: Airflow welcome page showing a 403 Forbidden error in the History panel :width: 700px 5. Open `portal.azure.com `_ using the same **Cloud Application Administrator** account. Open **Microsoft Entra ID**, then **Enterprise Applications**: .. image:: /_static/img/entra-id-onboarding/04-entra-id-enterprise-applications.png :alt: Microsoft Entra ID Overview page with Enterprise applications highlighted in the sidebar :width: 700px 6. Search for **airflow**, click the Airflow application, then click **Manage** → **Users and groups**: .. image:: /_static/img/entra-id-onboarding/05-users-and-groups.png :alt: Enterprise applications search results showing the airflow application :width: 700px 7. Your account has the role **Default Access** (see "Role assigned"). Select the checkbox for the user, then click **Edit assignment**: .. image:: /_static/img/entra-id-onboarding/06-edit-assignment.png :alt: Users and groups page for the airflow enterprise application, with Edit assignment highlighted :width: 700px .. image:: /_static/img/entra-id-onboarding/07-edit-assignment-panel.png :alt: Edit Assignment panel with "Select a role" showing None Selected :width: 500px 8. Select the **Airflow Admin** role for your **Cloud Application Administrator** account: .. image:: /_static/img/entra-id-onboarding/08-select-airflow-admin-role.png :alt: Select a role panel listing the Airflow Admin and Airflow Users app roles :width: 700px .. note:: A user can hold multiple roles. **Airflow Users** is a subset of **Airflow Admin**. 9. To force role synchronization, log out of the Airflow application after the role assignment: .. image:: /_static/img/entra-id-onboarding/09-logout-airflow.png :alt: Airflow user menu with Logout highlighted :width: 500px 10. Wait a few minutes, then log back into Airflow at ``https://.airflow.datafoundation.eu``. Role synchronization can take up to 15 minutes; once it completes and you've re-logged in, the 403 Forbidden error is gone: .. image:: /_static/img/entra-id-onboarding/10-successful-login.png :alt: Airflow Dags page loading successfully with no errors :width: 700px 11. Assign the **Airflow User** role to the rest of the Airflow developers in your organization the same way, directly in the Azure portal (preferably via a user group). See :doc:`permissions` for what each role can do and how to manage assignments afterwards.