<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;"><div><div><div><font face="Calibri,sans-serif">Hello all,</font></div><div><font face="Calibri,sans-serif"> </font></div><div><font face="Calibri,sans-serif">I wanted to take a moment and share a project that I've been working on for the last year. That project is a dockerized Shibboleth IdP image, which includes Java and Jetty. With this image, one simply overlays their local configuration changes, builds the custom image, and they are up in seconds. If someone needs a new configuration, it supports easily provisioning (and externalizing) a new IdP configuration. </font></div><div><font face="Calibri,sans-serif"><br></font></div><div><font face="Calibri,sans-serif">I've been working on making this the ideal base image. All of the components are downloaded and validated with embedded hashes that were obtained from their respective websites. Build steps are grouped to optimize the image size. Jetty has been configured to point directly to the IDP_HOME/webapp directory, so there is no need to run rebuild.sh/rebuild.bat when customizing the </font><font face="Calibri,sans-serif">idp.war;</font><font face="Calibri,sans-serif"> just overlay your changes.</font></div><div><font face="Calibri,sans-serif"><br></font></div><div><font face="Calibri,sans-serif">We are using it internally with several projects here at Unicon. It is planned that we will be moving our own Unicon IdP to an image that uses it as a base in the coming weeks. In fact, our new IAM in the Cloud (hosted IdP) service uses it as well. </font></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px;"><span style="font-size: 10.5pt;"> </span></div></div></div><span id="OLK_SRC_BODY_SECTION"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px;"><p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif;">The Docker Hub site is at <a href="https://hub.docker.com/r/unicon/shibboleth-idp">https://hub.docker.com/r/unicon/shibboleth-idp</a>/ with the source being available at <a href="https://github.com/Unicon/shibboleth-idp-dockerized">https://github.com/Unicon/shibboleth-idp-dockerized</a>.<o:p></o:p></span></p></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px;"><p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif;"> </span></p></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px;"><p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif;">I've also put together a testbed that exercises the image: <a href="https://github.com/UniconLabs/dockerized-idp-testbed">https://github.com/UniconLabs/dockerized-idp-testbed</a>/. The testbed spins up an LDAP server, Shib SP, CAS client (the CAS client work is currently under a branch), and the IdP image, which makes the IdP container testing painless. Besides being a quick way to see the IdP image in action, it also demonstrates how one might deploy the IdP layering their own config on top of this base image.<o:p></o:p></span></p></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px;"><p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif;"> </span></p></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px;"><p class="MsoNormal"><font face="Calibri,sans-serif" size="3">I think this is the answer if you are thinking of running the IdP in Docker, but feel free to make up your own mind.</font><span style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: medium;"> I'd love any constructive criticism and contributions. P</span><span style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 10.5pt;">lease share any feedback you might have via the Github repo.</span></p></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px;"><p class="MsoNormal"><br></p></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px;"><p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif;">Thanks,<o:p></o:p></span></p></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px;"><p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif;">John</span></p><p class="MsoNormal"><span style="font-size: 10.5pt; font-family: Calibri, sans-serif;"><br></span></p></div></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px;"><div>-- </div><div><b style="font-family: Arial, sans-serif; font-size: 12px;">John Gasper</b><br style="font-family: Arial, sans-serif; font-size: 12px;"><span style="font-family: Arial, sans-serif; font-size: 12px;">IAM Consultant</span><br style="font-family: Arial, sans-serif; font-size: 12px;"><span style="font-family: Arial, sans-serif; font-size: 12px;">Unicon, Inc.</span><br style="font-family: Arial, sans-serif; font-size: 12px;"><small style="font-family: Arial, sans-serif;">PGP/GPG Key: 0xbafee3ef</small></div><div><br></div></div></div></div></span><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:2142847765;
        mso-list-type:hybrid;
        mso-list-template-ids:-841982940 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style></body></html>