Merge pull request #3309 from bleathem/oidc-provider

Implement a generic OpenId-Connect auth-provider
This commit is contained in:
Ben Lambert
2020-11-23 15:10:23 +01:00
committed by GitHub
11 changed files with 520 additions and 6 deletions
+7
View File
@@ -22,9 +22,16 @@ import {
samlAuthApiRef,
microsoftAuthApiRef,
oneloginAuthApiRef,
oidcAuthApiRef,
} from '@backstage/core';
export const providers = [
{
id: 'oidc-auth-provider',
title: 'Oidc',
message: 'Sign In using OpenId Connect',
apiRef: oidcAuthApiRef,
},
{
id: 'google-auth-provider',
title: 'Google',
@@ -311,6 +311,20 @@ export const oauth2ApiRef: ApiRef<
description: 'Example of how to use oauth2 custom provider',
});
/**
* Provides authentication for custom OpenID Connect identity providers.
*/
export const oidcAuthApiRef: ApiRef<
OAuthApi &
OpenIdConnectApi &
ProfileInfoApi &
BackstageIdentityApi &
SessionApi
> = createApiRef({
id: 'core.auth.oidc',
description: 'Example of how to use oidc custom provider',
});
/**
* Provides authentication for saml based identity providers
*/
@@ -46,8 +46,11 @@ import {
SamlAuth,
oneloginAuthApiRef,
OneLoginAuth,
oidcAuthApiRef,
} from '@backstage/core-api';
import OAuth2Icon from '@material-ui/icons/AcUnit';
export const defaultApis = [
createApiFactory({
api: discoveryApiRef,
@@ -153,4 +156,21 @@ export const defaultApis = [
factory: ({ discoveryApi, oauthRequestApi }) =>
OneLoginAuth.create({ discoveryApi, oauthRequestApi }),
}),
createApiFactory({
api: oidcAuthApiRef,
deps: {
discoveryApi: discoveryApiRef,
oauthRequestApi: oauthRequestApiRef,
},
factory: ({ discoveryApi, oauthRequestApi }) =>
OAuth2.create({
discoveryApi,
oauthRequestApi,
provider: {
id: 'oidc',
title: 'Your Identity Provider',
icon: OAuth2Icon,
},
}),
}),
];