After setting up SAML in Gemfury, configure your IdP with the Gemfury service provider details.
Required Settings
All IdPs need these values (replace PROVIDER_ID with your assigned identifier):
ACS URL: https://manage.fury.io/auth/saml/PROVIDER_ID/callback
Entity ID: https://manage.fury.io/auth/saml/PROVIDER_ID
When providing metadata to Gemfury, provide the Metadata XML content.
Metadata URLs and manual configuration are not yet supported.
Okta
- Go to Applications → Create App Integration
- Select SAML 2.0
- Configure SAML settings:
- Single Sign-On URL:
https://manage.fury.io/auth/saml/PROVIDER_ID/callback
- Audience URI:
https://manage.fury.io/auth/saml/PROVIDER_ID
- Name ID format: EmailAddress
- Add attribute statement:
- Name:
email
- Value:
user.email
- Under SAML Settings → Advanced Settings, ensure:
-
Response is set to Signed
-
Assertion Signature is set to Signed
- Assign users or groups to the application
- Go to Sign On tab and download metadata XML (click View SAML setup instructions or
Identity Provider metadata)
Microsoft Entra ID (Azure AD)
- Go to Enterprise Applications → New Application
- Select Create your own application (Non-gallery)
- Go to Single sign-on → SAML
- Edit Basic SAML Configuration:
- Identifier:
https://manage.fury.io/auth/saml/PROVIDER_ID
- Reply URL:
https://manage.fury.io/auth/saml/PROVIDER_ID/callback
- Verify Attributes & Claims includes email (typically
user.mail or user.userprincipalname)
- Under SAML Certificates, click Edit and set Signing Option to
Sign SAML response and assertion
- Download Federation Metadata XML
Google Workspace
- Go to Admin Console → Apps → Web and mobile apps → Add app
- Select Add custom SAML app
- Enter app name (e.g., “Gemfury”)
- Configure Service Provider details:
- ACS URL:
https://manage.fury.io/auth/saml/PROVIDER_ID/callback
- Entity ID:
https://manage.fury.io/auth/saml/PROVIDER_ID
- Name ID format: EMAIL
- Name ID: Basic Information > Primary email
- Map attributes:
- Under Service Provider Details, ensure Signed response is checked
- Save the application, then download IdP metadata (available on the app details page)
- Enable the app for your organizational unit
Testing
Test both authentication flows to ensure complete configuration:
…
Gemfury uses just-in-time provisioning: users are added to your organization when they first log
in through your IdP. No manual invitation is required, but users must initiate login themselves.
How It Works
When a user logs in through your SAML provider for the first time:
- Gemfury validates the SAML assertion
- Creates or links their Gemfury account
- Adds them to your organization with the default role
Subsequent logins authenticate the user without changing their membership or role.
…
Common issues and solutions for SAML authentication.
Error Messages
| Error |
Cause |
Solution |
| Unauthorized |
Provider not active |
Contact support to activate your provider |
| Login expired |
Session timeout or clock drift |
Re-initiate SAML login; check server time sync |
| Invalid credentials |
Assertion validation failed |
See detailed causes below |
Invalid Credentials — Detailed Causes
This error indicates SAML assertion validation failed. Check these items in order:
-
Unsigned assertion — Assertions must be signed. Verify signing is enabled in your IdP
(see IdP Configuration)
-
Signature algorithm mismatch — Gemfury supports SHA-256. If your IdP uses SHA-1, update
to SHA-256
-
Expired assertion — Assertion timestamp outside validity window. Check clock synchronization
-
Audience mismatch — Entity ID in IdP doesn’t match
https://manage.fury.io/auth/saml/PROVIDER_ID
-
Missing email attribute — Assertion must include
email attribute
-
Name ID format mismatch — Verify Name ID format matches your Gemfury configuration
-
Certificate mismatch — IdP certificate was rotated but metadata wasn’t updated in Gemfury
Configuration Issues
Assertions Not Signed
Gemfury requires signed SAML assertions. In your IdP settings, enable:
…