You have used word "SAML" in your mail and diagram, I hope it should be
OIDC.


Thanks
Godwin

On Wed, Feb 28, 2018 at 5:54 PM, Chiran Wijesekara <chir...@wso2.com> wrote:

> Architecture Diagram is attached below.
>
>
> On Wed, Feb 28, 2018 at 5:45 PM, Chiran Wijesekara <chir...@wso2.com>
> wrote:
>
>> *Introduction:*
>>
>> Suppose you have an ASP.NET web application or else you are going to
>> create a new one. One of your major concerns would be to provide a secure
>> mechanism of handling user authentication and authorization. With the
>> introduction of this OIDC SSO Agent, you will never have to worry about
>> that at all. Moreover, you can just incorporate this agent to your
>> ASP.NET web application and it will take care of all the things related
>> to OIDC authentication mechanism.
>>
>>
>> *Architecture:*
>>
>>
>>
>> 2, 3, 7, 8 are related to resolving of the current request.
>>
>>
>> How to incorporate to your asp.net web application?
>>
>> If you plan to use OIDC SSO Agent, all you have to do is following simple
>> steps below and then you have a web application that authenticates users
>> with your favourite Identity Provider ( Wso2 Identity Server).
>>
>> Let’s get started. The process of incorporating SAML authentication with
>> wso2 identity server via SAML agent can be explained in  6 steps.
>>
>>    1.
>>
>>    Add the agent.dll reference to your Asp.NET web application(You can
>>    get this the git repo)
>>
>>
>>
>>    1.
>>
>>    Configure - the mandatory properties in your ASP.NET web
>>    application’s web.config file. Following image shows how does it looks 
>> like
>>    after adding those properties to your web.config file.
>>
>>
>>
>> Property
>>
>> Description
>>
>> Default Value
>>
>> EnableOIDCSSOLogin
>>
>> Enable OIDC authentication
>>
>> false
>>
>> OIDCSSOURL
>>
>> SSO URL
>>
>> oidcsso
>>
>> OIDC.spName
>>
>> Service Provider Identifier
>>
>> null
>>
>> OIDC.ClientId
>>
>> Client key which was generated during OIDC configuration for Service
>> Provider
>>
>> null
>>
>> OIDC.ClientSecret
>>
>> Client Secret which was generated during OIDC configuration for Service
>> Provider
>>
>> null
>>
>> OIDC.CallBackUrl
>>
>> Callback URL
>>
>> null
>>
>> OIDC.GrantType
>>
>> Grant Type
>>
>> code
>>
>> OIDC.AuthorizeEndpoint
>>
>> Authorization Endpoint of the IDP which is used to get an authorization
>> code.
>>
>> https://localhost:9443/oauth2/authorize
>>
>>
>> OIDC.TokenEndpoint
>>
>> Token endpoint of the IDP used to receive an access token
>>
>> https://localhost:9443/oauth2/token
>>
>>
>> OIDC.UserInfoEndpoint
>>
>> User info endpoint of the IDP which is used to fetch user details
>>
>> https://localhost:9443/oauth2/userinfo?schema=openid
>>
>>
>> OIDC.Scope
>>
>> Scope of the request as per the OIDC spec
>>
>> openid
>>
>> OIDC.EnableSLO
>>
>> Enable single logout
>>
>> OIDC.SLOURL
>>
>> Single logout URL
>>
>> oidclogout
>>
>> OIDC.EnableIDTokenValidation
>>
>> Enable ID token validation
>>
>> false
>>
>> OIDC.PostLogoutRedirectUri
>>
>> Post logout redirect URL
>>
>> null
>>
>> OIDC.SessionIFrameEndpoint
>>
>> OP Session IFrame Endpoint
>>
>> null
>>
>>
>> Below is a sample to demonstrate this step. You can edit the values as
>> per needed:
>>
>> <appSettings>
>>    <add key="EnableOIDCSSOLogin" value="true" />
>>    <add key="OIDCSSOURL" value="oidcsso" />
>>    <add key="OIDC.spName" value="music-store" />
>>    <add key="OIDC.ClientId" value="6G4s9GSYLd2USGB9f_Bf7kI6RHka" />
>>    <add key="OIDC.ClientSecret" value="_gWqRvvxrcxg_rZgraGX4d0fnS4a" />
>>    <add key="OIDC.CallBackUrl" value="http://localhost:58521/
>> music-store/callback" />
>>    <add key="OIDC.GrantType" value="code" />
>>    <add key="OIDC.AuthorizeEndpoint" value="https://localhost:9443/
>> oauth2/authorize" />
>>    <add key="OIDC.TokenEndpoint" value="https://localhost:9443/
>> oauth2/token" />
>>    <add key="OIDC.UserInfoEndpoint"
>>
>>             value="https://localhost:9443/oauth2/userinfo?schema=openid";
>> />
>>    <add key="OIDC.Scope" value="openid" />
>>    <add key="OIDC.IdPEntityId" value="localhost" />
>>    <add key="OIDC.IdPURL" value="https://localhost:9443/"; />
>>    <add key="OIDC.EnableSLO" value="true" />
>>    <add key="OIDC.SLOURL" value="oidclogout" />
>>    <add key="OIDC.EnableIDTokenValidation" value="true" />
>>    <add key="OIDC.PostLogoutRedirectUri"
>>
>>             value="http://localhost:58521/music-store/Default"; />
>>    <add key="OIDC.SessionIFrameEndpoint"
>>
>>             value="https://localhost:9443/oidc/checksession"; />
>>  </appSettings>
>>
>>
>>    1.
>>
>>    Next, if you want to validate ID token signature,  you need to have a
>>    valid certificate. [Note: It is highly recommended to use your own
>>    PKCS12 in your production environment].
>>
>> For testing purposes you can get the wso2carbon.jks from the wso2
>> Identity server (<IS_HOME> / repository/ resources/ security/
>> wso2carbon.jks) and convert it to a PKCS12 using keytool utility. Then,
>> add the .p12 to the Local Machine certificate Store. However, below steps
>> guide you through the process which was described above.
>>
>>    -
>>
>>    You get keytool by default with java installation and it could be
>>    found under the directory: C:\Program Files\Java\jre<Version>\bin , with
>>    the name keytool.exe .
>>    -
>>
>>    You can use the below command to convert the wso2carbon.jks to
>>    wso2carbon.p12
>>
>> keytool -importkeystore -srckeystore wso2carbon.jks -destkeystore
>> wso2carbon.p12 -srcstoretype JKS -deststoretype PKCS12 -deststorepass
>> [PASSWORD_PKCS12]
>>
>>    -
>>
>>    Then, run microsoft management console( i.e: mmc.exe) as
>>    administrator, menu File -> Add/Remove Snap-in.., select
>>    "Certificates", press Add, select radio button "Computer account", and 
>> then
>>    you can install wso2carbon.p12
>>
>>
>>
>>    1.
>>
>>    Register the “FilteringHttpModule” in your ASP.NET web application to
>>    handle the requests related to OIDC authentication mechanism.[ Note:
>>    The above mentioned FilteringHttpModule  class is extended from
>>    IHttpModule. Click here
>>    <https://msdn.microsoft.com/library/ms178468.aspx> for more
>>    information  on IHttpModules. ]
>>
>>
>>
>>    1.
>>
>>    Add the following code to the global.asax of your ASP.NET web
>>    application to enable session access from the agent.
>>
>>
>>        public override void Init()
>>        {
>>            MapRequestHandler += EnableSession;
>>            base.Init();
>>        }
>>
>>        void EnableSession(object sender, EventArgs e)
>>        {
>>            HttpContext.Current.SetSessionStateBehavior(Sessi
>> onStateBehavior.Required);
>>        }
>>
>>
>>    1.
>>
>>    Set your application’s login controls to refer oidc intensive
>>    segments. That is suppose you have a login link in your web application.
>>    All you have to do is set the attribute  href to “oidcsso”. And in the
>>    places that you have logout controls, it should be “oidclogout”.
>>
>>
>> [ Note: “oidcsso” and “oidclogout” are values that were configured under
>> Step No: 2 for the properties OIDCSSOURL and OIDC.SLOURL respectively.
>> However, “oidcsso” and “oidclogout”  are the default values for those two
>> properties.]
>>
>>
>>
>>
>> Upon successful completion of the 6 steps above, you ASP.NET web
>> application is enabled with OIDC authentication.
>>
>>
>>
>> The $subject has been completed and component 's PR is avaiable at
>> https://github.com/wso2/samples-is/pull/12
>>
>> Thanks.
>> --
>> *Chiran Wijesekara*
>>
>>
>> *Software Engineering Intern | WSO2*Email: chir...@wso2.com
>> Mobile: +94712990173web: www.wso2.com
>>
>> [image: https://wso2.com/signature] <https://wso2.com/signature>
>>
>
>
>
> --
> *Chiran Wijesekara*
>
>
> *Software Engineering Intern | WSO2*Email: chir...@wso2.com
> Mobile: +94712990173web: www.wso2.com
>
> [image: https://wso2.com/signature] <https://wso2.com/signature>
>
> _______________________________________________
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
*Godwin Amila Shrimal*
Associate Technical Lead
WSO2 Inc.; http://wso2.com
lean.enterprise.middleware

mobile: *+94772264165*
linkedin: *https://www.linkedin.com/in/godwin-amila-2ba26844/
<https://www.linkedin.com/in/godwin-amila-2ba26844/>*
twitter: https://twitter.com/godwinamila
<http://wso2.com/signature>
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to