Nieuw in HCL Domino 14.5 is dat de Domino HTTP taak kan fungeren als een OIDC identiteitsprovider. Een OIDC provider is een dienst die identiteiten beheert en gebruikt voor authenticatie via het OpenID Connect (OIDC) protocol, wat het mogelijk maakt om via één inlog tegelijk in te loggen op meerdere applicaties (Single Sign-On).
Met deze functie kunnen Domino beheerders hun bestaande Domino HTTP authenticatie-ervaring gebruiken (inclusief wachtwoordsleutels, TOTP, aangepaste Domino Web Server configuratie inlogformulieren en externe identiteitsproviders) om eindgebruikers te authentiseren met applicaties, servers en services die OIDC ondersteunen.
De Domino OIDC-providerfunctionaliteit maakt gebruik van ondertekende JWT-toegangstokens en id-tokens en werkt naadloos met de HTTP Bearer-authenticatie en web aanmelding met OIDC-functionaliteit in Domino 12.0.2 FP3 en hoger.
Hoe de HCL Domino Server ingesteld moet worden voor deze functie staat in detail beschreven in de HCL Domino 14.5 Documentatie, daar is gewoon weinig aan toe te voegen. Mocht dat niet lukken kan INECO natuurlijk helpen met het opzetten van een werkende omgeving.
Voorbeeld toepassing
Maar wat kan je nou met OIDC en Domino?
Als jouw bedrijf de gebruikers (en wachtwoorden) al in de Domino directory heeft staan, wat is dan makkelijker dan alle applicaties in het bedrijf waarvoor een intern account nodig is te kunnen authentiseren tegen dat adresboek? En dan ook nog eens met een Single Sign On zodat het invoeren van de gegevens slechts een keer nodig is per sessie?
Dat werkt natuurlijk met interne Web applicaties van Notes, zoals Verse, maar dat is niet echt nieuw.
Wel nieuw is dat bijvoorbeeld een eigen maatwerk applicatie, geschreven in een andere programmeertaal kan aanmelden op de Domino Server.
Razor Page OIDC
In dit geval hebben wij een heel kaal voorbeeld van Microsoft Learn gedownload en in Visual Studio bewerkt.
Deze web applicatie, RazorPageOidc is een in C# geschreven applicatie waar een bezoeker direct moet aanmelden om verder te kunnen.
Als op de Domino server de juiste instellingen volgens de documentatie van HCL zijn gemaakt kan het Internet site document gekozen worden in de Domino IdP Catalog binnen de Domino OIDC Provider configuratie.

Vervolgens kan er in de zelfde IdP Catalog een Registered OAuth Client geconfigureerd worden. Kies hier de net aangemaakte Domino OIDC Provider, bedenk een Client ID en een Client secret, meest eenvoudige is om een GUID (Globally unique identifier) te genereren in bijvoorbeeld Visual Studio.
De applicatie RazorPageOidc maakt gebruik van openID Connect implementatie van Microsoft en bij het voorbereiden van deze demo bleek dat de Authentication Method op “Client secret post” moet staan om snel een de gang te kunnen met de voorbeeld code.
De applicatie is in dit geval in Visual Studio ingesteld om op https poort 65081 te draaien, dat is natuurlijk voor iedereen zelf in te stellen. Deze gebruikte openID code werkt met een redirect naar “/signin-oidc” (dit kan per gebruikte implementatie verschillen).
Voor het aanmelden zijn de waardes openid en profile verplicht om op te nemen in de Scope, extra scopes zijn optioneel. De meest gebruikte signatures zijn ES256.
Daarmee is de Client configuratie in Domino al afgerond. Aanpassingen aan dit document zijn direct actief.

In de programma code zijn drie belangrijke variabelen, “Authority”, “ClientId” en “ClientSecret”.
Het is natuurlijk normaal niet de bedoeling om aanmeld gegevens te tonen op een website, maar nu is het alleen voor de demo gebruikt.
Wij moeten de applicatie vertellen wat de URL is van de HCL Domino server waar aangemeld kan worden. Dit is de website met de toevoeging “/auth/protocol/oidc”.
Bij het aanmelden zal de code daar zelf “.well-known/openid-configuration” aan toevoegen. Zie hiervoor ook Domino OIDC provider HTTP endpoints.
Bij ClientID en ClientSecret vullen wij de waardes in die eerder in het Registered OAuth Client configuratie document zijn ingevuld.
Na de aanpassingen van de variabelen starten wij nu de web applicatie, en wordt het HCL Domino aanmeldscherm getoond vanaf de Domino server.

Op de achtergrond worden de gegevens die gevraagd zijn in de Scope in een versleutelde JSON token gezet en worden we teruggeleid naar de applicatie met deze token in de URL.
De applicatie kan op basis van de gegevens bepalen of de aanmelding is gelukt, en eventuele gegevens zoals mailadres, naam, rollen e.d. uit de token herleiden.
In de demo wordt de naam gebruikt die terug komt van Domino in de menubalk.

Dit is natuurlijk wel een hele simpele toepassing, maar laat goed zien hoe eenvoudig een HCL Domino 14.5 Server een OIDC aanmelding kan aanbieden!
Notitie:
Bij deze test kregen wij steeds de melding “ArgumentException: IDX14101: Unable to decode the payload”. Domino bleek de waarde nonce: te starten met aanhalingstekens,maar niet af te sluiten. Door ProtocolValidator.RequireNonce op onwaar te zetten werkte de demo.
Bronnen:
HCL: Using Domino as an OIDC provider
HCL: Domino OIDC provider HTTP endpoints




















































