Microsoft Azure AD (AAD) is a Directory-as-a-Service provided by Azure. Zeplin's SAML SSO and user provisioning with SCIM are confirmed to work with AAD.
☝️ This feature is only available to teams on the Enterprise Plan.
Before you begin
AAD does not generate application details (needed by Zeplin) until it has Zeplin-generated values (which need AAD data to generate). You will need to contact us at email@example.com to have us manually generate and supply your specific SSO URL and SP EntityID.
Select Azure Active Directory in the main navigation panel
Select Enterprise Applications from the subcategory panel
Click the “+ Create your own application” link, and add a Non-gallery application.
Click on Setup single sign on in the Getting Started section, and select SAML.
In Section 1 (Basic SAML Configuration):
Enter the SP EntityID we gave you into the Azure field Identifier (Entity ID)
Enter the SSO URL we gave you into the Azure field Reply URL (Assertion Consumer Service URL)
In Section 2 (Attributes & Claims), select [ + Add new claim ] and add an attribute:
- Name: email
- Namespace: leave blank
- Source: user.mail
In Section 3 (SAML Signing Certificate), click to Download Certificate (Base64)
Don’t click Test just yet.
From the Organization Dashboard, click the settings button on the top right to access Settings, and select the AUTHENTICATION tab.
In the SAML 2.0 section, click on the “Enable” button
In the Zeplin popup:
- Copy the string from the AAD field Login URL into the Zeplin field IdP SAML 2.0 Endpoint
- Copy the string from the AAD field Azure AD Identifier into the Zeplin field IDP Issuer
- Copy the contents of the AAD SAML Signing Certificate you downloaded into the Zeplin field IdP Public Certificate
Click on the “Enable” button
Click on the “Download SAML 2.0 metadata”
Back in Azure:
At the top of the screen, click on the “Upload metadata file” button and upload the file just downloaded from Zeplin
Click on the “Validate this application”
Confirm everything works!
Go to the Zeplin login page, and click the link that says Login with SSO (or go directly to https://app.zeplin.io/login/sso). Enter the email address of an existing Zeplin user. You should redirect to your AAD IdP to authenticate, then back to that user's Project page.
Your company may have policies in place that will require the Zeplin app to first be assigned to users. Generally, this is via AAD “Users and Groups” in Enterprise Applications (from the subcategory panel). Select the appropriate Group in AAD, and assign the Zeplin application and specific users if required.
When it is confirmed users can log in with SAML, you can restrict login to be via SAML only for all users in your domain by setting Require SSO on the AUTHENTICATION tab in Zeplin.
- Don't Require: Users can continue to log in with username/password or SSO
- Require for All Members: Users in your domain who try to log in with username/password will be redirected to your IdP instead.
For safety, the Owner will still be able to log in using their username/password even if this option is set to Require.
You can specify a Session timeout. Zeplin will check with your IdP at the shorter period of this setting and the Session Duration as sent by your IdP (if it sends one) to verify the user is still authenticated.
You can choose to Allow inviting users from different domains. If not ticked, only users with an email address in your domain will be permitted to be invited to the Workspace.
User Provisioning with SCIM
AAD can autoprovision users in Zeplin using the SCIM protocol. See the article User Provisioning With SCIM for configuration information. In AAD, the SCIM integration is configured and enabled by selecting Provisioning in the right sidebar menu when configuring an Application.
Extra information for AAD users
AAD does not send the session duration value in its SAML assertion. Zeplin will expire and attempt session re-authentication only at the duration chosen in the Zeplin setting Session Timeout, on the AUTHENTICATION tab in Zeplin’s Organization settings. The default value is to never log out the user.
AAD can optionally sign the Assertion. Zeplin will verify the signature against the AAD-generated IdP Public Certificate.
By default, AAD does not encrypt the Assertion. Zeplin will accept unencrypted assertions, and also assertions encrypted with the Zeplin-generated x.509 certificate (uploaded as part of the Zeplin SP metadata). Zeplin can decrypt all of the ciphers that AAD supports.