Configuring OIDC Single Sign-on
Create OIDC directory in MetaDefender Core
- Sign in to MetaDefender Core.
- In the dashboard, click on
User Managementin the left sidebar. - In
User Managementpage, selectDirectoriestab and clickAdd Directoryin the top right corner.

- In
Add Directorypage, select OIDC asDirectory type, and enter a name for the new directory, such as MDCore-OIDC. - Enter
Host or IPwhere MetaDefender Core is hosted, for this example use https://127.0.0.1:8008. - Copy the string generated under
Login URLand store it as reply_uri.

Create Amazon Cognito user pool
- Access https://aws.amazon.com/cognito/v2/home and sign in with your account.
- On the main page, click
Create user pool.

- In
Step 1 - Configure sign-in experience, selectCognito user poolforProvider types.

- Tick
User name,Email, andAllow users to sign in with a preferred user name, then clickNext.

- In
Step 2 - Configure security requirements, selectNo MFAforMFA enforcement, leave all others as default , and clickNext.

- In
Step 3 - Configure sign-up experience, navigate toRequired attributesand add additional attributes: given_name, middle_name , and family_name. ClickNext.

- In
Step 4 - Configure message delivery, chooseSend email with Cognitoand clickNext.

- In
Step 5 - Integrate your app, enter the user pool name and tickUse the Cognito Hosted UI.

- Enter your domain to
Cognito domain.

- Under
Initial app clientsection, selectPublic clientforApp type, enterApp client name, and selectGenerate a client secretforClient secret.

- Under
Allowed callback URLssection, fill inURLbox with the value of reply_uri.

- Expand
Advanced app client settings, then stick to ALLOW_ADMIN_USER_PASSWORD_AUTH and ALLOW_USER_PASSWORD_AUTH forAuthentication flows.

- Navigate to
OpenID Connect scopesand addProfilescope.

- Click
Nextin the final review page and clickCreate user pool.
Create Amazon Cognito user
- In Amazon Cognito, click
User Poolsin the left sidebar and select the user pool that has been created. - In
Userstab, clickCreate User.

- Enter the user name, and optional email address; stick to
Set a password, and enter your temporary password. ClickCreate Userto complete.

Download and modify ODIC metadata
- Start your favorite web browser and enter a URL in the following format:
https://cognito-idp.{region_where user_pool_is_created}.amazonaws.com/{user_pool_id}/.well-known/openid-configuration, whereuser_pool_idcan be found inUser pool overview.

- Save the responded content to a file on disk.
- Open the file in your favorite editor.
- Add the following content to the beginning of the file, right after the first open brace.
"claims_supported": ["middle_name", "given_name", "family_name"],- Save the file.
claims_supported includes items that are selected for Required Attributes at step 6 of Create Amazon Cognito user pool stage.
Complete the configurations
- In Amazon Cognito, click on
User Poolsin the left sidebar and select the user pool that has been created. - In
App Integrationtab, navigate toApp Client listand select the app client that has been created.

- Copy
Client IDandClient Secret.

- Switch to MetaDefender Core, under
Service Provider, pasteClient IDandClient Secretfrom the previous step into their respective fields.

- In
Identity Provider, clickSubmit JSONbutton and upload the file that was modified in the previous stage. Wait a moment for MetaDefender Core to set Amazon Cognito as its IdP.

- Enter
User identified bywith ${given_name} and select the appropriate role.

- Click
Addto complete. - In
User Management, toggle the new directory. A dialog box will appear to confirm the action. OnceEnableis clicked, all sessions will be expired immediately.

Test the integration
- On the home screen of MetaDefender Core, click
Login; the user is redirected to Amazon Cognito page.

- Change the password, enter other required fields, and click
Send.

- If everything goes well, MetaDefender Core dashboard is displayed with the user identity in the top right corner.

- Otherwise, access backup login page at
<mdcore-host>#/public/backuploginfor trouble shooting.
