OIDC and OAuth Protocol Virtualization, using Virtuoso

Application (Relying Party) Registration always happens via https://{cname}/oauth/applications.vsp. That’s how you obtain credentials from your Virtuoso instance for and Applications (e.g., what you are developing using .NET etc).

Thus, your next step should be authentication against Google (via its binding to Virtuoso) from your .NET app.

1 Like

Noted, I understand what to do now, thanks @kidehen for the assistance and swift response.

I am done building the .NET app for the demo and registering it in the virtuoso instance to get the credentials needed for binding but how do I bind it to the .NET app because when binding Google, Facebook, etc. .NET has this inbuilt service to add those external authentication i.e, in the screenshot below I am binding Google and I can call Services.AddAuthentication()
.AddGoogle and then pass in the credentials just as seen in the screenshot.

How do I call Virtuoso and then pass in the credentials.

You application is a client (a/k/a Relying Party) that uses an OpenID Connect + OAuth Identity Provider for authentication services.

In your example above here’s how the roles breakdown:

  1. Your .NET – Relying Party
  2. Google – OpenID Connect + OAuth Identity Authentication Services Provider (or IdP for short)

The Virtuoso instance, you’ve successfully configured and verified, is also an IdP in this context. You .NET App simply needs to be registered with the Virtuoso IdP to obtain credentials (i.e., Client ID and Shared Secret).

Thus, use https://{virtuoso-instance-cname}/oauth/applications.vsp to perform registration.

Note, Virtuoso also supports Dynamic Client Registration which implies that you don’t even have to manually register your client to obtain the client id and shared secret – as long as this OpenID Connect binding modality is supported by the .NET Core Framework in use.

At this juncture, you should treat your Virtuoso instance just like Google, Facebook etc., but with the following added benefit:

Once you successfully bind to the Virtuoso IdP it can then function as a Virtual IdP into Google, and other IdPs that support OpenID Connect + OAuth. That’s what you see on display when you login using our URIBurner Query Service endpoint at; Protected SPARQL Query Service .

Here are screenshots for Dynamic Client Registration and IdP Binding (using: http://{cname}/oauth/admin.vsp – note you need the very latest VAL & Conductor VADs installed for this to work.

VAL provided Reactive Interface

Conductor Interface

Key URLs to be provided for this form or registration and setup.

Hello @kidehen, sorry for the late reply, but my main question is this, how do I bind the virtuoso IdP to my .NET application. Every other thing is oaky but just this one thing I need to know.

How can .Net bind/connect to OpenID Connect generally, which is how you would connect to Virtuoso which supports OpenID Connect ?

I see for example this link on .Net Authentication with an OpenID Connect or OAuth 2.0 Identity provider, which looks applicable and you as the .Net programmer should be able to validate if applicable for your use case …