Azure
Spinnaker supports OAuth 2.0 for authentication with Azure.
This page instructs you on how to obtain an OAuth 2.0 client ID and client secret for use with your Microsoft Azure tenant. More extensive documentation is available on Microsoft’s site .
Setting up an Azure Application Registration
- Navigate to https://portal.azure.com and log in with your Azure credentials.
- On the left hand navigation pane, click “Azure Active Directory” –> “App registrations”.
- Click “New application registration”, and fill in the details:
- Name of the application: (eg Spinnaker),
- Application type: Web app / API
- Sign-on URL:
https://localhost:8084/login/oauth2/code/azure(replace localhost with your Gate address if known, andhttpswithhttpif appropriate). For Spinnaker below v2025.2.0, it should be justhttps://localhost:8084/login - Click “Create”
- Note the “Application ID”, this is the client ID. Copy it to a safe place.
- Click “Settings” -> “Keys”. Under “Passwords”, add a Key Description (eg Spinnaker), set the expiry and then click “Save”. “Value” will now be populated. This is your client secret; copy it to a safe place.
Configure Gate
Current configurations
Add the following to gate-local.yml. Note the Tenant ID of your organization is required for Azure OAuth 2.0 login. To
obtain it:
- Navigate to https://portal.azure.com and log in with your Azure credentials.
- On the left hand navigation pane, click “Azure Active Directory” –> “Properties”.
- “Directory ID” is your Tenant ID.
In order to pass the Tenant ID to gate, set it in the issuer-uri below
spring:
security:
oauth2:
client:
registration:
azure:
client-id: ${AZURE_CLIENT_ID}
client-secret: ${AZURE_CLIENT_SECRET}
scope: openid, profile, email
authorization-grant-type: authorization_code
redirect-uri: "{baseUrl}/login/oauth2/code/azure"
provider:
azure:
issuer-uri: https://login.microsoftonline.com/${AZURE_TENANT_ID}/v2.0
For old versions of spinnaker, these would be added to gate-local.yml. These no longer work as of 2025.2.0
REMINDER: These configuration properties are no longer used in current releases. See the 2025.2.0 release notes for information on migrating to a current configuration like the above example
security:
authn:
oauth2:
enabled: true
client:
clientId: # client ID from above
clientSecret: # client secret from above
accessTokenUri: https://login.microsoftonline.com/${azureTenantId}/v2.0/oauth2/token
userAuthorizationUri: https://login.microsoftonline.com/${azureTenantId}/v2.0/oauth2/authorize
clientAuthenticationScheme: query
scope: profile
# You may want to restrict access to your Spinnaker by adding
# userInfoRequirements to further restrict access beyond beyond simply
# requiring that users have a valid account in your Azure AD Tenant.
userInfoRequirements: {}
resource:
userInfoUri: https://graph.windows.net/v1.0/me
userInfoMapping:
email: userPrincipalName
firstName: givenName
lastName: surname
provider: AZURE
Last modified April 17, 2026: chore(docs): Redo install docs off of halyard (#591) (c7a31a6)