Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/JuliusAngwenyi/SitecoreHostPlugins

A repository for Sitecore Host Plugins
https://github.com/JuliusAngwenyi/SitecoreHostPlugins

Last synced: 3 months ago
JSON representation

A repository for Sitecore Host Plugins

Lists

README

        

# Sitecore Host Plugins
A repository for Sitecore Host Plugins

## Introduction
For background information about what is a Sitecore Host and Host Plugins, refer to [Sitecore Host Part one](https://360agileweb.wordpress.com/2020/02/26/sitecore-host-part-one/) blog post.

In this repository, we have the following Sitecore Host Plugins for extending [Sitecore Identity Server](https://360agileweb.wordpress.com/2020/02/28/sitecore-host-part-three/)
1. Avanade.Plugin.IdentityProvider.Ids4Demo
2. Avanade.Plugin.IdentityProvider.Ids4Adfs
3. Avanade.Plugin.IdentityProvider.Ids4WsFederation
4. Avanade.Plugin.IdentityProvider.Ids4Facebook

### 1. Avanade.Plugin.IdentityProvider.Ids4Demo
This plugin will extend Sitecore Identity Server to with [IdentityServer4 Demo](https://demo.identityserver.io/) provider

### 2. Avanade.Plugin.IdentityProvider.Ids4Adfs
This plugin will extend Sitecore Identity Server with Active Directory Open ID Connect provider

### 3. Avanade.Plugin.IdentityProvider.Ids4WsFederation
This plugin will extend Sitecore Identity Server with Active Directory Federation Services provider

### 4. Avanade.Plugin.IdentityProvider.Ids4Facebook
This plugin will extend Sitecore Identity Server with external Facebook external login

## Installation
You need to Add the Sitecore Identity NuGet Feed to Visual Studio to Build this Project

Tools -> Package Manager Settings -> Package Sources
Add the [Following Feed](https://sitecore.myget.org/F/sc-identity/api/v3/index.json)

## Deploying Host Plug Manually

Plugins are distributed as Nuget packages. To add a plugin to a host application so that it is loaded at runtime, the plugin must be unpacked and have its assets copied to the correct locations.

### 1. Create an environment folder
If you do not have one already, you need to create an environment folder under the sitecoreruntime folder. A Sitecore Host application will default its environment to Production. Unless a different environment is supplied at startup (via the --env command) it will look for the production folder first:

For example:  hostapp/sitecoreruntime/production

### 2. Create a plugin folder

You need to create a folder for the plugin (in our case name it Avanade.Plugin.IdentityProvider.Ids4WsFederation) . This is where the plugin manifest, assets and configuration are located. This is located inside the sitecore folder, which is inside an individual environment folder

The sitecoreruntime/<env>/sitecore folder does not override files in the hosts sitecore folder. This is a unique folder used for loading plugin assets.

Runtime environment folders cannot contain a sitecoreruntime folder of their own.

### 3. Unpack plugin data from a Nuget package and deploy it

We have our plugin named Avanade.Plugin.IdentityProvider.Ids4WsFederation.1.0.0.nupkg

Unpack the plugin contents. You will notice our package contains special sitecore directory in the root of the nupkg package with additional things inside it. Everything else is the standard Nuget structure.

Copy the contents of the Nuget sitecore folder to the plugin folder you created previously (for example,  sitecoreruntime/production/sitecore/Avanade.Plugin.IdentityProvider.Ids4WsFederation).

Our plugin package contains a lib folder, copy the assets from the correct target framework to the root of the sitecoreruntime/<env> folder (for example, sitecoreruntime/production/*.dll)

Our plugin package contains a content folder, copy the assets from this folder to the plugin folder created previously (for example,  sitecoreruntime/production/sitecore/Avanade.Plugin.IdentityProvider.Ids4WsFederation)

The final folder structure will looks similar to this below

## Registering Azure AD Client
Follow this steps here to register your application with your [Azure Active Directory tenant](https://docs.microsoft.com/en-gb/azure/active-directory/azuread-dev/v1-protocols-openid-connect-code) You will get the Application/Client ID and Tenant ID required for the Azure AD plugin