Forums, Documentation & Knowledge Base - ComponentSpace

issue with MvcExampleServiceProvider and Azure AD as Identity provider.


https://www.componentspace.com/forums/Topic11004.aspx

By ClaudeH - 6/23/2020

Hi
I have downloaded the eval version of your product and now I am trying to make it working with Azure AD as Identity provider.
So I guess the sample to use is: MvcExampleServiceProvider

I have set up the saml.config file with elements shared by Azure related to my registered application.
But When I give a try I get the error message hereafter.

As part of the code I am wondering where and with what the parameter "PartnerName" has to be set as just unknown in the current ASP project settings.


         
Line 22:     // initiate single sign-on to the identity provider (SP-initiated SSO).    Line 23:     // The return URL is remembered as SAML relay state.Line 24:     SAMLServiceProvider.InitiateSSO(Response, returnUrl, partnerName);Line 25: Line 26:     return new EmptyResult();              
    
     Source File: D:\Data\SOC\New folder\SAML for .NET\Examples\SSO\MVC\MvcExampleServiceProvider\Controllers\SamlController.cs    Line: 24    
    Stack Trace:
               
        [SAMLSchemaValidationException: One or more configuration XML schema validation errors occurred.] ComponentSpace.SAML2.Configuration.SchemaValidator.ValidateConfiguration(XmlDocument xmlDocument) +542 ComponentSpace.SAML2.Configuration.SAMLConfigurationFile.Load(String fileName) +202 ComponentSpace.SAML2.SAMLController.Initialize() +171 ComponentSpace.SAML2.InternalSAMLServiceProvider..ctor() +12 ComponentSpace.SAML2.SAMLServiceProvider.InitiateSSO(HttpResponseBase httpResponse, String relayState, String partnerIdP) +29 MvcExampleServiceProvider.Controllers.SamlController.InitiateSingleSignOn(String returnUrl) in D:\Data\SOC\New folder\SAML for .NET\Examples\SSO\MVC\MvcExampleServiceProvider\Controllers\SamlController.cs:24 lambda_method(Closure , ControllerBase , Object[] ) +103 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +14 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +157 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27 System.Web.Mvc.Async.<>c.<BeginInvokeSynchronousActionMethod>b__9_0(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +22 System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +29 System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32 System.Web.Mvc.Async.<>c__DisplayClass11_0.<InvokeActionMethodFilterAsynchronouslyRecursive>b__0() +58 System.Web.Mvc.Async.<>c__DisplayClass11_2.<InvokeActionMethodFilterAsynchronouslyRecursive>b__2() +228 System.Web.Mvc.Async.<>c__DisplayClass7_0.<BeginInvokeActionMethodWithFilters>b__1(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34 System.Web.Mvc.Async.<>c__DisplayClass3_6.<BeginInvokeAction>b__4() +35 System.Web.Mvc.Async.<>c__DisplayClass3_1.<BeginInvokeAction>b__1(IAsyncResult asyncResult) +100 System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27 System.Web.Mvc.<>c.<BeginExecuteCore>b__152_1(IAsyncResult asyncResult, ExecuteCoreState innerState) +11 System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29 System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +45 System.Web.Mvc.<>c.<BeginExecute>b__151_2(IAsyncResult asyncResult, Controller controller) +13 System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +22 System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26 System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10 System.Web.Mvc.<>c.<BeginProcessRequest>b__20_1(IAsyncResult asyncResult, ProcessRequestState innerState) +28 System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29 System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9836613 System.Web.<>c__DisplayClass285_0.<ExecuteStepImpl>b__0() +26 System.Web.StepInvoker.Invoke(Action executionStep) +107 System.Web.<>c__DisplayClass4_0.<Invoke>b__0() +23 Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule.OnExecuteRequestStep(HttpContextBase context, Action step) +64 System.Web.<>c__DisplayClass284_0.<OnExecuteRequestStep>b__0(Action nextStepAction) +56 System.Web.StepInvoker.Invoke(Action executionStep) +91 System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +9972006 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +163       

R.

By ComponentSpace - 6/23/2020

You can test with either the MvcExampleServiceProvider or the ExampleServiceProvider.

The error indicates an issue with the syntax of the saml.config file.

If you take a look at the ExampleServiceProvider's saml.config you'll see it includes various <PartnerIdentityProvider> entries including one for our Azure AD account. Please compare your updated saml.config for any syntax errors.

There's also a ValidateConfig project under the Examples\Configuration folder. This is a command line tool that you can run against your saml.config and it will include details regarding the syntax errors.

If there's still an issue, you're welcome to send the saml.config file to [email protected].